moduleData.Functor.Composition(Composition(..))whereimportData.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.classCompositionowheredecompose::ofgx->f(gx)compose::f(gx)->ofgxinstanceCompositionComposewheredecompose=getComposecompose=Compose