module Data.Functor.Composition
( Composition(..) ) where
import Data.Functor.Compose
-- | We often need to distinguish between various forms of Functor-like composition in Haskell in order to please the type system.-- This lets us work with these representations uniformly.
class Compositiono where
decompose :: ofgx -> f (gx)
compose :: f (gx) -> ofgx
instance CompositionCompose where
decompose = getComposecompose = Compose