src/Pure/General/set.ML
changeset 77741 1951f6470792
parent 77740 19c539f5d4d3
child 77742 676713cba24d
equal deleted inserted replaced
77740:19c539f5d4d3 77741:1951f6470792
    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 =