Original bug ID: 5460
Reporter: @hcarty
Assigned to: @garrigue
Status: assigned (set by @hcarty on 2013-07-30T17:06:25Z)
Resolution: open
Priority: normal
Severity: feature
Version: 3.12.1
Category: typing
Tags: patch
Has duplicate: #6209
Related to: #5514
Monitored by: @gasche @protz thelema @jberdine @yallop @hcarty @garrigue
Bug description
As of the 3.12.x releases, we can replace types (... with type t := t') and remove modules (... with module M := M) in module signatures. It would be useful to be able to do the same thing with module types.
Steps to reproduce
(* This works - module H will not have a Make module in it *)
module H = struct
include (Hashtbl : module type of Hashtbl with module type S := Hashtbl.S)
end
(* In the toplevel (both 3.12.1 and 3.13.0+dev8) this fails with:
"Syntax error: ')' expected, the highlighted '(' might be unmatched"
on "type" in "... with module type S ..." *)
module type S' = sig type t end
module H = struct
include (Hashtbl : module type of Hashtbl with module type S := S')
end
Additional information
This would be useful when extending modules, particularly ones which provide functors and matching signatures.
File attachments
Original bug ID: 5460
Reporter: @hcarty
Assigned to: @garrigue
Status: assigned (set by @hcarty on 2013-07-30T17:06:25Z)
Resolution: open
Priority: normal
Severity: feature
Version: 3.12.1
Category: typing
Tags: patch
Has duplicate: #6209
Related to: #5514
Monitored by: @gasche @protz thelema @jberdine @yallop @hcarty @garrigue
Bug description
As of the 3.12.x releases, we can replace types (... with type t := t') and remove modules (... with module M := M) in module signatures. It would be useful to be able to do the same thing with module types.
Steps to reproduce
(* This works - module H will not have a Make module in it *)
module H = struct
include (Hashtbl : module type of Hashtbl with module type S := Hashtbl.S)
end
(* In the toplevel (both 3.12.1 and 3.13.0+dev8) this fails with:
"Syntax error: ')' expected, the highlighted '(' might be unmatched"
on "type" in "... with module type S ..." *)
module type S' = sig type t end
module H = struct
include (Hashtbl : module type of Hashtbl with module type S := S')
end
Additional information
This would be useful when extending modules, particularly ones which provide functors and matching signatures.
File attachments