pandora-0.1.4: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Junction.Transformer

Documentation

newtype T t u a Source #

Constructors

T 

Fields

Instances
Pointable t => Liftable (T t) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

lift :: Covariant u => u ~> T t u Source #

Extractable t => Lowerable (T t) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

lower :: Covariant u => T t u ~> u Source #

(Covariant t, Covariant u) => Covariant (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

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

comap :: (a -> b) -> T t u a -> T t u b Source #

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

($>) :: T t u a -> b -> T t u b Source #

void :: T t u a -> T t u () Source #

loeb :: T t u (T t u a -> a) -> T t u a Source #

(<$$>) :: Covariant u0 => (a -> b) -> T t u (u0 a) -> T t u (u0 b) Source #

(<$$$>) :: (Covariant u0, Covariant v) => (a -> b) -> T t u (u0 (v a)) -> T t u (u0 (v b)) Source #

(<$$$$>) :: (Covariant u0, Covariant v, Covariant w) => (a -> b) -> T t u (u0 (v (w a))) -> T t u (u0 (v (w b))) Source #

(Applicative t, Applicative u) => Applicative (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

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

apply :: T t u (a -> b) -> T t u a -> T t u b Source #

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

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

forever :: T t u a -> T t u b Source #

(Covariant t, Alternative u) => Alternative (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<+>) :: T t u a -> T t u a -> T t u a Source #

alter :: T t u a -> T t u a -> T t u a Source #

(Pointable t, Bindable t) => Bindable (Maybe :!: t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Maybe

Methods

(>>=) :: (Maybe :!: t) a -> (a -> (Maybe :!: t) b) -> (Maybe :!: t) b Source #

(=<<) :: (a -> (Maybe :!: t) b) -> (Maybe :!: t) a -> (Maybe :!: t) b Source #

bind :: (a -> (Maybe :!: t) b) -> (Maybe :!: t) a -> (Maybe :!: t) b Source #

join :: ((Maybe :!: t) :.: (Maybe :!: t)) a -> (Maybe :!: t) a Source #

(>=>) :: (a -> (Maybe :!: t) b) -> (b -> (Maybe :!: t) c) -> a -> (Maybe :!: t) c Source #

(<=<) :: (b -> (Maybe :!: t) c) -> (a -> (Maybe :!: t) b) -> a -> (Maybe :!: t) c Source #

(Pointable t, Bindable t) => Bindable (Conclusion e :!: t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion

Methods

(>>=) :: (Conclusion e :!: t) a -> (a -> (Conclusion e :!: t) b) -> (Conclusion e :!: t) b Source #

(=<<) :: (a -> (Conclusion e :!: t) b) -> (Conclusion e :!: t) a -> (Conclusion e :!: t) b Source #

bind :: (a -> (Conclusion e :!: t) b) -> (Conclusion e :!: t) a -> (Conclusion e :!: t) b Source #

join :: ((Conclusion e :!: t) :.: (Conclusion e :!: t)) a -> (Conclusion e :!: t) a Source #

(>=>) :: (a -> (Conclusion e :!: t) b) -> (b -> (Conclusion e :!: t) c) -> a -> (Conclusion e :!: t) c Source #

(<=<) :: (b -> (Conclusion e :!: t) c) -> (a -> (Conclusion e :!: t) b) -> a -> (Conclusion e :!: t) c Source #

(Distributive t, Distributive u) => Distributive (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(>>-) :: Covariant t0 => t0 a -> (a -> T t u b) -> (T t u :.: t0) b Source #

collect :: Covariant t0 => (a -> T t u b) -> t0 a -> (T t u :.: t0) b Source #

distribute :: Covariant t0 => (t0 :.: T t u) a -> (T t u :.: t0) a Source #

(Covariant t, Exclusive u) => Exclusive (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

exclusive :: T t u a Source #

(Extractable t, Extractable u) => Extractable (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

extract :: T t u a -> a Source #

(Pointable t, Pointable u) => Pointable (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

point :: a -> T t u a Source #

Monad t => Monad (Maybe :!: t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Maybe

Monad t => Monad (Conclusion e :!: t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Conclusion

(Traversable t, Traversable u) => Traversable (T t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(->>) :: (Pointable u0, Applicative u0) => T t u a -> (a -> u0 b) -> (u0 :.: T t u) b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> T t u a -> (u0 :.: T t u) b Source #

sequence :: (Pointable u0, Applicative u0) => (T t u :.: u0) a -> (u0 :.: T t u) a Source #

Semigroup ((u :.: t) a) => Semigroup (T t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<>) :: T t u a -> T t u a -> T t u a Source #

Monoid ((u :.: t) a) => Monoid (T t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

unit :: T t u a Source #

Setoid ((u :.: t) a) => Setoid (T t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(==) :: T t u a -> T t u a -> Boolean Source #

(/=) :: T t u a -> T t u a -> Boolean Source #

Chain ((u :.: t) a) => Chain (T t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<=>) :: T t u a -> T t u a -> Ordering Source #

(<) :: T t u a -> T t u a -> Boolean Source #

(<=) :: T t u a -> T t u a -> Boolean Source #

(>) :: T t u a -> T t u a -> Boolean Source #

(>=) :: T t u a -> T t u a -> Boolean Source #

type (:!:) t u = T t u infixr 0 Source #

up :: Pointable u => t a -> T t u a Source #

newtype Y t u a Source #

Constructors

Y 

Fields

  • y :: (u :.: t u) a
     
Instances
(forall (u :: Type -> Type). Pointable u, Liftable t) => Liftable (Y t) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

lift :: Covariant u => u ~> Y t u Source #

(forall (u :: Type -> Type). Extractable u, Lowerable t) => Lowerable (Y t) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

lower :: Covariant u => Y t u ~> u Source #

(Covariant (t u), Covariant u) => Covariant (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

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

comap :: (a -> b) -> Y t u a -> Y t u b Source #

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

($>) :: Y t u a -> b -> Y t u b Source #

void :: Y t u a -> Y t u () Source #

loeb :: Y t u (Y t u a -> a) -> Y t u a Source #

(<$$>) :: Covariant u0 => (a -> b) -> Y t u (u0 a) -> Y t u (u0 b) Source #

(<$$$>) :: (Covariant u0, Covariant v) => (a -> b) -> Y t u (u0 (v a)) -> Y t u (u0 (v b)) Source #

(<$$$$>) :: (Covariant u0, Covariant v, Covariant w) => (a -> b) -> Y t u (u0 (v (w a))) -> Y t u (u0 (v (w b))) Source #

(Applicative (t u), Applicative u) => Applicative (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

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

apply :: Y t u (a -> b) -> Y t u a -> Y t u b Source #

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

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

forever :: Y t u a -> Y t u b Source #

(Covariant (t u), Alternative u) => Alternative (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<+>) :: Y t u a -> Y t u a -> Y t u a Source #

alter :: Y t u a -> Y t u a -> Y t u a Source #

(Distributive (t u), Distributive u) => Distributive (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(>>-) :: Covariant t0 => t0 a -> (a -> Y t u b) -> (Y t u :.: t0) b Source #

collect :: Covariant t0 => (a -> Y t u b) -> t0 a -> (Y t u :.: t0) b Source #

distribute :: Covariant t0 => (t0 :.: Y t u) a -> (Y t u :.: t0) a Source #

(Covariant (t u), Exclusive u) => Exclusive (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

exclusive :: Y t u a Source #

(Extractable (t u), Extractable u) => Extractable (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

extract :: Y t u a -> a Source #

(Pointable (t u), Pointable u) => Pointable (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

point :: a -> Y t u a Source #

(Traversable (t u), Traversable u) => Traversable (Y t u) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(->>) :: (Pointable u0, Applicative u0) => Y t u a -> (a -> u0 b) -> (u0 :.: Y t u) b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> Y t u a -> (u0 :.: Y t u) b Source #

sequence :: (Pointable u0, Applicative u0) => (Y t u :.: u0) a -> (u0 :.: Y t u) a Source #

(forall (u1 :: k2 -> Type). Semigroup ((u1 :.: t u1) a)) => Semigroup (Y t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<>) :: Y t u a -> Y t u a -> Y t u a Source #

(forall (u1 :: k2 -> Type). Monoid ((u1 :.: t u1) a)) => Monoid (Y t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

unit :: Y t u a Source #

(forall (u1 :: k2 -> Type). Setoid ((u1 :.: t u1) a)) => Setoid (Y t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(==) :: Y t u a -> Y t u a -> Boolean Source #

(/=) :: Y t u a -> Y t u a -> Boolean Source #

(forall (u1 :: k2 -> Type). Chain ((u1 :.: t u1) a)) => Chain (Y t u a) Source # 
Instance details

Defined in Pandora.Paradigm.Junction.Transformer

Methods

(<=>) :: Y t u a -> Y t u a -> Ordering Source #

(<) :: Y t u a -> Y t u a -> Boolean Source #

(<=) :: Y t u a -> Y t u a -> Boolean Source #

(>) :: Y t u a -> Y t u a -> Boolean Source #

(>=) :: Y t u a -> Y t u a -> Boolean Source #

type (:>:) t u = Y t u infixr 0 Source #