1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
open Common
open Oassoc
class ['a,'b] oassocb xs =
object(o)
inherit ['a,'b] oassoc
val data = Map_.empty
method empty = {< data = Map_.empty >}
method add (k,v) = {< data = Map_.add k v data >}
method replkey (k,v) = {< data = Map_.add k v (Map_.remove k data) >}
method iter f = Map_.iter (Common2.curry f) data
method view = raise Todo
method del (k,v) = {< data = Map_.remove k data >}
method mem e = raise Todo
method null = (Map_.is_empty data)
method assoc k = Map_.find k data
method delkey k = {< data = Map_.remove k data >}
method keys =
List.map fst (o#tolist)
end