Copyright | Copyright (C) 2015 Kyle Carter |
---|---|
License | BSD3 |
Maintainer | Kyle Carter <kylcarte@indiana.edu> |
Stability | experimental |
Portability | RankNTypes |
Safe Haskell | None |
Language | Haskell2010 |
Documentation
data f :..: g :: k -> l -> * where infixr 6 Source
Witness p q (f (g a b)) => Witness p q ((:..:) k k k f g a b) Source | |
Eq (f (g a b)) => Eq ((:..:) k k k f g a b) Source | |
Ord (f (g a b)) => Ord ((:..:) k k k f g a b) Source | |
Show (f (g a b)) => Show ((:..:) k k k f g a b) Source | |
type WitnessC p q ((:..:) k k1 k2 f g a b) = Witness p q (f (g a b)) Source |
data IT :: (k -> *) -> k -> * where Source
HTraversable k k (IT k) Source | |
HFoldable k k (IT k) Source | |
HFunctor k k (IT k) Source | |
Witness p q (f a) => Witness p q (IT k f a) Source | |
Eq (f a) => Eq (IT k f a) Source | |
Num (f a) => Num (IT k f a) Source | |
Ord (f a) => Ord (IT k f a) Source | |
Show (f a) => Show (IT k f a) Source | |
type WitnessC p q (IT k f a) = Witness p q (f a) Source |
Witness p q (f (g a)) => Witness p q (LL k k a f g) Source | |
HTraversable k (k -> k) (LL k k a) Source | |
HFoldable k (k -> k) (LL k k a) Source | |
HFunctor k (k -> k) (LL k k a) Source | |
Eq (f (g a)) => Eq (LL k k a f g) Source | |
Ord (f (g a)) => Ord (LL k k a f g) Source | |
Show (f (g a)) => Show (LL k k a f g) Source | |
type WitnessC p q (LL k k1 a f g) = Witness p q (f (g a)) Source |
HTraversable k k (RR k k g) Source | |
HFoldable k k (RR k k g) Source | |
HFunctor k k (RR k k g) Source | |
Witness p q (f (g a)) => Witness p q (RR k k g f a) Source | |
Eq (f (g a)) => Eq (RR k k g f a) Source | |
Ord (f (g a)) => Ord (RR k k g f a) Source | |
Show (f (g a)) => Show (RR k k g f a) Source | |
type WitnessC p q (RR k k1 g f a) = Witness p q (f (g a)) Source |
data CT :: * -> (k -> *) -> l -> * where Source
HTraversable k k (CT k k r) Source | |
HFoldable k k (CT k k r) Source | |
HFunctor k k (CT k k r) Source | |
Witness p q r => Witness p q (CT k k r f a) Source | |
Eq r => Eq (CT k k r f a) Source | |
Num r => Num (CT k k r f a) Source | |
Ord r => Ord (CT k k r f a) Source | |
Show r => Show (CT k k r f a) Source | |
type WitnessC p q (CT k k1 r f a) = Witness p q r Source |
Witness p q (f a a) => Witness p q (Join k f a) Source | |
Known k (f a) a => Known k (Join k f) a Source | |
Eq (f a a) => Eq (Join k f a) Source | |
Ord (f a a) => Ord (Join k f a) Source | |
Show (f a a) => Show (Join k f a) Source | |
type WitnessC p q (Join k f a) = Witness p q (f a a) Source | |
type KnownC k (Join k f) a = Known k (f a) a Source |
Witness p q (f a b) => Witness p q (Flip k k f b a) Source | |
Known k1 (p a) b => Known k (Flip k k p b) a Source | |
Eq (p a b) => Eq (Flip k k p b a) Source | |
Ord (p a b) => Ord (Flip k k p b a) Source | |
Show (p a b) => Show (Flip k k p b a) Source | |
type WitnessC p q (Flip k k1 f b a) = Witness p q (f a b) Source | |
type KnownC k (Flip k k1 p b) a = Known k1 (p a) b Source |
data Uncur p :: (k, l) -> * where Source
(Witness r s (p a b), (~) ((,) k k1) q ((#) k k1 a b)) => Witness r s (Uncur k k p q) Source | |
(Known k1 (p a) b, (~) ((,) k k1) q ((#) k k1 a b)) => Known ((,) k k) (Uncur k k p) q Source | |
type WitnessC r s (Uncur k k1 p q) = Witness r s (p (Fst k k1 q) (Snd k1 k q)) Source | |
type KnownC ((,) k k1) (Uncur k k1 p) q = Known k1 (p (Fst k k1 q)) (Snd k1 k q) Source |
newtype Cur3 p :: k -> l -> m -> * where Source
Witness q r (p ((,,) k k1 k2 a b c)) => Witness q r (Cur3 k k k p a b c) Source | |
Known ((,,) k1 k2 k) p ((,,) k1 k2 k a b c) => Known k (Cur3 k k k p a b) c Source | |
type WitnessC q r (Cur3 k k1 k2 p a b c) = Witness q r (p ((,,) k k1 k2 a b c)) Source | |
type KnownC k (Cur3 k1 k2 k p a b) c = Known ((,,) k1 k2 k) p ((,,) k1 k2 k a b c) Source |
data Uncur3 p :: (k, l, m) -> * where Source
(Witness r s (p a b c), (~) ((,,) k k1 k2) q ((,,) k k1 k2 a b c)) => Witness r s (Uncur3 k k k p q) Source | |
(Known k2 (p a b) c, (~) ((,,) k k1 k2) q ((,,) k k1 k2 a b c)) => Known ((,,) k k k) (Uncur3 k k k p) q Source | |
type WitnessC r s (Uncur3 k k1 k2 p q) = Witness r s (p (Fst3 k k1 k2 q) (Snd3 k1 k k2 q) (Thd3 k2 k k1 q)) Source | |
type KnownC ((,,) k k1 k2) (Uncur3 k k1 k2 p) q = Known k2 (p (Fst3 k k1 k2 q) (Snd3 k1 k k2 q)) (Thd3 k2 k k1 q) Source |