Skip to Content
i documentation
Standard library referenceModules

i/key

Typed keys for heterogeneous immutable values (§9.8).

new

Makes a fresh identity key. A key’s answer type is invariant.

new : <A>() -> Key(A)

wrap

Marks a value with its key.

wrap : <A>(Key(A), A) -> Keyed

unwrap

Reads only a value marked by this same key.

unwrap = <A>(k : Key(A), x : Keyed) -> Lookup(A) {

Lookup

Lookup(A) = Found(A) | Missing