Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Helpers for working with type-level lists.
- type family RDelete r rs where ...
- type family LAll c ts :: Constraint where ...
- type family AllAre a ts :: Constraint where ...
- type family HasInstances a cs :: Constraint where ...
- type family AllHave cs as :: Constraint where ...
Documentation
type family RDelete r rs where ... Source #
Remove the first occurence of a type from a type-level list.
type family LAll c ts :: Constraint where ... Source #
A constraint on each element of a type-level list.
type family AllAre a ts :: Constraint where ... Source #
Constraint that every element of a promoted list is equal to a particular type. That is, the list of types is a single type repeated some number of times.
type family HasInstances a cs :: Constraint where ... Source #
Compound constraint that a type has an instance for each of a list of type classes.
HasInstances a '[] = () | |
HasInstances a (c ': cs) = (c a, HasInstances a cs) |
type family AllHave cs as :: Constraint where ... Source #
Compound constraint that all types have instances for each of a
list of type clasesses. AllHave classes types
.
AllHave cs '[] = () | |
AllHave cs (a ': as) = (HasInstances a cs, AllHave cs as) |