-- 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.3 module Control.Joint.Composition class Composition t where { type family Primary t a :: *; } run :: 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.TUT newtype TUT t u t' a TUT :: ((t :. (u :. t')) := a) -> TUT t u t' a instance Control.Joint.Composition.Composition (Control.Joint.Schemes.TUT.TUT t u t') 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 module Control.Joint.Transformer class Composition t => Transformer t where { type family Schema (t :: * -> *) (u :: * -> *) = (r :: * -> *) | r -> t u; } embed :: (Transformer t, Functor u) => u ~> Schema t u build :: (Transformer t, Applicative u) => t ~> Schema t u unite :: Transformer t => Primary (Schema t u) a -> Schema t u a type (:>) t u a = Transformer t => Schema t u a infixr 1 :> module Control.Joint.Modulator class Transformer t => Modulator t (-<$>-) :: Modulator t => (u a -> v b) -> Schema t u a -> Schema t v b module Control.Joint.Base.State newtype State s a State :: (((->) s :. (,) s) := a) -> State s a statefully :: s -> State s a -> (s, a) get :: State s s modify :: (s -> s) -> State s () put :: s -> State s () instance GHC.Base.Functor (Control.Joint.Base.State.State s) instance GHC.Base.Applicative (Control.Joint.Base.State.State s) instance GHC.Base.Monad (Control.Joint.Base.State.State s) instance Control.Joint.Composition.Composition (Control.Joint.Base.State.State s) instance Control.Joint.Transformer.Transformer (Control.Joint.Base.State.State s) instance GHC.Base.Functor u => GHC.Base.Functor (Control.Joint.Schemes.TUT.TUT ((->) s) u ((,) s)) instance GHC.Base.Monad u => GHC.Base.Applicative (Control.Joint.Schemes.TUT.TUT ((->) s) u ((,) s)) instance GHC.Base.Monad u => GHC.Base.Monad (Control.Joint.Schemes.TUT.TUT ((->) s) u ((,) s)) module Control.Joint.Base.Maybe instance GHC.Base.Functor u => GHC.Base.Functor (Control.Joint.Schemes.UT.UT GHC.Maybe.Maybe u) instance GHC.Base.Applicative u => GHC.Base.Applicative (Control.Joint.Schemes.UT.UT GHC.Maybe.Maybe u) instance (GHC.Base.Applicative u, GHC.Base.Monad u) => GHC.Base.Monad (Control.Joint.Schemes.UT.UT GHC.Maybe.Maybe u) instance Control.Joint.Composition.Composition GHC.Maybe.Maybe instance Control.Joint.Transformer.Transformer GHC.Maybe.Maybe module Control.Joint.Base.Either instance GHC.Base.Functor u => GHC.Base.Functor (Control.Joint.Schemes.UT.UT (Data.Either.Either e) u) instance GHC.Base.Applicative u => GHC.Base.Applicative (Control.Joint.Schemes.UT.UT (Data.Either.Either e) u) instance (GHC.Base.Applicative u, GHC.Base.Monad u) => GHC.Base.Monad (Control.Joint.Schemes.UT.UT (Data.Either.Either e) u) instance Control.Joint.Composition.Composition (Data.Either.Either e) instance Control.Joint.Transformer.Transformer (Data.Either.Either e) module Control.Joint.Base.Configured newtype Configured e a Configured :: (e -> a) -> Configured e a ask :: Configured e e instance Control.Joint.Composition.Composition (Control.Joint.Base.Configured.Configured e) instance Control.Joint.Transformer.Transformer (Control.Joint.Base.Configured.Configured e) instance Control.Joint.Modulator.Modulator (Control.Joint.Base.Configured.Configured e) instance GHC.Base.Functor u => GHC.Base.Functor (Control.Joint.Schemes.TU.TU ((->) e) u) instance GHC.Base.Applicative u => GHC.Base.Applicative (Control.Joint.Schemes.TU.TU ((->) e) u) instance (GHC.Base.Applicative u, GHC.Base.Monad u) => GHC.Base.Monad (Control.Joint.Schemes.TU.TU ((->) e) u)