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 :: k -> * where infixr 4 Source #
Bifunctor1 m m m ((:|:) m) Source # | |
Traversable1 l l ((:|:) l f) Source # | |
Foldable1 l l ((:|:) l f) Source # | |
Functor1 l l ((:|:) l f) Source # | |
(Witness p q (f a), Witness p q (g a)) => Witness p q ((:|:) k f g a) Source # | |
(Read1 k f, Read1 k g) => Read1 k ((:|:) k f g) Source # | |
(Show1 k f, Show1 k g) => Show1 k ((:|:) k f g) Source # | |
(Ord1 k f, Ord1 k g) => Ord1 k ((:|:) k f g) Source # | |
(Eq1 k f, Eq1 k g) => Eq1 k ((:|:) k f g) Source # | |
(Eq (f a), Eq (g a)) => Eq ((:|:) k f g a) Source # | |
(Ord (f a), Ord (g a)) => Ord ((:|:) k f g a) Source # | |
(Read (f a), Read (g a)) => Read ((:|:) k f g a) Source # | |
(Show (f a), Show (g a)) => Show ((:|:) k f g a) Source # | |
type WitnessC p q ((:|:) k f g a) Source # | |
data f :+: g :: Either k l -> * where infixr 4 Source #
Witness p q (g b1) => Witness p q ((:+:) b k f g (Right k b b1)) Source # | |
Witness p q (f a1) => Witness p q ((:+:) l a f g (Left a l a1)) Source # | |
Bifunctor1 (Either k l) l k ((:+:) l k) Source # | |
Traversable1 (Either k1 k) k ((:+:) k k1 f) Source # | |
Foldable1 (Either k1 k) k ((:+:) k k1 f) Source # | |
Functor1 (Either k1 k) k ((:+:) k k1 f) Source # | |
(Read1 k f, Read1 l g) => Read1 (Either k l) ((:+:) l k f g) Source # | |
(Show1 k f, Show1 l g) => Show1 (Either k l) ((:+:) l k f g) Source # | |
(Ord1 k f, Ord1 l g) => Ord1 (Either k l) ((:+:) l k f g) Source # | |
(Eq1 k f, Eq1 l g) => Eq1 (Either k l) ((:+:) l k f g) Source # | |
Known b g b1 => Known (Either k b) ((:+:) b k f g) (Right k b b1) Source # | |
Known a f a1 => Known (Either a l) ((:+:) l a f g) (Left a l a1) Source # | |
(Eq (f (FromLeft k l e)), Eq (g (FromRight k l e))) => Eq ((:+:) l k f g e) Source # | |
(Ord (f (FromLeft k l e)), Ord (g (FromRight k l e))) => Ord ((:+:) l k f g e) Source # | |
(Show (f (FromLeft k l e)), Show (g (FromRight k l e))) => Show ((:+:) l k f g e) Source # | |
type WitnessC p q ((:+:) b k f g (Right k b b1)) Source # | |
type WitnessC p q ((:+:) l a f g (Left a l a1)) Source # | |
type KnownC (Either k b) ((:+:) b k f g) (Right k b b1) Source # | |
type KnownC (Either a l) ((:+:) l a f g) (Left a l a1) Source # | |