equal
deleted
inserted
replaced
11 type T |
11 type T |
12 val size: T -> int |
12 val size: T -> int |
13 val empty: T |
13 val empty: T |
14 val build: (T -> T) -> T |
14 val build: (T -> T) -> T |
15 val is_empty: T -> bool |
15 val is_empty: T -> bool |
16 val is_single: T -> bool |
|
17 val fold: (elem -> 'a -> 'a) -> T -> 'a -> 'a |
16 val fold: (elem -> 'a -> 'a) -> T -> 'a -> 'a |
18 val fold_rev: (elem -> 'a -> 'a) -> T -> 'a -> 'a |
17 val fold_rev: (elem -> 'a -> 'a) -> T -> 'a -> 'a |
19 val dest: T -> elem list |
18 val dest: T -> elem list |
20 val exists: (elem -> bool) -> T -> bool |
19 val exists: (elem -> bool) -> T -> bool |
21 val forall: (elem -> bool) -> T -> bool |
20 val forall: (elem -> bool) -> T -> bool |
104 |
103 |
105 fun build (f: T -> T) = f empty; |
104 fun build (f: T -> T) = f empty; |
106 |
105 |
107 fun is_empty Empty = true |
106 fun is_empty Empty = true |
108 | is_empty _ = false; |
107 | is_empty _ = false; |
109 |
|
110 fun is_single (Leaf1 _) = true |
|
111 | is_single _ = false; |
|
112 |
108 |
113 |
109 |
114 (* fold combinators *) |
110 (* fold combinators *) |
115 |
111 |
116 fun fold_set f = |
112 fun fold_set f = |