pandora-0.1.4: A box of patterns and paradigms
Pandora.Paradigm.Basis.Product
data Product a b Source #
Constructors
Defined in Pandora.Paradigm.Basis.Product
Methods
(<$>) :: (a0 -> b) -> Product a a0 -> Product a b Source #
comap :: (a0 -> b) -> Product a a0 -> Product a b Source #
(<$) :: a0 -> Product a b -> Product a a0 Source #
($>) :: Product a a0 -> b -> Product a b Source #
void :: Product a a0 -> Product a () Source #
loeb :: Product a (Product a a0 -> a0) -> Product a a0 Source #
(<$$>) :: Covariant u => (a0 -> b) -> Product a (u a0) -> Product a (u b) Source #
(<$$$>) :: (Covariant u, Covariant v) => (a0 -> b) -> Product a (u (v a0)) -> Product a (u (v b)) Source #
(<$$$$>) :: (Covariant u, Covariant v, Covariant w) => (a0 -> b) -> Product a (u (v (w a0))) -> Product a (u (v (w b))) Source #
(=>>) :: Product a a0 -> (Product a a0 -> b) -> Product a b Source #
(<<=) :: (Product a a0 -> b) -> Product a a0 -> Product a b Source #
extend :: (Product a a0 -> b) -> Product a a0 -> Product a b Source #
duplicate :: Product a a0 -> (Product a :.: Product a) a0 Source #
(=<=) :: (Product a b -> c) -> (Product a a0 -> b) -> Product a a0 -> c Source #
(=>=) :: (Product a a0 -> b) -> (Product a b -> c) -> Product a a0 -> c Source #
extract :: Product a a0 -> a0 Source #
phi :: (Product a a0 -> b) -> a0 -> a -> b Source #
psi :: (a0 -> a -> b) -> Product a a0 -> b Source #
eta :: a0 -> ((->) a :.: Product a) a0 Source #
epsilon :: (Product a :.: (->) a) a0 -> a0 Source #
(<>) :: Product a b -> Product a b -> Product a b Source #
(><) :: Product a b -> Product a b -> Product a b Source #
unit :: Product a b Source #
inverse :: Product a b -> Product a b Source #
(\/) :: Product a b -> Product a b -> Product a b Source #
(/\) :: Product a b -> Product a b -> Product a b Source #
(==) :: Product a b -> Product a b -> Boolean Source #
(/=) :: Product a b -> Product a b -> Boolean Source #
type (:*:) = Product infixr 1 Source #
type family Has x xs where ... Source #
Equations
type family Injective xs ys where ... Source #
delta :: a -> a :*: a Source #
swap :: (a :*: b) -> b :*: a Source #
attached :: (a :*: b) -> a Source #