Release coccinelle-0.1
[bpt/coccinelle.git] / commons / osetb.ml
1 open Ocollection
2 open Oset
3
4 let empty = Setb.empty
5
6 class ['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