module Pandora.Pattern.Functor.Bindable where

import Pandora.Pattern.Functor.Covariant (Covariant)

infixr 1 =<<

{- |
> 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)