(*
** interfaces for some intset operations
*)

(* ****** ****** *)

abstype intset // boxed type

(* ****** ****** *)

val intset_nil : intset // empty set
fun intset_sing (x: int): intset

fun intset_ismem (xs: intset, x: int): bool

fun intset_union (xs: intset, ys: intset): intset

fun intset_make_list (xs: list0 int): intset

fun fprint_intset
  (out: FILEref, xs: intset): void
// end of [fprint_intset]

fun intset_foreach
  (xs: intset, f: int -<cloref1> void): void
// end of [intset_foreach]

(* ****** ****** *)

(* end of [intset.sats] *)