Safe Haskell | None |
---|---|
Language | Haskell98 |
- data a :*: b = !a :*: !b
- class IsProdList p where
- isProdList :: p -> Bool
- class IsKeyValues p where
- class IsProdList t => Select n t where
- class IsProdList t => Discard n t where
- class (IsProdList m, IsProdList t) => Mask m t where
- data Keep = Keep
- data Drop = Drop
Product type
A strict product type, written infix.
!a :*: !b infixr 9 |
class IsProdList p where Source
Sequences of products that form a valid list, using () for the nil value.
isProdList :: p -> Bool Source
IsProdList () Source | |
IsProdList fs => IsProdList ((:*:) f fs) Source |
class IsKeyValues p where Source
Sequences of products and tuples that form hetrogeneous key-value pairs.
Get a cons-list of all the keys.
values :: p -> Values p Source
Get a heterogeneous product-list of all the values.
IsKeyValues (k, v) Source | |
(IsKeyValues p, IsKeyValues ps, (~) * (Keys p) (Keys ps)) => IsKeyValues ((:*:) p ps) Source |
Selecting
class IsProdList t => Select n t where Source
Discarding
class IsProdList t => Discard n t where Source
Masking
class (IsProdList m, IsProdList t) => Mask m t where Source
Class of data types that can have parts masked out.
Singleton to indicate a field that should be kept.