-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsymbol.sig
37 lines (30 loc) · 1.23 KB
/
symbol.sig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
(* $Id$
*
* Copyright (c) 2008 Timothy Bourke (University of NSW and NICTA)
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the "BSD License" which is distributed with the
* software in the file LICENSE.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the BSD
* License for more details.
*
* Shortcuts over Atom and AtomSet.
* infix <+ <- ++ <\ \ =:= (*`*); open Symbol
*)
signature SYMBOL = sig
type symbol = Atom.atom
type symbolset = AtomSet.set
val emptyset : symbolset
val <+ : symbolset * symbol -> symbolset (* add *)
val <- : symbol * symbolset -> bool (* member *)
val ++ : symbolset * symbolset -> symbolset (* union *)
val <\ : symbolset * symbol -> symbolset (* difference *)
val \ : symbolset * symbolset -> symbolset (* difference *)
val =:= : symbol * symbol -> bool (* equality *)
val ` : string -> symbol (* atom *)
val getNewName : symbol * symbolset -> symbol
end