[Haskell-cafe] [ANN] elevator: getting to a top of a monad transformer stack

Roman Cheplyaka roma at ro-che.info
Mon Nov 17 16:27:25 UTC 2014


I've done something similar in the monad-classes library [1]; and
there's an ongoing series of articles about it [2].

[1]: https://github.com/feuerbach/monad-classes
[2]: http://ro-che.info/articles/extensible-effects

On 17/11/14 08:37, Fumiaki Kinoshita wrote:
> Hello everybody, 
> 
> I created an elevator to navigate a monad transformer stack, liberating
> us from creating a Monad* class and instances.
> 
> The key function, elevate, can be whatever you need:
> 
> elevate :: IO a -> IO a
> 
> elevate :: IO a -> StateT s IO a
> 
> elevate :: State s a -> StateT s IO a
> 
> elevate :: IO a -> MaybeT (StateT s IO) a
> 
> If you want to elevate actions above your monad, just write
> 
> instance Tower YourMonad
> 
> to declare that YourMonad is one-storied.
> 
> Hackage: http://hackage.haskell.org/package/elevator-0.1/docs/Control-Elevator.html
> 
> Cheers
> 
> Fumiaki Kinoshita
> 
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 



More information about the Haskell-Cafe mailing list