I am looking at the documentation for Reading Mod and ReaderT monad transformer.
Relevant definitions:
newtype ReaderT k r m a :: forall k. * -> (k -> *) -> k -> * type Reader r = ReaderT * r Identity
I do not understand what they are doing *in the definitions. In particular, I am trying to get a new monad from ReaderT with IO as the base monad and class restriction by value r.
*
r
I'm not sure why there is a fourth input for ReaderT ( k) and what Reader does with this value when it puts * at this position.
k
* - : , Int, List Int ..
Int
List Int
forall k k . , , , . , "" - : - , , "" , ( )
forall k
, , Reader *, m Identity. , , IO .
Reader
m
Identity
IO
, . , , , " ". , , , , , , .
( , Dict, typeclass GADT, , , , )
Dict