| Copyright | Copyright (C) 2015 Kyle Carter |
|---|---|
| License | BSD3 |
| Maintainer | Kyle Carter <kylcarte@indiana.edu> |
| Stability | experimental |
| Portability | RankNTypes |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Type.Disjunction
Description
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
Instances
| 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 |