mirror of
https://github.com/HigherOrderCO/Kind.git
synced 2024-09-11 17:56:48 +03:00
67 lines
1.1 KiB
Plaintext
67 lines
1.1 KiB
Plaintext
|
|
// Temporarily just a list of key/val
|
|
|
|
U60.Map
|
|
: ∀(A: *) *
|
|
= (List.Map #U60)
|
|
|
|
U60.Map.get
|
|
: ∀(A: *)
|
|
∀(key: #U60)
|
|
∀(map: (U60.Map A))
|
|
(Maybe A)
|
|
= λA λkey λmap
|
|
(List.Map.get #U60 A U60.equal key map)
|
|
|
|
U60.Map.set
|
|
: ∀(A: *)
|
|
∀(key: #U60)
|
|
∀(val: A)
|
|
∀(map: (U60.Map A))
|
|
(U60.Map A)
|
|
= λA λkey λval λmap
|
|
(List.Map.set #U60 A key val map)
|
|
|
|
U60.Map.new
|
|
: ∀(V: *)
|
|
(U60.Map V)
|
|
= λV (List.Map.new #U60 V)
|
|
|
|
|
|
// BBT Version
|
|
|
|
// U60.Map
|
|
// : ∀(V: *)
|
|
// *
|
|
// = λV (BBT #U60 V)
|
|
|
|
// U60.Map.get
|
|
// : ∀(V: *)
|
|
// ∀(key: #U60)
|
|
// ∀(map: (U60.Map V))
|
|
// (Maybe V)
|
|
// = λV λkey λmap
|
|
// (BBT.get #U60 V U60.cmp key map)
|
|
|
|
// U60.Map.got
|
|
// : ∀(V: *)
|
|
// ∀(key: #U60)
|
|
// ∀(map: (U60.Map V))
|
|
// (Pair (Maybe V) (U60.Map V))
|
|
// = λV λkey λmap
|
|
// (BBT.got #U60 V U60.cmp key map)
|
|
|
|
// U60.Map.set
|
|
// : ∀(V: *)
|
|
// ∀(key: #U60)
|
|
// ∀(val: V)
|
|
// ∀(map: (U60.Map V))
|
|
// (U60.Map V)
|
|
// = λV λkey λval λmap
|
|
// (BBT.set #U60 V U60.cmp key val map)
|
|
|
|
// U60.Map.new
|
|
// : ∀(V: *)
|
|
// (U60.Map V)
|
|
// = λV (BBT.tip #U60 V)
|