Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | structure S:> |
2 | sig | |
3 | type t | |
4 | ||
5 | val x: t | |
6 | val g: t -> unit | |
7 | end = | |
8 | struct | |
9 | type t = int | |
10 | ||
11 | val x = 13 | |
12 | ||
13 | fun g x = () | |
14 | end | |
15 | ||
16 | val f = _import "f": S.t -> unit; | |
17 | ||
18 | val _ = fn () => f S.x | |
19 | ||
20 | val e = _export "g1": (S.t -> unit) -> unit; | |
21 | ||
22 | val _ = fn () => e S.g | |
23 | ||
24 | structure S:> | |
25 | sig | |
26 | type t | |
27 | ||
28 | val f: t -> unit | |
29 | val x: t | |
30 | end = | |
31 | struct | |
32 | type t = int -> unit | |
33 | ||
34 | fun f g = g 13 | |
35 | ||
36 | fun x _ = () | |
37 | end | |
38 | ||
39 | val p = _import "f": S.t; | |
40 | ||
41 | val _ = fn () => S.f p | |
42 | ||
43 | val e = _export "g2": S.t -> unit; | |
44 | ||
45 | val _ = fn () => e S.x |