Documentation
Nat Z | |
TypeCast a b => RotType Z a b | |
(TypeCast d a, TypeCast e b, TypeCast f c) => FlipType Z (a -> b -> c) ((d -> e -> f) -> e -> d -> f) | |
(TypeCast d a, TypeCast e c, TypeCast f b) => ComposeType Z (b -> c) (a -> f) (d -> e) | |
Apply (R a) Z (a -> a) | |
Apply (R (b -> a -> c)) (S Z) ((b -> a -> c) -> a -> b -> c) | |
(TypeCast d b, TypeCast e a, TypeCast f c) => RotType (S Z) (a -> b -> c) (d -> e -> f) | |
Apply (C (b -> c) (a -> b)) Z ((b -> c) -> (a -> b) -> a -> c) |
S n |
Nat n => Nat (S n) | |
(RotType (S n) b g, FlipType (S n) a ((d -> e -> f) -> e -> d -> f), ComposeType n ((d -> e -> f) -> e -> d -> f) a b) => RotType (S (S n)) a g | |
FlipType n f ((a -> b -> c -> d) -> b -> a -> c -> d) => FlipType (S n) f ((b -> c -> d) -> c -> b -> d) | |
Apply (R (b -> a -> c)) (S Z) ((b -> a -> c) -> a -> b -> c) | |
(Apply (R b) (S n) (b -> f), FlipType (S n) a ((c -> d -> e) -> d -> c -> e), Compose n ((c -> d -> e) -> d -> c -> e) a b) => Apply (R a) (S (S n)) (a -> f) | |
(TypeCast d b, TypeCast e a, TypeCast f c) => RotType (S Z) (a -> b -> c) (d -> e -> f) | |
ComposeType n (b -> c) s t => ComposeType (S n) (b -> c) (a -> s) (a -> t) | |
Apply (C (b -> c) s) n ((b -> c) -> s -> t) => Apply (C (b -> c) (a -> s)) (S n) ((b -> c) -> (a -> s) -> a -> t) |
class ComposeType n a b c | n a b -> cSource
(TypeCast d a, TypeCast e c, TypeCast f b) => ComposeType Z (b -> c) (a -> f) (d -> e) | |
ComposeType n (b -> c) s t => ComposeType (S n) (b -> c) (a -> s) (a -> t) |
class Compose n a b c | n a b -> c whereSource
(ComposeType n (b -> c) (a -> f) (d -> e), Apply (C (b -> c) (a -> f)) n ((b -> c) -> (a -> f) -> d -> e)) => Compose n (b -> c) (a -> f) (d -> e) |