Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | (* where-and.sml *) |
2 | ||
3 | (* Checks parsing of where type ... and derived form. *) | |
4 | ||
5 | signature S = sig type t and u end | |
6 | ||
7 | signature T = S where type t = int and type u = bool | |
8 | and U = S where type t = int and type u = bool | |
9 | ||
10 | signature V = | |
11 | sig | |
12 | structure A : S where type t = int and type u = bool | |
13 | and B : S where type t = int and type u = bool | |
14 | end | |
15 | ||
16 | structure A : S where type t = int and type u = bool = | |
17 | struct | |
18 | type t = int | |
19 | type u = bool | |
20 | end | |
21 | ||
22 | structure B = A : S where type t = int and type u = bool | |
23 | and C = A : S where type t = int and type u = bool | |
24 | ||
25 | functor F(X : S where type t = int and type u = bool) : | |
26 | S where type t = int and type u = bool = | |
27 | X : S where type t = int and type u = bool | |
28 | and G(Y : S where type t = int and type u = bool) : | |
29 | S where type t = int and type u = bool = | |
30 | Y : S where type t = int and type u = bool | |
31 | ||
32 | signature W = | |
33 | sig | |
34 | type t and u and v | |
35 | end | |
36 | ||
37 | signature W' = W where type t = int and type u = int where type v = int | |
38 | and W'' = W; |