Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data family Union s a
- type Nil = Union Empty
- type family f |> s :: * -> *
- data List a
- class f ∈ s | s -> f
- type Member f s = f ∈ s
- liftU :: forall s f a. f ∈ s => f a -> Union s a
- class s ⊆ t where
- type Include s t = s ⊆ t
- picked :: forall a s f g. (f ∈ s, Applicative g) => (f a -> g (f a)) -> Union s a -> g (Union s a)
- hoistU :: f ∈ s => (f a -> f a) -> Union s a -> Union s a
- (||>) :: (f x -> r) -> (Union s x -> r) -> Union (f :> s) x -> r
- exhaust :: Nil x -> r
- simply :: (f a -> r) -> (f |> Nil) a -> r
- retractU :: f ∈ s => Union s a -> Maybe (f a)
Basic types and classes
class f ∈ s | s -> f infix 4 Source
Constraint f ∈ s
indicates that f
is an element of a type-level list s
.
position
Construction
Transformation
class s ⊆ t where infix 4 Source
Type-level inclusion characterized by reunion
.
picked :: forall a s f g. (f ∈ s, Applicative g) => (f a -> g (f a)) -> Union s a -> g (Union s a) Source
Traversal for a specific element
Destruction
Perform type-safe matching.