pandora-0.5.3: Pandora/Pattern/Functor/Bindable.hs
module Pandora.Pattern.Functor.Bindable where
import Pandora.Pattern.Functor.Covariant (Covariant)
infixr 1 =======<<
infixr 2 ======<<
infixr 3 =====<<
infixr 4 ====<<
infixr 5 ===<<
infixr 6 ==<<
infixr 7 =<<
{- |
> When providing a new instance, you should ensure it satisfies :
> * Interchange: t >>= f = join (f <-|- t)
-}
class Covariant source source t => Bindable source t where
(=<<) :: source a (t b) -> source (t a) (t b)
(==<<), (===<<), (====<<), (=====<<), (======<<), (=======<<) :: source a (t b) -> source (t a) (t b)
(==<<) = (=<<)
(===<<) = (=<<)
(====<<) = (=<<)
(=====<<) = (=<<)
(======<<) = (=<<)
(=======<<) = (=<<)