-- 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.1 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.UT newtype UT t u a UT :: ((u :. t) := a) -> UT t u a instance Control.Joint.Composition.Composition (Control.Joint.Schemes.UT.UT 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 type (:>) t u a = Transformer t => Schema t u a infixr 1 :> module Control.Joint.Base.Reader newtype Reader r a Reader :: (r -> a) -> Reader r a instance Control.Joint.Composition.Composition (Control.Joint.Base.Reader.Reader e) instance Control.Joint.Transformer.Transformer (Control.Joint.Base.Reader.Reader r) module Control.Joint.Base.Maybe instance Control.Joint.Composition.Composition GHC.Maybe.Maybe instance Control.Joint.Transformer.Transformer GHC.Maybe.Maybe module Control.Joint.Base.Either instance Control.Joint.Composition.Composition (Data.Either.Either e) instance Control.Joint.Transformer.Transformer (Data.Either.Either e)