proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Tools.Laws

Documentation

data family Var (cs :: [Kind -> Constraint]) (a :: Symbol) (b :: Symbol) Source Comments #

Instances

Instances details
Show (Var '[Monoidal, SymMonoidal] a b) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

Show (Var '[Monoidal] a b) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

Methods

showsPrec :: Int -> Var '[Monoidal] a b -> ShowS Comments #

show :: Var '[Monoidal] a b -> String Comments #

showList :: [Var '[Monoidal] a b] -> ShowS Comments #

Show (Var '[HasBinaryCoproducts] a b) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Show (Var '[HasBinaryProducts] a b) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Show (Var '[HasInitialObject] a b) Source Comments # 
Instance details

Defined in Proarrow.Object.Initial

Show (Var '[HasTerminalObject] a b) Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

data Var '[Monoidal, SymMonoidal] a b Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

data Var '[Monoidal, SymMonoidal] a b
data Var '[Monoidal] a b Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

data Var '[Monoidal] a b where
data Var '[HasBinaryCoproducts] a b Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

data Var '[HasBinaryCoproducts] a b where
data Var '[HasBinaryProducts] a b Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

data Var '[HasBinaryProducts] a b where
data Var '[HasInitialObject] a b Source Comments # 
Instance details

Defined in Proarrow.Object.Initial

data Var '[HasInitialObject] a b where
data Var '[HasTerminalObject] a b Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

data Var '[HasTerminalObject] a b where

class Laws (cs :: [Kind -> Constraint]) where Source Comments #

Associated Types

type EqTypes (cs :: [Kind -> Constraint]) :: [FREE cs (Var cs)] Source Comments #

Methods

laws :: [AssertEq cs] Source Comments #

Instances

Instances details
Laws '[Monoidal, SymMonoidal] Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

Laws '[Monoidal] Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

Associated Types

type EqTypes '[Monoidal] 
Instance details

Defined in Proarrow.Category.Monoidal

type EqTypes '[Monoidal] = '['EMB "A" :: FREE '[Monoidal] (Var '[Monoidal]), 'EMB "B" :: FREE '[Monoidal] (Var '[Monoidal]), (UnitF :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])), (UnitF :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])), ('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])) **! (UnitF :: FREE '[Monoidal] (Var '[Monoidal])), ('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])) **! (UnitF :: FREE '[Monoidal] (Var '[Monoidal])), ('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])), (('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])) **! (UnitF :: FREE '[Monoidal] (Var '[Monoidal]))) **! ('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])), (('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal]))) **! ('EMB "C" :: FREE '[Monoidal] (Var '[Monoidal])), ('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])) **! (('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "C" :: FREE '[Monoidal] (Var '[Monoidal]))), (('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "C" :: FREE '[Monoidal] (Var '[Monoidal]))) **! ('EMB "D" :: FREE '[Monoidal] (Var '[Monoidal])), ('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])) **! (('EMB "C" :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "D" :: FREE '[Monoidal] (Var '[Monoidal]))), ('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])) **! (('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal])) **! (('EMB "C" :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "D" :: FREE '[Monoidal] (Var '[Monoidal])))), ((('EMB "A" :: FREE '[Monoidal] (Var '[Monoidal])) **! ('EMB "B" :: FREE '[Monoidal] (Var '[Monoidal]))) **! ('EMB "C" :: FREE '[Monoidal] (Var '[Monoidal]))) **! ('EMB "D" :: FREE '[Monoidal] (Var '[Monoidal]))]
Laws '[HasBinaryCoproducts] Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Laws '[HasBinaryProducts] Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Laws '[HasInitialObject] Source Comments # 
Instance details

Defined in Proarrow.Object.Initial

Associated Types

type EqTypes '[HasInitialObject] 
Instance details

Defined in Proarrow.Object.Initial

Laws '[HasTerminalObject] Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

Associated Types

type EqTypes '[HasTerminalObject] 
Instance details

Defined in Proarrow.Object.Terminal

data AssertEq (cs :: [Kind -> Constraint]) where Source Comments #

Constructors

(:=:) :: forall {cs :: [Kind -> Constraint]} (a :: FREE cs (Var cs)) (b :: FREE cs (Var cs)). (Elem a (EqTypes cs), Elem b (EqTypes cs)) => Free a b -> Free a b -> AssertEq cs infix 0 

Instances

Instances details
Show2 (Var cs) => Show (AssertEq cs) Source Comments # 
Instance details

Defined in Proarrow.Tools.Laws

data Place (as :: [k]) (a :: k) where Source Comments #

Constructors

Here :: forall {k} (a :: k) (as1 :: [k]). Place (a ': as1) a 
There :: forall {k} (a :: k) (as1 :: [k]) (a1 :: k). Elem a as1 => Place (a1 ': as1) a 

class Elem (c :: a) (cs :: [a]) where Source Comments #

Methods

place :: Place cs c Source Comments #

Instances

Instances details
Elem (c :: a) (c ': cs :: [a]) Source Comments # 
Instance details

Defined in Proarrow.Tools.Laws

Methods

place :: Place (c ': cs) c Source Comments #

Elem c cs => Elem (c :: a) (d ': cs :: [a]) Source Comments # 
Instance details

Defined in Proarrow.Tools.Laws

Methods

place :: Place (d ': cs) c Source Comments #

data Sym (a :: Symbol) (b :: Symbol) where Source Comments #

Constructors

Sym :: forall (a :: Symbol) (b :: Symbol). (KnownSymbol a, KnownSymbol b) => (a :~: b) -> Sym a b 

Instances

Instances details
Promonad Sym Source Comments # 
Instance details

Defined in Proarrow.Tools.Laws

Methods

id :: forall (a :: Symbol). Ob a => Sym a a Source Comments #

(.) :: forall (b :: Symbol) (c :: Symbol) (a :: Symbol). Sym b c -> Sym a b -> Sym a c Source Comments #

Profunctor Sym Source Comments # 
Instance details

Defined in Proarrow.Tools.Laws

Methods

dimap :: forall (c :: Symbol) (a :: Symbol) (b :: Symbol) (d :: Symbol). (c ~> a) -> (b ~> d) -> Sym a b -> Sym c d Source Comments #

(\\) :: forall (a :: Symbol) (b :: Symbol) r. ((Ob a, Ob b) => r) -> Sym a b -> r Source Comments #

iso :: forall {cs :: [Kind -> Constraint]} (a :: FREE cs (Var cs)) (b :: FREE cs (Var cs)). (Elem a (EqTypes cs), Elem b (EqTypes cs), All cs (FREE cs (Var cs)), Typeable cs) => Free a b -> Free b a -> [AssertEq cs] Source Comments #

Orphan instances

CategoryOf Symbol Source Comments # 
Instance details

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Tools.Laws

type (~>) = Sym
type Ob (a :: Symbol) 
Instance details

Defined in Proarrow.Tools.Laws

type Ob (a :: Symbol) = KnownSymbol a