-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Trying to compose non-composable -- -- Trying to compose non-composable @package joint @version 0.1.0 module Control.Joint.Composition class Composition t where { type family Primary t a :: *; } unwrap :: Composition t => t a -> Primary t a module Control.Joint.Core -- | Functor composition type (:.) t u a = t (u a) infixr 1 :. -- | Functor's object type (:=) t a = t a infixr 0 := -- | Natural transformation type (~>) t u = forall a. t a -> u a infixr 0 ~> module Control.Joint.Schemes.TU newtype TU t u a TU :: ((t :. u) := a) -> TU t u a instance Control.Joint.Composition.Composition (Control.Joint.Schemes.TU.TU t u) module Control.Joint.Schemes.UTU newtype UTU t u a UTU :: ((u :. t u) := a) -> UTU t u a instance Control.Joint.Composition.Composition (Control.Joint.Schemes.UTU.UTU t u) module Control.Joint.Schemes module Control.Joint.Transformer class Composition t => Transformer t where { type family Schema (t :: * -> *) (u :: * -> *) = (r :: * -> *) | r -> t u; } lay :: (Transformer t, Functor u) => u ~> Schema t u wrap :: (Transformer t, Applicative u) => t ~> Schema t u