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

Language | Haskell2010 |

- data Union as where
- exhaust :: Union [] -> a
- type family All ca as :: Constraint
- (||>) :: (a -> r) -> (Union as -> r) -> Union (a : as) -> r
- data Position a as where
- class Member a as | as -> a where
- liftU :: forall a as. Member a as => a -> Union as
- picked :: forall a as f. (Applicative f, Member a as) => (a -> f a) -> Union as -> f (Union as)
- retractU :: Member a as => Union as -> Maybe a
- hoistU :: Member a as => (a -> a) -> Union as -> Union as
- newtype Id a = Id {
- getId :: 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)

# Documentation

type family All ca as :: Constraint Source

picked :: forall a as f. (Applicative f, Member a as) => (a -> f a) -> Union as -> f (Union as) Source

Traversal for a specific element.