1datatype a = A;
2datatype b = B;
3
4signature G = sig datatype d = C of a * b | D end;
5signature L = sig datatype d = C of (a * b) | D end;
6
7functor L = functor (L:L)=>
8  L:G;
9functor LL = functor(LL:functor(L:L)->L)=>
10  LL:functor(L:L)->G;
11functor GL = functor(GL:functor(L:G)->L)=>
12  GL:functor(L:L)->L;
13functor YL = functor(YL:sig structure Y:L end)=>
14  YL:sig structure Y: G end;
15functor L_YL = functor(L_YL:functor(L:L)->sig structure Y:L end)=>
16  L_YL:functor(L:L)->sig structure Y: G end;
17functor YG_L = functor(YG_L:functor(YG:sig structure Y:G end)->L)=>
18  YG_L:functor(YL:sig structure Y: L end)->L;
19functor L_YG_L = functor(L_YG_L:functor(L:L)->functor(YG:sig structure Y:G end)->L)=>
20  L_YG_L:functor(L:L)->functor(YL:sig structure Y:L end)->L;
21functor FLYGL = functor(FLYGL:sig functor F: functor(L:L)->functor(YG:sig structure Y:G end)->L end)=>
22  FLYGL:sig functor F: functor(L:L)->functor(YL:sig structure Y:L end)->L end;
23
24
25signature G = sig datatype d = C of {a:a} | D end;
26signature L = sig datatype d = C of ({a:a}) | D end;
27
28functor L = functor (L:L)=>
29  L:G;
30functor LL = functor(LL:functor(L:L)->L)=>
31  LL:functor(L:L)->G;
32functor GL = functor(GL:functor(L:G)->L)=>
33  GL:functor(L:L)->L;
34functor YL = functor(YL:sig structure Y:L end)=>
35  YL:sig structure Y: G end;
36functor L_YL = functor(L_YL:functor(L:L)->sig structure Y:L end)=>
37  L_YL:functor(L:L)->sig structure Y: G end;
38functor YG_L = functor(YG_L:functor(YG:sig structure Y:G end)->L)=>
39  YG_L:functor(YL:sig structure Y: L end)->L;
40functor L_YG_L = functor(L_YG_L:functor(L:L)->functor(YG:sig structure Y:G end)->L)=>
41  L_YG_L:functor(L:L)->functor(YL:sig structure Y:L end)->L;
42functor FLYGL = functor(FLYGL:sig functor F: functor(L:L)->functor(YG:sig structure Y:G end)->L end)=>
43  FLYGL:sig functor F: functor(L:L)->functor(YL:sig structure Y:L end)->L end;
44
45
46signature G = sig datatype d = C of {a:a,b:b} | D end;
47signature L = sig datatype d = C of ({a:a,b:b}) | D end;
48
49functor L = functor (L:L)=>
50  L:G;
51functor LL = functor(LL:functor(L:L)->L)=>
52  LL:functor(L:L)->G;
53functor GL = functor(GL:functor(L:G)->L)=>
54  GL:functor(L:L)->L;
55functor YL = functor(YL:sig structure Y:L end)=>
56  YL:sig structure Y: G end;
57functor L_YL = functor(L_YL:functor(L:L)->sig structure Y:L end)=>
58  L_YL:functor(L:L)->sig structure Y: G end;
59functor YG_L = functor(YG_L:functor(YG:sig structure Y:G end)->L)=>
60  YG_L:functor(YL:sig structure Y: L end)->L;
61functor L_YG_L = functor(L_YG_L:functor(L:L)->functor(YG:sig structure Y:G end)->L)=>
62  L_YG_L:functor(L:L)->functor(YL:sig structure Y:L end)->L;
63functor FLYGL = functor(FLYGL:sig functor F: functor(L:L)->functor(YG:sig structure Y:G end)->L end)=>
64  FLYGL:sig functor F: functor(L:L)->functor(YL:sig structure Y:L end)->L end;
65
66