1 : |
jhr |
1193 |
(* control-set-sig.sml
|
2 : |
|
|
*
|
3 : |
|
|
* COPYRIGHT (c) 2002 Bell Labs, Lucent Technologies
|
4 : |
|
|
*)
|
5 : |
|
|
|
6 : |
|
|
signature CONTROL_SET =
|
7 : |
|
|
sig
|
8 : |
|
|
|
9 : |
|
|
type 'a control = 'a Controls.control
|
10 : |
|
|
type ('a, 'b) control_set
|
11 : |
|
|
|
12 : |
|
|
val new : unit -> ('a, 'b) control_set
|
13 : |
|
|
|
14 : |
|
|
val member : (('a, 'b) control_set * Atom.atom) -> bool
|
15 : |
|
|
val find : (('a, 'b) control_set * Atom.atom)
|
16 : |
|
|
-> {ctl : 'a control, info : 'b} option
|
17 : |
|
|
val insert : (('a, 'b) control_set * 'a control * 'b) -> unit
|
18 : |
|
|
val remove : (('a, 'b) control_set * Atom.atom) -> unit
|
19 : |
|
|
val infoOf : ('a, 'b) control_set -> 'a control -> 'b option
|
20 : |
|
|
|
21 : |
|
|
(* list the members; the list is ordered by priority. The listControls'
|
22 : |
|
|
* function allows one to specify an obscurity level; controls with equal
|
23 : |
|
|
* or higher obscurioty are omitted from the list.
|
24 : |
|
|
*)
|
25 : |
|
|
val listControls : ('a, 'b) control_set -> {ctl : 'a control, info : 'b} list
|
26 : |
|
|
val listControls' : (('a, 'b) control_set * int)
|
27 : |
|
|
-> {ctl : 'a control, info : 'b} list
|
28 : |
|
|
|
29 : |
|
|
(* apply a function to the controls in a set *)
|
30 : |
|
|
val app : ({ctl : 'a control, info : 'b} -> unit)
|
31 : |
|
|
-> ('a, 'b) control_set -> unit
|
32 : |
|
|
|
33 : |
jhr |
1206 |
(* convert the controls in a set to string controls and create a new set
|
34 : |
|
|
* for them.
|
35 : |
|
|
*)
|
36 : |
|
|
val stringControls : 'a Controls.value_cvt -> ('a, 'b) control_set
|
37 : |
|
|
-> (string, 'b) control_set
|
38 : |
|
|
|
39 : |
jhr |
1193 |
end
|