Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | structure Set = struct datatype Set = S end |
2 | ||
3 | signature FINMAPEQ = sig type map val dom : map -> Set.Set end | |
4 | ||
5 | functor FinMapEq() = struct datatype map = M fun dom m = Set.S end | |
6 | ||
7 | signature TOOLS = | |
8 | sig | |
9 | structure FinMapEq : FINMAPEQ | |
10 | end | |
11 | ||
12 | functor Tools (): TOOLS = struct structure FinMapEq = FinMapEq() end | |
13 | ||
14 | (* | |
15 | functor Basics(structure Tools : sig | |
16 | structure FinMapEq : sig type map val dom : map -> Set.Set end | |
17 | end) = | |
18 | *) | |
19 | ||
20 | functor Basics(structure Tools : TOOLS) = | |
21 | struct | |
22 | structure Tools = Tools | |
23 | end | |
24 | ||
25 | functor KitCompiler() = | |
26 | struct | |
27 | structure Tools = Tools() | |
28 | structure Basics = Basics(structure Tools = Tools) | |
29 | end | |
30 | ||
31 | structure K = KitCompiler() | |
32 |