pandora-0.2.0: 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 (Environmental e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Environmental

Monad (Proxy :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Proxy

(Avoidable t, Alternative t) => Monad (Twister t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Twister

Monad (Stateful s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful

Monad (Conclusion e) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion

Monad (Tagged tag) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Tagged

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

Defined in Pandora.Paradigm.Basis.Continuation

Monad u => Monad (UT Co Co Maybe u) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Maybe

Monad u => Monad (UT Co Co (Conclusion e) u) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion

Monad u => Monad (TUV Co Co Co ((->) s :: Type -> Type) u ((:*:) s)) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Stateful