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