semigroupoid-extras-5: Semigroupoids that depend on PolyKinds

Copyright(C) 2011-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
PortabilityMPTCs, GADTs
Safe HaskellTrustworthy
LanguageHaskell98

Data.Semifunctor.Braided

Description

 

Documentation

class Associative k p => Braided k p where #

Methods

braid :: k (p '(a, b)) (p '(b, a)) #

Instances
(Bind m, Monad m) => Braided (Kleisli m :: Type -> Type -> Type) (Bi (,)) # 
Instance details

Defined in Data.Semifunctor.Braided

Methods

braid :: Kleisli m (Bi (,) (a, b)) (Bi (,) (b, a)) #

(Bind m, Monad m) => Braided (Kleisli m :: Type -> Type -> Type) (Bi Either) # 
Instance details

Defined in Data.Semifunctor.Braided

Methods

braid :: Kleisli m (Bi Either (a, b)) (Bi Either (b, a)) #

Braided ((->) :: Type -> Type -> Type) (Bi Either) # 
Instance details

Defined in Data.Semifunctor.Braided

Methods

braid :: Bi Either (a, b) -> Bi Either (b, a) #

Braided ((->) :: Type -> Type -> Type) (Bi (,)) # 
Instance details

Defined in Data.Semifunctor.Braided

Methods

braid :: Bi (,) (a, b) -> Bi (,) (b, a) #

kleisliBraid :: (Monad m, Semifunctor p (Product (Kleisli m) (Kleisli m)) (Kleisli m), Braided (->) p) => Kleisli m (p '(a, b)) (p '(b, a)) #

class Braided k p => Symmetric k p #

Instances
(Bind m, Monad m) => Symmetric (Kleisli m :: Type -> Type -> Type) (Bi (,)) # 
Instance details

Defined in Data.Semifunctor.Braided

(Bind m, Monad m) => Symmetric (Kleisli m :: Type -> Type -> Type) (Bi Either) # 
Instance details

Defined in Data.Semifunctor.Braided

Symmetric ((->) :: Type -> Type -> Type) (Bi Either) # 
Instance details

Defined in Data.Semifunctor.Braided

Symmetric ((->) :: Type -> Type -> Type) (Bi (,)) # 
Instance details

Defined in Data.Semifunctor.Braided

swap :: Symmetric k p => k (p '(a, b)) (p '(b, a)) #