pandora-0.5.5: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Paradigm.Algebraic

Documentation

type (:+*+:) l r = (l :+: r) :*: (r :+: l) Source #

type (:*+*:) l r = (l :*: r) :+: (r :*: l) Source #

Orphan instances

Monoidal (-->) (-->) (:*:) (:*:) ((:+:) e) Source # 
Instance details

Methods

unit :: Proxy (:*:) -> (Unit (:*:) --> a) --> (e :+: a) Source #

Monoidal (<--) (-->) (:*:) (:*:) ((:*:) s) Source # 
Instance details

Methods

unit :: Proxy (:*:) -> (Unit (:*:) --> a) <-- (s :*: a) Source #

Monoidal (<--) (-->) (:*:) (:*:) (Flip (:*:) a) Source # 
Instance details

Methods

unit :: Proxy (:*:) -> (Unit (:*:) --> a0) <-- Flip (:*:) a a0 Source #

(Monoidal (-->) (-->) (:*:) (:+:) t, Monoidal (-->) (-->) (:*:) (:+:) u) => Monoidal (-->) (-->) (:*:) (:+:) (t <:*:> u) Source # 
Instance details

Methods

unit :: Proxy (:*:) -> (Unit (:+:) --> a) --> (t <:*:> u) a Source #

Monoidal (-->) (-->) (:*:) (:*:) ((->) e :: Type -> Type) Source # 
Instance details

Methods

unit :: Proxy (:*:) -> (Unit (:*:) --> a) --> (e -> a) Source #

Semimonoidal (-->) (:*:) (:+:) ((:+:) e :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((e :+: a) :*: (e :+: b)) --> (e :+: (a :+: b)) Source #

Semimonoidal (-->) (:*:) (:*:) ((:+:) e :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((e :+: a) :*: (e :+: b)) --> (e :+: (a :*: b)) Source #

Semimonoidal (<--) (:*:) (:*:) ((:*:) s :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((s :*: a) :*: (s :*: b)) <-- (s :*: (a :*: b)) Source #

Semimonoidal (<--) (:*:) (:*:) (Flip (:*:) a :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a0 :: k) (b :: k). (Flip (:*:) a a0 :*: Flip (:*:) a b) <-- Flip (:*:) a (a0 :*: b) Source #

(Semimonoidal (-->) (:*:) (:+:) t, Semimonoidal (-->) (:*:) (:+:) u) => Semimonoidal (-->) (:*:) (:+:) (t <:*:> u :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((t <:*:> u) a :*: (t <:*:> u) b) --> (t <:*:> u) (a :+: b) Source #

Semimonoidal (-->) (:*:) (:*:) ((->) e :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((e -> a) :*: (e -> b)) --> (e -> (a :*: b)) Source #

(Semimonoidal (-->) (:*:) (:*:) t, Semimonoidal (-->) (:*:) (:*:) u) => Semimonoidal (-->) (:*:) (:*:) (t <:*:> u :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((t <:*:> u) a :*: (t <:*:> u) b) --> (t <:*:> u) (a :*: b) Source #

Semimonoidal (<--) (:*:) (:*:) ((->) e :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((e -> a) :*: (e -> b)) <-- (e -> (a :*: b)) Source #

(Semimonoidal (<--) (:*:) (:*:) t, Semimonoidal (<--) (:*:) (:*:) u) => Semimonoidal (<--) (:*:) (:*:) (t <:*:> u :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). ((t <:*:> u) a :*: (t <:*:> u) b) <-- (t <:*:> u) (a :*: b) Source #

Comonad ((->) :: Type -> Type -> Type) ((:*:) s) Source # 
Instance details

Traversable ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((:*:) s) Source # 
Instance details

Methods

(<-/-) :: (Covariant (->) (->) u, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u) => (a -> u b) -> (s :*: a) -> u (s :*: b) Source #

(<-/-------) :: (Covariant (->) (->) u, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u) => (a -> u b) -> (s :*: a) -> u (s :*: b) Source #

(<-/------) :: (Covariant (->) (->) u, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u) => (a -> u b) -> (s :*: a) -> u (s :*: b) Source #

(<-/-----) :: (Covariant (->) (->) u, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u) => (a -> u b) -> (s :*: a) -> u (s :*: b) Source #

(<-/----) :: (Covariant (->) (->) u, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u) => (a -> u b) -> (s :*: a) -> u (s :*: b) Source #

(<-/---) :: (Covariant (->) (->) u, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u) => (a -> u b) -> (s :*: a) -> u (s :*: b) Source #

(<-/--) :: (Covariant (->) (->) u, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u) => (a -> u b) -> (s :*: a) -> u (s :*: b) Source #

(Traversable ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Traversable ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) u) => Traversable ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (t <:*:> u) Source # 
Instance details

Methods

(<-/-) :: (Covariant (->) (->) u0, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u0) => (a -> u0 b) -> (t <:*:> u) a -> u0 ((t <:*:> u) b) Source #

(<-/-------) :: (Covariant (->) (->) u0, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u0) => (a -> u0 b) -> (t <:*:> u) a -> u0 ((t <:*:> u) b) Source #

(<-/------) :: (Covariant (->) (->) u0, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u0) => (a -> u0 b) -> (t <:*:> u) a -> u0 ((t <:*:> u) b) Source #

(<-/-----) :: (Covariant (->) (->) u0, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u0) => (a -> u0 b) -> (t <:*:> u) a -> u0 ((t <:*:> u) b) Source #

(<-/----) :: (Covariant (->) (->) u0, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u0) => (a -> u0 b) -> (t <:*:> u) a -> u0 ((t <:*:> u) b) Source #

(<-/---) :: (Covariant (->) (->) u0, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u0) => (a -> u0 b) -> (t <:*:> u) a -> u0 ((t <:*:> u) b) Source #

(<-/--) :: (Covariant (->) (->) u0, Monoidal (Straight (->)) (Straight (->)) (:*:) (:*:) u0) => (a -> u0 b) -> (t <:*:> u) a -> u0 ((t <:*:> u) b) Source #