module Pandora.Pattern.Functor.Extendable where import Pandora.Pattern.Functor.Covariant (Covariant) infixr 1 <<= {- | > When providing a new instance, you should ensure it satisfies: > * Duplication interchange: (f -<$$>-) . (identity <<=) ≡ (identity <<=) . (f -<$>-) > * Extension interchange: (f <<=) ≡ (f -<$>-) . (identity <<=) -} class Covariant source source t => Extendable source t where (<<=) :: source (t a) b -> source (t a) (t b)