Copyright | Copyright (C) 2015 Kyle Carter |
---|---|
License | BSD3 |
Maintainer | Kyle Carter <kylcarte@indiana.edu> |
Stability | experimental |
Portability | RankNTypes |
Safe Haskell | None |
Language | Haskell2010 |
Two type combinators for working with disjunctions: A branch combinator '(:+:)', and a choice combinator '(:|:)'.
These are analogous to '(+++)' and '(|||)' from Arrow
,
respectively.
Documentation
data f :|: g :: Either k l -> * where infixr 4 Source
HBifunctor k k (Either k k) ((:|:) k k) Source | |
Witness p q (g b) => Witness p q ((:|:) k k f g (Right k k b)) Source | |
Witness p q (f a) => Witness p q ((:|:) k k f g (Left k k a)) Source | |
HTraversable k (Either k k) ((:|:) k k f) Source | |
HFoldable k (Either k k) ((:|:) k k f) Source | |
HFunctor k (Either k k) ((:|:) k k f) Source | |
Known k1 g b => Known (Either k k) ((:|:) k k f g) (Right k k b) Source | |
Known k1 f a => Known (Either k k) ((:|:) k k f g) (Left k k a) Source | |
type WitnessC p q ((:|:) k k1 f g (Right k k1 b)) = Witness p q (g b) Source | |
type WitnessC p q ((:|:) k1 k f g (Left k1 k a)) = Witness p q (f a) Source | |
type KnownC (Either k k1) ((:|:) k k1 f g) (Right k k1 b) = Known k1 g b Source | |
type KnownC (Either k1 k) ((:|:) k1 k f g) (Left k1 k a) = Known k1 f a Source |