@@ -330,6 +330,10 @@ module MyFunctor = (X: {type t}, Y: {type t}): {type tx; type ty} => {
330
330
type ty = Y.t
331
331
}
332
332
333
+ module F2: (S1, S1) => T = (X: S, Y: S) => {
334
+ let cow = x => Y.foo(X.foo(x))
335
+ }
336
+
333
337
--------------------------------------------------------------------------------
334
338
335
339
(source_file
@@ -372,7 +376,44 @@ module MyFunctor = (X: {type t}, Y: {type t}): {type tx; type ty} => {
372
376
name: (type_identifier)
373
377
(type_identifier_path
374
378
(module_identifier)
375
- (type_identifier)))))))))
379
+ (type_identifier))))))))
380
+ (module_declaration
381
+ (module_binding
382
+ name: (module_identifier)
383
+ signature: (functor
384
+ parameters: (functor_parameters
385
+ (functor_parameter
386
+ (module_identifier))
387
+ (functor_parameter
388
+ (module_identifier)))
389
+ body: (module_identifier))
390
+ definition: (functor
391
+ parameters: (functor_parameters
392
+ (functor_parameter
393
+ (module_identifier)
394
+ (module_type_annotation
395
+ (module_identifier)))
396
+ (functor_parameter
397
+ (module_identifier)
398
+ (module_type_annotation
399
+ (module_identifier))))
400
+ body: (block
401
+ (let_declaration
402
+ (let_binding
403
+ pattern: (value_identifier)
404
+ body: (function
405
+ parameter: (value_identifier)
406
+ body: (call_expression
407
+ function: (value_identifier_path
408
+ (module_identifier)
409
+ (value_identifier))
410
+ arguments: (arguments
411
+ (call_expression
412
+ function: (value_identifier_path
413
+ (module_identifier)
414
+ (value_identifier))
415
+ arguments: (arguments
416
+ (value_identifier)))))))))))))
376
417
377
418
================================================================================
378
419
Functor signature
0 commit comments