| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Plutarch.DataRepr.Internal.HList.Utils
Synopsis
- newtype Labeled (sym :: Symbol) a = Labeled {
- unLabeled :: a
- data Elem (a :: k) (as :: [k]) where
- type family IndexList (n :: Nat) (l :: [k]) :: k where ...
- type family IndexLabel (name :: Symbol) (as :: [(Symbol, Type)]) where ...
- type family SingleItem (as :: [k]) :: k where ...
- type family Drop (n :: Nat) (as :: [k]) :: [k] where ...
Documentation
data Elem (a :: k) (as :: [k]) where Source #
GADT proof-witness of HList membership, usable as an index
type family IndexLabel (name :: Symbol) (as :: [(Symbol, Type)]) where ... Source #
Indexing list of labeled pairs by label
Equations
| IndexLabel name ('[] :: [(Symbol, Type)]) = TypeError ((('Text "Invalid field name `" ':<>: 'Text name) ':<>: 'Text "`") ':$$: 'Text "Consider adding it to `pletFields` list") :: Type | |
| IndexLabel name ('(name, a) ': _1) = a | |
| IndexLabel name (_1 ': as) = IndexLabel name as |
type family SingleItem (as :: [k]) :: k where ... Source #
Return the single item from a singleton list
Equations
| SingleItem ('[a] :: [k]) = a |