Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data IncreasingT cat a b where
- IncreasingT :: (Ord_ a, Ord_ b) => cat a b -> IncreasingT cat a b
- type Increasing a = Increasing_ a
- type family Increasing_ a
- proveIncreasing :: (Ord_ a, Ord_ b) => (ProofOf (IncreasingT Hask) a -> ProofOf (IncreasingT Hask) b) -> Increasing (a -> b)
- unsafeProveIncreasing :: (Ord_ a, Ord_ b) => (a -> b) -> Increasing (a -> b)
- type Mon = MonT Hask
- type ValidMon a = Ord a
- data MonT cat a b where
- unsafeProveMonT :: (ValidMon a, ValidMon b) => cat a b -> MonT cat a b
- unsafeProveMon :: (ValidMon a, ValidMon b) => cat a b -> MonT cat a b
Documentation
data IncreasingT cat a b where Source
IncreasingT :: (Ord_ a, Ord_ b) => cat a b -> IncreasingT cat a b |
type Increasing a = Increasing_ a Source
type family Increasing_ a Source
Increasing_ ((cat :: * -> * -> *) a b) = IncreasingT cat a b |
proveIncreasing :: (Ord_ a, Ord_ b) => (ProofOf (IncreasingT Hask) a -> ProofOf (IncreasingT Hask) b) -> Increasing (a -> b) Source
unsafeProveIncreasing :: (Ord_ a, Ord_ b) => (a -> b) -> Increasing (a -> b) Source
data MonT cat a b where Source
Monad Mon LexSet Source | FIXME: is there a more efficient implementation? |
Functor * Mon LexSet Source | |
Category * cat => Category * (MonT cat) Source | |
Sup (* -> * -> *) b a c => Sup (* -> * -> *) a (MonT b) c Source | |
(<:) (* -> * -> *) subcat cat => (<:) (* -> * -> *) (MonT subcat) cat Source | |
Sup (* -> * -> *) a b c => Sup (* -> * -> *) (MonT a) b c Source | |
type ValidCategory * (MonT cat) a = (ValidCategory * cat a, ValidMon a) Source |
unsafeProveMonT :: (ValidMon a, ValidMon b) => cat a b -> MonT cat a b Source
unsafeProveMon :: (ValidMon a, ValidMon b) => cat a b -> MonT cat a b Source