Closed nilern closed 4 years ago
What about 'hiding' e.g. {module type of module type t = int end hiding t}
= interface type t end
?
And should we deal in rows inside record type as in row polymorphism forall (r: row) a b . (a -> b) -> {r with x : a} -> {r with x : b}
?
What about 'hiding' e.g.
{module type of module type t = int end hiding t}
=interface type t end
?
Cannot do that properly in a model where type abbreviations are just 'macroexpanded'.
Empty, extension (
with
), update (where
), restriction (without
) for records, modules, record types, interfaces. Also field access and patterns for records and modules.with
andwhere
for recordswith
andwhere
for record typesextends
andoverride
syntax for modules and interfaceswithout
for records and record types,exclude
for modules and interfaces