@@ -1310,22 +1310,14 @@ module Add_one' :
13101310 module type t = arg -> sig type arg = A. arg end
13111311 end
13121312module Add_one :
1313- sig
1314- type witness
1315- module M = Add_one' .M
1316- module type t = arg -> sig type arg = A .arg end
1317- end
1313+ sig type witness module M = Add_one'. M module type t = Add_one'. t end
13181314module Add_three' :
13191315 sig
13201316 module M : arg -> arg -> arg -> sig type arg = A. arg end
13211317 module type t = arg -> arg -> arg -> sig type arg = A. arg end
13221318 end
13231319module Add_three :
1324- sig
1325- module M = Add_three'. M
1326- module type t = arg -> arg -> arg -> sig type arg = A. arg end
1327- type witness
1328- end
1320+ sig module M = Add_three'. M module type t = Add_three'. t type witness end
13291321Line 22 , characters 21-43 :
1330132222 | module Wrong_intro = F (Add_three ')(A )(A )(A )
13311323 ^^^^^^^^^^^^^^^^^^^^^^
@@ -1336,10 +1328,7 @@ Error: The functor application is ill-typed.
13361328 functor (X : $ T1 ) arg arg arg -> ...
13371329 1. Modules do not match :
13381330 Add_three ' :
1339- sig
1340- module M = Add_three' .M
1341- module type t = arg -> arg -> arg -> sig type arg = A .arg end
1342- end
1331+ sig module M = Add_three' .M module type t = Add_three' .t end
13431332 is not included in
13441333 $ T1 = sig type witness module type t module M : t end
13451334 The type `witness ' is required but not provided
@@ -1360,10 +1349,7 @@ Error: The functor application is ill-typed.
13601349 functor (X : ...) arg arg arg -> ...
13611350 1. The following extra argument is provided
13621351 Add_one ' :
1363- sig
1364- module M = Add_one' .M
1365- module type t = arg -> sig type arg = A .arg end
1366- end
1352+ sig module M = Add_one' .M module type t = Add_one' .t end
13671353 2. Module Add_three matches the expected module type
13681354 3. Module A matches the expected module type arg
13691355 4. Module A matches the expected module type arg
@@ -1388,7 +1374,7 @@ Error: The functor application is ill-typed.
13881374 sig
13891375 type witness = Add_one .witness
13901376 module M = Add_one' .M
1391- module type t = arg -> sig type arg = A .arg end
1377+ module type t = Add_one .t
13921378 end
13931379 2. Module Add_three matches the expected module type
13941380 3. Module A matches the expected module type arg
0 commit comments