Release coccinelle-0.1.3
[bpt/coccinelle.git] / commons / ocollection / osetb.ml
CommitLineData
34e49164
C
1open Ocollection
2open Oset
3
4let empty = Setb.empty
5
6class ['a] osetb xs =
7 object(o)
8 inherit ['a] oset
9
10 val data = xs (* Setb.empty *)
11 method tosetb = data
12
13 (* if put [] then no segfault, if [11] then segfault *)
14 method toset = Obj.magic data
15
16 method empty = {< data = Setb.empty >}
17 method add e = {< data = Setb.add e data >}
18 method iter f = Setb.iter f data
19 method view =
20 if Setb.is_empty data
21 then Empty
22 else let el = Setb.choose data in Cons (el, o#del el)
23
24 method del e = {< data = Setb.remove e data >}
25 method mem e = Setb.mem e data
26 method null = Setb.is_empty data
27
28 method tolist = Setb.elements data
29 method length = Setb.cardinal data
30
31 method union s = {< data = Setb.union data s#tosetb >}
32 method inter s = {< data = Setb.inter data s#tosetb >}
33 method minus s = {< data = Setb.diff data s#tosetb >}
34 (* todo: include, ... *)
35
36 end