Copyright | (c) Juan García Garland 2018 |
---|---|
License | LGPL |
Maintainer | jpgarcia@fing.edu.uy |
Stability | experimental |
Portability | POSIX |
Safe Haskell | Safe |
Language | Haskell2010 |
Synopsis
- data Label l = Label
- sndLabel :: Label '(a, b) -> Label b
- getProxy :: a -> Proxy a
- getLabel :: a -> Label a
- proxyFrom :: t a -> Proxy a
- type family If (cond :: Bool) (thn :: k) (els :: k) :: k where ...
- type family Or (l :: Bool) (r :: Bool) :: Bool where ...
- type family And (l :: Bool) (r :: Bool) :: Bool where ...
- type family Not (l :: Bool) :: Bool where ...
- type family LabelSetF (r :: [(k, k')]) :: Bool where ...
- type LabelSet r = LabelSetF r ~ True
- type family And3 (a1 :: Bool) (a2 :: Bool) (a3 :: Bool) where ...
- type family HMemberT (e :: k) (l :: [k]) :: Bool where ...
- type family HasLabelT (l :: k) (lst :: [(k, Type)]) :: Bool where ...
- class HEq (x :: k) (y :: k) (b :: Bool) | x y -> b
- type HEqK (x :: k1) (y :: k2) (b :: Bool) = HEq (Proxy x) (Proxy y) b
- type family HEqKF (a :: k) (b :: k) :: Bool
- type family (a :: k1) === (b :: k2) where ...
- type family TPair (a :: k) b where ...
- type family LabelsOf (r :: [(k, k')]) :: [k] where ...
- type family HasLabel (l :: k) (r :: [(k, k')]) :: Bool where ...
- type family Equal (a :: k) (b :: k') :: Bool where ...
Documentation
type family If (cond :: Bool) (thn :: k) (els :: k) :: k where ... Source #
If construction, purely computed at type level
type family And (l :: Bool) (r :: Bool) :: Bool where ... Source #
And, purely computed at type level
type family LabelSetF (r :: [(k, k')]) :: Bool where ... Source #
LabelSet is a predicate over lists of pairs. We assume the list represent a (partial) mapping from k1 to k2. k1 is a label, k2 possibly a value. The first member of each pair must be unique, this is a predicate of well formedness class LabelSet (l :: [(k1,k2)])
type family HMemberT (e :: k) (l :: [k]) :: Bool where ... Source #
Predicate of membership, for lists at type level
type family HasLabelT (l :: k) (lst :: [(k, Type)]) :: Bool where ... Source #
Predicate of membership, for labels at type level