1(*
2    Copyright (c) 2017 David C.J. Matthews
3
4    This library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License version 2.1 as published by the Free Software Foundation.
7    
8    This library is distributed in the hope that it will be useful,
9    but WITHOUT ANY WARRANTY; without even the implied warranty of
10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11    Lesser General Public License for more details.
12    
13    You should have received a copy of the GNU Lesser General Public
14    License along with this library; if not, write to the Free Software
15    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
16*)
17
18signature INTSETSIG =
19sig
20    type intSet
21    val emptySet: intSet
22    val setToList: intSet -> int list
23    val listToSet: int list -> intSet
24    val removeFromSet: int * intSet -> intSet
25    val union: intSet * intSet -> intSet
26    val minus: intSet * intSet -> intSet
27    val cardinality: intSet -> int
28    val filterSet: (int->bool) -> intSet -> intSet
29    val member: int * intSet -> bool
30    val partition: (int -> bool) -> intSet -> intSet * intSet
31end;
32