-
Notifications
You must be signed in to change notification settings - Fork 4
/
modsymbol.sig
executable file
·91 lines (65 loc) · 2.89 KB
/
modsymbol.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
(*======================================================================
This file specifies the API of module-enabled Athena symbols. The key
functionality is the same as for flat symbols.
=======================================================================*)
signature MOD_SYMBOL =sig
eqtype mod_symbol
val makeModSymbol : Symbol.symbol list * Symbol.symbol * Symbol.symbol -> mod_symbol
val makeModSymbol' : Symbol.symbol list * Symbol.symbol -> mod_symbol
val makeSimpleName: string -> mod_symbol
val name : mod_symbol -> string
val nameAsSymbol : mod_symbol -> Symbol.symbol
val unlift: mod_symbol -> mod_symbol
val makeName: Symbol.symbol list * Symbol.symbol -> string
val modulePrefix: mod_symbol -> string
val split : mod_symbol -> (Symbol.symbol list * Symbol.symbol)
val modules: mod_symbol -> Symbol.symbol list
val lastName: mod_symbol -> Symbol.symbol
val code: mod_symbol -> int
val modSymEq: mod_symbol * mod_symbol -> bool
val isPlainSymbol: mod_symbol -> bool
val compare: mod_symbol * mod_symbol -> order
val dum_modsym: string -> mod_symbol
type 'a htable = (mod_symbol,'a) HashTable.hash_table;
val makeHTable: unit -> 'a htable;
val makeHTableWithInitialSize: int -> 'a htable;
val augmentHT: 'a htable * 'a htable -> unit
val clearHTable: 'a htable -> unit;
val insert: 'a htable * mod_symbol * 'a -> unit
val removeHT: 'a htable * mod_symbol -> 'a
val insertLst: 'a htable * (mod_symbol * 'a) list -> unit
val find: 'a htable * mod_symbol -> 'a option
val numItems: 'a htable -> int
val listItems: 'a htable -> 'a list
val listItemsi : 'a htable -> (mod_symbol * 'a) list
val exists: 'a htable * mod_symbol -> bool
val tableToString: 'a htable * ('a -> string) -> string
type 'a mapping
val empty_mapping : 'a mapping
val enter : 'a mapping * mod_symbol * 'a -> 'a mapping
val enterLst: 'a mapping * (mod_symbol *'a) list -> 'a mapping
val removeBinding: 'a mapping * mod_symbol -> 'a mapping * 'a
val augment: 'a mapping * 'a mapping -> 'a mapping
val lookUp : 'a mapping * mod_symbol -> 'a option
val map: ('a -> 'a) * 'a mapping -> 'a mapping
val listImages: 'a mapping -> 'a list
type set
val empty_set: set
val singleton: mod_symbol -> set
val isEmpty: set -> bool
val size: set -> int
val setMap: (mod_symbol -> mod_symbol) -> set -> set
val setApp: (mod_symbol -> unit) -> set -> unit
val equal: set * set -> bool
val add: mod_symbol * set -> set
val addLst: mod_symbol list * set -> set
val symListToSet: mod_symbol list -> set
val remove: mod_symbol * set -> set
val union: set * set -> set
val unionLst: set list -> set
val intersection: set * set -> set
val difference: set * set -> set
val isMember: mod_symbol * set -> bool
val listModSymbols: set -> mod_symbol list
val restoreTable: mod_symbol list * set * 'a htable -> unit
end;