Safe Haskell | None |
---|---|
Language | Haskell2010 |
A simple heterogeneous linked-list for k-v pairs.
Documentation
(kind) key-value pair
(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"’
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"’