I think of (r -> m a) as a type signature and Int or Bool by themselves as types. So, all type signatures are themselves types?
Michael --- On Wed, 12/29/10, Henning Thielemann <lemm...@henning-thielemann.de> wrote: From: Henning Thielemann <lemm...@henning-thielemann.de> Subject: Re: [Haskell-cafe] Reader monad To: "michael rice" <nowg...@yahoo.com> Cc: haskell-cafe@haskell.org Date: Wednesday, December 29, 2010, 12:28 PM On Wed, 29 Dec 2010, michael rice wrote: > In the case of ReaderT and StateT > > newtype ReaderT r m a = ReaderT { > -- | The underlying computation, as a function of the environment. > runReaderT :: r -> m a > } > > newtype StateT s m a = StateT { runStateT :: s -> m (a, s) } > > what is the existing type? The existing type is 'r -> m a'. You could also write > newtype ReaderT r m a = ReaderT (r -> m a) This would be the same type as above, but it would have no accessor function 'runReaderT'.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe