Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data DS a
- dsToMaybe :: DS a -> Maybe a
- data Z = Z
- data a ::: b = a ::: b
- class ToInt32 a where
- class ToNatDS a where
- class ToNatListDS a where
- type family Length (xs :: [a]) :: Nat where ...
- type family Elem (e :: a) (xs :: [a]) :: Bool where ...
- type family Relax (a :: DS ka) (b :: DS kb) :: Bool where ...
- type In e xs = Elem e xs ~ True
- type MayRelax a b = Relax a b ~ True
- class All (p :: k -> Constraint) (xs :: [k])
- class PrivateIsStatic ds => IsStatic (ds :: DS a)
- type family DSNat (a :: ka) :: DS Nat where ...
- type family DSNats (a :: ka) :: [DS Nat] where ...
Kinds and types
data a ::: b infixr 5 Source #
Heterogeneous lists
Implemented as nested 2-tuples.
f :: Int ::: Bool ::: Char ::: Z f = 3 ::: False ::: 'X' ::: Z
a ::: b infixr 5 |
Type level to value level conversions
class ToNatListDS a where Source #
toNatListDS :: a -> [DS Int32] Source #
ToNatListDS (proxy ([] k)) Source # | |
(ToNatDS (Proxy a1 a2), ToNatListDS (Proxy [a1] as)) => ToNatListDS (Proxy [a1] ((:) a1 a2 as)) Source # | |
Type functions
Predicates (constraints)
class All (p :: k -> Constraint) (xs :: [k]) Source #