On Tue, Jun 23, 2009 at 6:05 PM, Eric Dedieu <span dir="ltr">&lt;<a href="mailto:papa.eric@free.fr">papa.eric@free.fr</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
So<br>
<br>
1) How can I use transformers instead of the mtl? This is in no<br>
tutorial, and searchinf for &quot;mtl&quot; on the haskell wiki yields no<br>
result at all.</blockquote><div><br>&gt; cabal install transformers   (you need cabal-install to do this... consult #haskell if confused)<br>perhaps:  &gt; ghc-pkg hide mtl   (I think mtl and transformers fight over the Control.Monad module)<br>
<br>Then import Control.Monad.Trans.State instead of Control.Monad.State.  All else should be well, if I am not forgetting something.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
2) What should be the Haskell98-compatible type signature for my play2 function, instead of (MonadState [a] m, Eq a) =&gt;<br>
a -&gt; m Bool ?</blockquote><div><br>That depends on the monad library.  In transformers it would be:<br><br>(Monad m, Eq a) =&gt; a -&gt; StateT [a] m Bool<br><br>State s is just a type synonym for StateT s Identity, so this works for State as well.<br>
<br>Luke<br></div></div><br>