Safe Haskell | None |
---|---|

Language | Haskell2010 |

- data ConstrainedT xs cat a b where
- ConstrainedT :: (AppConstraints xs a, AppConstraints xs b, ValidCategory cat a, ValidCategory cat b) => cat a b -> ConstrainedT xs cat a b

- proveConstrained :: (ValidCategory (ConstrainedT xs cat) a, ValidCategory (ConstrainedT xs cat) b) => cat a b -> ConstrainedT xs cat a b
- type EqHask = ConstrainedT `[Eq_]` Hask
- proveEqHask :: (Eq a, Eq b) => (a -> b) -> a `EqHask` b
- type OrdHask = ConstrainedT `[Ord_]` Hask
- proveOrdHask :: (Ord a, Ord b) => (a -> b) -> a `OrdHask` b

# Documentation

data ConstrainedT xs cat a b where Source

ConstrainedT :: (AppConstraints xs a, AppConstraints xs b, ValidCategory cat a, ValidCategory cat b) => cat a b -> ConstrainedT xs cat a b |

Monad OrdHask LexSet Source | |

Functor * OrdHask LexSet Source | |

Category * cat => Category * (ConstrainedT xs cat) Source | |

(AppConstraints xs (TUnit * cat), Monoidal cat) => Monoidal (ConstrainedT xs cat) Source | |

Sup (* -> * -> *) b a c => Sup (* -> * -> *) a (ConstrainedT xs b) c Source | |

(<:) (* -> * -> *) subcat cat => (<:) (* -> * -> *) (ConstrainedT xs subcat) cat Source | |

Sup (* -> * -> *) a b c => Sup (* -> * -> *) (ConstrainedT xs a) b c Source | |

type Tensor k (ConstrainedT xs cat) = Tensor k cat Source | |

type TUnit k (ConstrainedT xs cat) = TUnit k cat Source | |

type ValidCategory * (ConstrainedT xs cat) a Source |

proveConstrained :: (ValidCategory (ConstrainedT xs cat) a, ValidCategory (ConstrainedT xs cat) b) => cat a b -> ConstrainedT xs cat a b Source

## Common type synonyms

type EqHask = ConstrainedT `[Eq_]` Hask Source

proveEqHask :: (Eq a, Eq b) => (a -> b) -> a `EqHask` b Source

type OrdHask = ConstrainedT `[Ord_]` Hask Source

proveOrdHask :: (Ord a, Ord b) => (a -> b) -> a `OrdHask` b Source