pandora-0.1.1: 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 #

(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 #

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 #

(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 #

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