Safe Haskell | None |
---|---|

Language | Haskell2010 |

- data Union as
- exhaust :: Union [] -> a
- (||>) :: (a -> r) -> (Union as -> r) -> Union (a : as) -> r
- picked :: forall a as f. (Applicative f, Member a as) => (a -> f a) -> Union as -> f (Union as)
- liftU :: forall a as. Member a as => a -> Union as
- retractU :: Member a as => Union as -> Maybe a
- hoistU :: Member a as => (a -> a) -> Union as -> Union as
- class Member a as | as -> a
- class Include as bs where
- type (∈) a as = Member a as
- type (⊆) as bs = Include as bs
- type (＝) as bs = (Include as bs, Include bs as)