joint-0.1.6: Trying to compose non-composable

Safe HaskellSafe
LanguageHaskell2010

Control.Joint.Abilities.Transformer

Documentation

class Interpreted t => Transformer t where Source #

Associated Types

type Schema (t :: * -> *) (u :: * -> *) = (r :: * -> *) | r -> t u Source #

Methods

embed :: Functor u => u ~> (t :> u) Source #

build :: Applicative u => t ~> (t :> u) Source #

unite :: Primary (Schema t u) a -> (t :> u) a Source #

Instances
Transformer Maybe Source # 
Instance details

Defined in Control.Joint.Effects.Maybe

Associated Types

type Schema Maybe u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> (Maybe :> u) Source #

build :: Applicative u => Maybe ~> (Maybe :> u) Source #

unite :: Primary (Schema Maybe u) a -> (Maybe :> u) a Source #

Transformer (Either e) Source # 
Instance details

Defined in Control.Joint.Effects.Either

Associated Types

type Schema (Either e) u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> (Either e :> u) Source #

build :: Applicative u => Either e ~> (Either e :> u) Source #

unite :: Primary (Schema (Either e) u) a -> (Either e :> u) a Source #

Monoid e => Transformer (Writer e) Source # 
Instance details

Defined in Control.Joint.Effects.Writer

Associated Types

type Schema (Writer e) u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> (Writer e :> u) Source #

build :: Applicative u => Writer e ~> (Writer e :> u) Source #

unite :: Primary (Schema (Writer e) u) a -> (Writer e :> u) a Source #

Transformer (Reader e) Source # 
Instance details

Defined in Control.Joint.Effects.Reader

Associated Types

type Schema (Reader e) u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> (Reader e :> u) Source #

build :: Applicative u => Reader e ~> (Reader e :> u) Source #

unite :: Primary (Schema (Reader e) u) a -> (Reader e :> u) a Source #

Transformer (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

Associated Types

type Schema (State s) u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> (State s :> u) Source #

build :: Applicative u => State s ~> (State s :> u) Source #

unite :: Primary (Schema (State s) u) a -> (State s :> u) a Source #

newtype (t :> u) a infixr 3 Source #

Constructors

T 

Fields

Instances
(Embedding t (Schema u (v :> (w :> (x :> (y :> (z :> (f :> h))))))), Embedding u (Schema v (w :> (x :> (y :> (z :> (f :> h)))))), Embedding v (Schema w (x :> (y :> (z :> (f :> h))))), Embedding w (Schema x (y :> (z :> (f :> h)))), Embedding x (Schema y (z :> (f :> h))), Embedding y (Schema z (f :> h)), Embedding z (Schema f h), Building f h) => Liftable f (t :> (u :> (v :> (w :> (x :> (y :> (z :> (f :> h)))))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: f ~> (t :> (u :> (v :> (w :> (x :> (y :> (z :> (f :> h)))))))) Source #

(Embedding t (Schema u (v :> (w :> (x :> (y :> (z :> (f :> h))))))), Embedding u (Schema v (w :> (x :> (y :> (z :> (f :> h)))))), Embedding v (Schema w (x :> (y :> (z :> (f :> h))))), Embedding w (Schema x (y :> (z :> (f :> h)))), Embedding x (Schema y (z :> (f :> h))), Embedding y (Schema z (f :> h)), Embedding z (Schema f h), Embedding f h) => Liftable h (t :> (u :> (v :> (w :> (x :> (y :> (z :> (f :> h)))))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: h ~> (t :> (u :> (v :> (w :> (x :> (y :> (z :> (f :> h)))))))) Source #

(Embedding t (Schema u (v :> (w :> (x :> (y :> (z :> f)))))), Embedding u (Schema v (w :> (x :> (y :> (z :> f))))), Embedding v (Schema w (x :> (y :> (z :> f)))), Embedding w (Schema x (y :> (z :> f))), Embedding x (Schema y (z :> f)), Embedding y (Schema z f), Building z f) => Liftable z (t :> (u :> (v :> (w :> (x :> (y :> (z :> f))))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: z ~> (t :> (u :> (v :> (w :> (x :> (y :> (z :> f))))))) Source #

(Embedding t (Schema u (v :> (w :> (x :> (y :> (z :> f)))))), Embedding u (Schema v (w :> (x :> (y :> (z :> f))))), Embedding v (Schema w (x :> (y :> (z :> f)))), Embedding w (Schema x (y :> (z :> f))), Embedding x (Schema y (z :> f)), Embedding y (Schema z f), Embedding z f) => Liftable f (t :> (u :> (v :> (w :> (x :> (y :> (z :> f))))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: f ~> (t :> (u :> (v :> (w :> (x :> (y :> (z :> f))))))) Source #

(Embedding t (Schema u (v :> (w :> (x :> (y :> z))))), Embedding u (Schema v (w :> (x :> (y :> z)))), Embedding v (Schema w (x :> (y :> z))), Embedding w (Schema x (y :> z)), Embedding x (Schema y z), Building y z) => Liftable y (t :> (u :> (v :> (w :> (x :> (y :> z)))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: y ~> (t :> (u :> (v :> (w :> (x :> (y :> z)))))) Source #

(Embedding t (Schema u (v :> (w :> (x :> (y :> z))))), Embedding u (Schema v (w :> (x :> (y :> z)))), Embedding v (Schema w (x :> (y :> z))), Embedding w (Schema x (y :> z)), Embedding x (Schema y z), Embedding y z) => Liftable z (t :> (u :> (v :> (w :> (x :> (y :> z)))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: z ~> (t :> (u :> (v :> (w :> (x :> (y :> z)))))) Source #

(Embedding t (Schema u (v :> (w :> (x :> y)))), Embedding u (Schema v (w :> (x :> y))), Embedding v (Schema w (x :> y)), Embedding w (Schema x y), Building x y) => Liftable x (t :> (u :> (v :> (w :> (x :> y))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: x ~> (t :> (u :> (v :> (w :> (x :> y))))) Source #

(Embedding t (Schema u (v :> (w :> (x :> y)))), Embedding u (Schema v (w :> (x :> y))), Embedding v (Schema w (x :> y)), Embedding w (Schema x y), Embedding x y) => Liftable y (t :> (u :> (v :> (w :> (x :> y))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: y ~> (t :> (u :> (v :> (w :> (x :> y))))) Source #

(Embedding t (Schema u (v :> (w :> x))), Embedding u (Schema v (w :> x)), Embedding v (Schema w x), Building w x) => Liftable w (t :> (u :> (v :> (w :> x)))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: w ~> (t :> (u :> (v :> (w :> x)))) Source #

(Embedding t (Schema u (v :> (w :> x))), Embedding u (Schema v (w :> x)), Embedding v (Schema w x), Embedding w x) => Liftable x (t :> (u :> (v :> (w :> x)))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: x ~> (t :> (u :> (v :> (w :> x)))) Source #

(Embedding t (Schema u v), Embedding t (Schema u (v :> w)), Embedding u (Schema v w), Embedding v w) => Liftable w (t :> (u :> (v :> w))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: w ~> (t :> (u :> (v :> w))) Source #

(Embedding t (Schema u (v :> w)), Embedding u (Schema v w), Building v w) => Liftable v (t :> (u :> (v :> w))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: v ~> (t :> (u :> (v :> w))) Source #

(Embedding t (Schema u v), Embedding u v) => Liftable v (t :> (u :> v)) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: v ~> (t :> (u :> v)) Source #

(Embedding t (Schema u v), Building u v) => Liftable u (t :> (u :> v)) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: u ~> (t :> (u :> v)) Source #

Building t u => Liftable t (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: t ~> (t :> u) Source #

Embedding t u => Liftable u (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: u ~> (t :> u) Source #

(Transformer t, Monad (Schema t u)) => Monad (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Methods

(>>=) :: (t :> u) a -> (a -> (t :> u) b) -> (t :> u) b #

(>>) :: (t :> u) a -> (t :> u) b -> (t :> u) b #

return :: a -> (t :> u) a #

fail :: String -> (t :> u) a #

Functor (Schema t u) => Functor (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Methods

fmap :: (a -> b) -> (t :> u) a -> (t :> u) b #

(<$) :: a -> (t :> u) b -> (t :> u) a #

(Transformer t, Applicative (Schema t u)) => Applicative (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Methods

pure :: a -> (t :> u) a #

(<*>) :: (t :> u) (a -> b) -> (t :> u) a -> (t :> u) b #

liftA2 :: (a -> b -> c) -> (t :> u) a -> (t :> u) b -> (t :> u) c #

(*>) :: (t :> u) a -> (t :> u) b -> (t :> u) b #

(<*) :: (t :> u) a -> (t :> u) b -> (t :> u) a #

(Interpreted (Schema t u), Transformer t) => Interpreted (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Associated Types

type Primary (t :> u) a :: Type Source #

Methods

run :: (t :> u) a -> Primary (t :> u) a Source #

type Primary (t :> u) a Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

type Primary (t :> u) a = Primary (Schema t u) a