[Haskell-cafe] primitive operations in StateT

Clark Gaebel cgaebel at uwaterloo.ca
Tue Apr 16 08:08:06 CEST 2013


*sigh* nevermind.

I found it. Turns out there was:

liftMCT :: (Monad m) => MC a -> MCT m a

in an unexported module in the monte-carlo package all along. I just need
to export it and I'll be good to go.

Thanks for your help!
  - Clark

On Tuesday, April 16, 2013, Clark Gaebel wrote:

> The monad my code is currently written in is:
>
> type MC = MCT Identity -- where MCT is the monad transformer version of it.
>
> I have two options for threading state through this:
>
>     MCT (ST s) a
>     StateT s MC a
>
> The first option would work if I had some function with the signature
>
> MCT Identity a -> MCT (ST s) a
>
> but I know of no such function, and the second one would work if I had
> some way of making StateT a member of PrimMonad.
>
> Can I see an example with 'lift'?
>
>   - Clark
>
> On Tuesday, April 16, 2013, Ivan Lazar Miljenovic wrote:
>
>> On 16 April 2013 15:04, Clark Gaebel <cgaebel at uwaterloo.ca> wrote:
>> > Hi list!
>> >
>> > I want to use MVectors in a StateT monad transformer.
>> >
>> > How do I do that? StateT isn't a member of 'PrimMonad', and I have no
>> idea
>> > how to make it one.
>>
>> You can use Control.Monad.Trans.lift to lift the PrimMonad operations
>> to PrimMonad m => StateT s m
>>
>> >
>> > Regards,
>> >   - Clark
>> >
>> > _______________________________________________
>> > Haskell-Cafe mailing list
>> > Haskell-Cafe at haskell.org
>> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>> >
>>
>>
>>
>> --
>> Ivan Lazar Miljenovic
>> Ivan.Miljenovic at gmail.com
>> http://IvanMiljenovic.wordpress.com
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130416/bbe649b2/attachment.htm>


More information about the Haskell-Cafe mailing list