free-vl-0.1.2: van Laarhoven encoded Free Monad with Extensible Effects

Copyright(C) 2016 Aaron Levin
LicenseBSD-style (see the file LICENSE)
MaintainerAaron Levin <aaron.michael.benjamin.levin@gmail.com>
Stabilityprovisional
Portabilitynon-portable (rank-2 polymorphism)
Safe HaskellSafe
LanguageHaskell2010

Control.Monad.Free.VanLaarhoven

Description

"van Laarhoven encoded Free Monad"

Synopsis

Documentation

data Free effect a Source #

The van Laarhoven-encoded Free Monad

Instances

Monad (Free effect) Source # 

Methods

(>>=) :: Free effect a -> (a -> Free effect b) -> Free effect b #

(>>) :: Free effect a -> Free effect b -> Free effect b #

return :: a -> Free effect a #

fail :: String -> Free effect a #

Functor (Free effect) Source # 

Methods

fmap :: (a -> b) -> Free effect a -> Free effect b #

(<$) :: a -> Free effect b -> Free effect a #

Applicative (Free effect) Source # 

Methods

pure :: a -> Free effect a #

(<*>) :: Free effect (a -> b) -> Free effect a -> Free effect b #

(*>) :: Free effect a -> Free effect b -> Free effect b #

(<*) :: Free effect a -> Free effect b -> Free effect a #