Skip to content

Request: Replace/rename/remove module types #5460

@vicuna

Description

@vicuna

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions