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