reflection-without-remorse-0.9.2: Efficient free and operational monads.

Copyright(c) Atze van der Ploeg 2014
LicenseBSD-style
Maintaineratzeus@gmail.org
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Control.Monad.Free.Reflectable

Description

A free monad that supports alternating between building and observing. It supports all operations (>>=, return, fromView and toView) in worst case constant time.

See the paper Reflection without Remorse: Revealing a hidden sequence to speed up Monadic Reflection, Atze van der Ploeg and Oleg Kiselyov, Haskell Symposium 2014 for more details.

Paper: http://homepages.cwi.nl/~ploeg/zseq.pdf Talk : http://www.youtube.com/watch?v=_XoI65Rxmss

Documentation

data FreeMonadView f a Source

Constructors

Pure a 
Impure (f (FreeMonad f a)) 

data FreeMonad f a Source

Instances