pandora-0.1.4: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Pattern.Functor.Monad

Synopsis

Documentation

class (Pointable t, Bindable t) => Monad t Source #

Let f :: (Pointable t, Bindable t) => a -> t a
Let g :: (Pointable t, Bindable t) => a -> t a
Let h :: (Pointable t, Bindable t) => t a
When providing a new instance, you should ensure it satisfies the three laws:
* Left identity: point a >>= f ≡ f a
* Right identity: h >>= point ≡ h
* Associativity: h >>= (\x -> f x >>= g) ≡ (h >>= f) >>= g
Instances
Monad Maybe Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Maybe

Monad Identity Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Identity

Monad (Conclusion e) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion

(Exclusive t, Alternative t) => Monad (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Monad t => Monad (Stateful s t) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful

Monad t => Monad (Continuation r t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Continuation

Monad t => Monad (Environmental e t) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Environmental

Monad t => Monad (Maybe :!: t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Maybe

Monad t => Monad (Conclusion e :!: t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion