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