Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | (* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh |
2 | * Jagannathan, and Stephen Weeks. | |
3 | * | |
4 | * MLton is released under a BSD-style license. | |
5 | * See the file MLton-LICENSE for details. | |
6 | *) | |
7 | ||
8 | signature UNIVERSE = | |
9 | sig | |
10 | include SET | |
11 | ||
12 | structure B: T | |
13 | ||
14 | datatype elt = | |
15 | Base of B.t | |
16 | | Pair of elt * elt | |
17 | | Set of t | |
18 | sharing type elt = E.t | |
19 | ||
20 | val toBase: elt -> B.t | |
21 | val toPair: elt -> elt * elt | |
22 | val toSet: elt -> t | |
23 | ||
24 | val cross: t * t -> t | |
25 | val project1: t -> t | |
26 | val project2: t -> t | |
27 | ||
28 | val Union: t -> t | |
29 | (* val Cross: t -> t *) | |
30 | ||
31 | val lookup: t * E.t -> E.t option | |
32 | val update: t * E.t * E.t -> t | |
33 | val updateSet: t * t -> t | |
34 | end |