@@ -80,21 +80,21 @@ include module type of {
8080 (functor_parameter
8181 (module_identifier_path (module_identifier))
8282 (module_type_annotation
83+ (module_type_of
8384 (module_type_constraint
84- (module_type_of
85- (module_identifier_path (module_identifier)))
86- (constrain_module
8785 (module_identifier_path (module_identifier))
88- (module_identifier_path
86+ (constrain_module
87+ (module_identifier_path (module_identifier))
8988 (module_identifier_path
90- (module_identifier))
91- (module_identifier) ))
92- (constrain_module
93- (module_identifier_path (module_identifier))
94- (module_identifier_path
89+ (module_identifier_path
90+ (module_identifier))
91+ (module_identifier)))
92+ (constrain_module
93+ (module_identifier_path (module_identifier))
9594 (module_identifier_path
96- (module_identifier))
97- (module_identifier)))))))
95+ (module_identifier_path
96+ (module_identifier))
97+ (module_identifier))))))))
9898
9999 (include_statement
100100 (module_type_of
@@ -491,20 +491,59 @@ Module Constraints
491491
492492module(M: T with type t = a and type t = b)
493493
494+ module M = (): (T with type t = int) => {}
495+
496+ module M = (Na: N, Nb: N): (
497+ (S with type t = x) with type a = b
498+ ) => {}
499+
494500---
495501
496502(source_file
497503 (expression_statement
498504 (module_pack
499- (module_identifier_path
500- (module_identifier))
505+ (module_identifier_path (module_identifier))
501506 (module_type_annotation
502507 (module_type_constraint
503- (module_identifier_path
504- (module_identifier))
508+ (module_identifier_path (module_identifier))
509+ (constrain_type
510+ (type_identifier)
511+ (type_identifier))
512+ (constrain_type
513+ (type_identifier)
514+ (type_identifier))))))
515+
516+ (module_declaration
517+ (module_identifier)
518+ (functor
519+ (functor_parameters)
520+ (module_type_annotation
521+ (module_type_constraint
522+ (module_identifier_path (module_identifier))
523+ (constrain_type
524+ (type_identifier)
525+ (type_identifier))))
526+ (block)))
527+
528+ (module_declaration
529+ (module_identifier)
530+ (functor
531+ (functor_parameters
532+ (functor_parameter
533+ (module_identifier_path (module_identifier))
534+ (module_type_annotation
535+ (module_identifier_path (module_identifier))))
536+ (functor_parameter
537+ (module_identifier_path (module_identifier))
538+ (module_type_annotation
539+ (module_identifier_path (module_identifier)))))
540+ (module_type_annotation
541+ (module_type_constraint
542+ (module_identifier_path (module_identifier))
505543 (constrain_type
506544 (type_identifier)
507545 (type_identifier))
508546 (constrain_type
509547 (type_identifier)
510- (type_identifier)))))))
548+ (type_identifier))))
549+ (block))))
0 commit comments