-- 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.4 module Control.Joint.Abilities.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 2 :. -- | Functor's object type (:=) t a = t a infixr 1 := -- | Natural transformation type (~>) t u = forall a. t a -> u a infixr 0 ~> module Control.Joint.Abilities.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 newtype (:>) t u a T :: (Transformer t => Schema t u a) -> (:>) t u a [trans] :: (:>) t u a -> Transformer t => Schema t u a infixr 0 :> instance (Control.Joint.Abilities.Composition.Composition (Control.Joint.Abilities.Transformer.Schema t u), Control.Joint.Abilities.Transformer.Transformer t) => Control.Joint.Abilities.Composition.Composition (t Control.Joint.Abilities.Transformer.:> u) instance GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema t u) => GHC.Base.Functor (t Control.Joint.Abilities.Transformer.:> u) instance (Control.Joint.Abilities.Transformer.Transformer t, GHC.Base.Applicative (Control.Joint.Abilities.Transformer.Schema t u)) => GHC.Base.Applicative (t Control.Joint.Abilities.Transformer.:> u) instance (Control.Joint.Abilities.Transformer.Transformer t, GHC.Base.Monad (Control.Joint.Abilities.Transformer.Schema t u)) => GHC.Base.Monad (t Control.Joint.Abilities.Transformer.:> u) module Control.Joint.Abilities.Modulator class Transformer t => Modulator t (-<$>-) :: Modulator t => (u a -> v b) -> Schema t u a -> Schema t v b module Control.Joint.Abilities.Liftable class Liftable (eff :: * -> *) (schema :: * -> *) lift :: Liftable eff schema => eff a -> schema a instance (GHC.Base.Functor u, Control.Joint.Abilities.Transformer.Transformer t) => Control.Joint.Abilities.Liftable.Liftable u (t Control.Joint.Abilities.Transformer.:> u) instance (GHC.Base.Applicative u, Control.Joint.Abilities.Transformer.Transformer t) => Control.Joint.Abilities.Liftable.Liftable t (t Control.Joint.Abilities.Transformer.:> u) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u v), GHC.Base.Applicative v, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer t) => Control.Joint.Abilities.Liftable.Liftable u (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> v)) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u v), GHC.Base.Functor v, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer t) => Control.Joint.Abilities.Liftable.Liftable v (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> v)) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u v), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v w), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> w)), GHC.Base.Applicative v, GHC.Base.Applicative w, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer v) => Control.Joint.Abilities.Liftable.Liftable v (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> w))) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u v), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v w), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> w)), GHC.Base.Applicative v, GHC.Base.Functor w, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer v) => Control.Joint.Abilities.Liftable.Liftable w (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> w))) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> x))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> x)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w x), GHC.Base.Functor x, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer v, Control.Joint.Abilities.Transformer.Transformer w) => Control.Joint.Abilities.Liftable.Liftable x (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> x)))) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> x))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> x)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w x), GHC.Base.Applicative x, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer v, Control.Joint.Abilities.Transformer.Transformer w) => Control.Joint.Abilities.Liftable.Liftable w (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> x)))) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> x))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> x)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w x), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema x y), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w (x Control.Joint.Abilities.Transformer.:> y)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> y))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> y)))), GHC.Base.Functor y, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer v, Control.Joint.Abilities.Transformer.Transformer w, Control.Joint.Abilities.Transformer.Transformer x) => Control.Joint.Abilities.Liftable.Liftable y (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> y))))) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> x))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> x)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w x), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema x y), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w (x Control.Joint.Abilities.Transformer.:> y)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> y))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> y)))), GHC.Base.Functor y, GHC.Base.Applicative y, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer v, Control.Joint.Abilities.Transformer.Transformer w, Control.Joint.Abilities.Transformer.Transformer x) => Control.Joint.Abilities.Liftable.Liftable x (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> y))))) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z))))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z)))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema x (y Control.Joint.Abilities.Transformer.:> z)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema y z), GHC.Base.Functor z, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer v, Control.Joint.Abilities.Transformer.Transformer w, Control.Joint.Abilities.Transformer.Transformer x, Control.Joint.Abilities.Transformer.Transformer z, Control.Joint.Abilities.Transformer.Transformer y) => Control.Joint.Abilities.Liftable.Liftable z (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z)))))) instance (GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema u (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z))))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema v (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z)))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema w (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z))), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema x (y Control.Joint.Abilities.Transformer.:> z)), GHC.Base.Functor (Control.Joint.Abilities.Transformer.Schema y z), GHC.Base.Applicative z, Control.Joint.Abilities.Transformer.Transformer t, Control.Joint.Abilities.Transformer.Transformer u, Control.Joint.Abilities.Transformer.Transformer v, Control.Joint.Abilities.Transformer.Transformer w, Control.Joint.Abilities.Transformer.Transformer x, Control.Joint.Abilities.Transformer.Transformer z, Control.Joint.Abilities.Transformer.Transformer y) => Control.Joint.Abilities.Liftable.Liftable y (t Control.Joint.Abilities.Transformer.:> (u Control.Joint.Abilities.Transformer.:> (v Control.Joint.Abilities.Transformer.:> (w Control.Joint.Abilities.Transformer.:> (x Control.Joint.Abilities.Transformer.:> (y Control.Joint.Abilities.Transformer.:> z)))))) module Control.Joint.Abilities module Control.Joint.Schemes.TU newtype TU t u a TU :: ((t :. u) := a) -> TU t u a instance Control.Joint.Abilities.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.Abilities.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.Abilities.Composition.Composition (Control.Joint.Schemes.UT.UT t u) module Control.Joint.Schemes module Control.Joint.Effects.Reader newtype Reader e a Reader :: (e -> a) -> Reader e a ask :: Reader e e type Configured e = Liftable (Reader e) instance GHC.Base.Functor (Control.Joint.Effects.Reader.Reader e) instance GHC.Base.Applicative (Control.Joint.Effects.Reader.Reader e) instance GHC.Base.Monad (Control.Joint.Effects.Reader.Reader e) instance Control.Joint.Abilities.Composition.Composition (Control.Joint.Effects.Reader.Reader e) instance Control.Joint.Abilities.Transformer.Transformer (Control.Joint.Effects.Reader.Reader e) instance Control.Joint.Abilities.Modulator.Modulator (Control.Joint.Effects.Reader.Reader e) instance Control.Joint.Abilities.Liftable.Liftable (Control.Joint.Effects.Reader.Reader e) ((->) 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) module Control.Joint.Effects.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 () type Stateful e = Liftable (State e) instance GHC.Base.Functor (Control.Joint.Effects.State.State s) instance GHC.Base.Applicative (Control.Joint.Effects.State.State s) instance GHC.Base.Monad (Control.Joint.Effects.State.State s) instance Control.Joint.Abilities.Composition.Composition (Control.Joint.Effects.State.State s) instance Control.Joint.Abilities.Transformer.Transformer (Control.Joint.Effects.State.State s) instance Control.Joint.Abilities.Liftable.Liftable (Control.Joint.Effects.Reader.Reader e) (Control.Joint.Effects.State.State e) 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.Effects.Maybe type Optional = Liftable 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.Abilities.Composition.Composition GHC.Maybe.Maybe instance Control.Joint.Abilities.Transformer.Transformer GHC.Maybe.Maybe module Control.Joint.Effects.Either type Failable e = Liftable (Either e) 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.Abilities.Composition.Composition (Data.Either.Either e) instance Control.Joint.Abilities.Transformer.Transformer (Data.Either.Either e) module Control.Joint.Effects