<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">I think of (r -&gt; m a) as a type signature and Int or Bool by themselves as types. So, all type signatures are themselves types?<br><br>Michael<br><br>--- On <b>Wed, 12/29/10, Henning Thielemann <i>&lt;lemming@henning-thielemann.de&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Henning Thielemann &lt;lemming@henning-thielemann.de&gt;<br>Subject: Re: [Haskell-cafe] Reader monad<br>To: "michael rice" &lt;nowgate@yahoo.com&gt;<br>Cc: haskell-cafe@haskell.org<br>Date: Wednesday, December 29, 2010, 12:28 PM<br><br><div class="plainMail"><br>On Wed, 29 Dec 2010, michael rice wrote:<br><br>&gt; In the case of ReaderT and StateT<br>&gt; <br>&gt; newtype ReaderT r m a = ReaderT {<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- | The underlying computation, as a function of the
 environment.<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; runReaderT :: r -&gt; m a<br>&gt; &nbsp;&nbsp;&nbsp; }<br>&gt; <br>&gt; newtype StateT s m a = StateT { runStateT :: s -&gt; m (a, s) }<br>&gt; <br>&gt; what is the existing type?<br><br><br>The existing type is 'r -&gt; m a'. You could also write<br><br>&gt; newtype ReaderT r m a = ReaderT (r -&gt; m a)<br><br>This would be the same type as above, but it would have no accessor function 'runReaderT'.<br><br></div></blockquote></td></tr></table><br>