| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Hetero.KVList
Description
A simple heterogeneous linked-list for k-v pairs.
Documentation
(kind) key-value pair
Instances
| (InDict k v kvs, (~) GetResult (Index i) (Ix k ((:) (KV *) ((:=) * k' v') kvs)), KnownNat i) => InDict k v ((:) (KV *) ((:=) * k' v') kvs) Source # | |
| InDict k v ((:) (KV *) ((:=) * k v) kvs) Source # | |
| (InDict k v kvs, (~) GetResult (Index i) (Ix k ((:) (KV *) ((:=) * k' v') kvs)), KnownNat i) => InDict k v ((:) (KV *) ((:=) * k' v') kvs) Source # | |
| InDict k v ((:) (KV *) ((:=) * k v) kvs) Source # | |
| (KnownSymbol k, ToJSON v, ToJSON (DynDict kvs)) => ToJSON (DynDict ((:) (KV *) ((:=) * k v) kvs)) # | |
| ToJSON (DynDict ([] (KV *))) # | |
| (KnownSymbol k, FromJSON v, FromJSON (DynDict kvs)) => FromJSON (DynDict ((:) (KV *) ((:=) * k v) kvs)) # | |
| FromJSON (DynDict ([] (KV *))) # | |
| ShowDict ([] (KV *)) Source # | |
| (KnownSymbol k, Typeable * v, Show v, ShowDict kvs) => ShowDict ((:) (KV *) ((:=) * k v) kvs) Source # | |
key :: QuasiQuoter Source #
Quoter for constructing string literal proxy.
[key|foo|] == (Proxy :: Proxy "foo")
type family AddKey (k :: Symbol) (kvs :: [KV *]) :: AddResult where ... Source #
Add a key's type to KVList if not existed.
(kind) pretty print type error for NotHasKey.
> add [key|foo|] 12 $ add [key|foo|] "a" emptyStore Couldn't match type ‘'DuplicatedKey "foo"’ with ‘'HasKey "foo"’
Constructors
| HasKey Symbol | |
| DuplicatedKey Symbol |
type NotHasKey k kvs = AddKey k kvs ~ HasKey k Source #
Constraint ensure a key will be inserted into Store.
(kind) pretty print type error for Ix
> get [key|b|] (mkDict $ add [key|a|] 123 emptyStore) Couldn't match type ‘'Index i0’ with ‘'NotFoundKey "b"’
Constructors
| Index Nat | |
| NotFoundKey Symbol |