204621bf62
Some of the highlights in release 3.12 are: * Polymorphic recursion is supported, using explicit type declarations on the recursively-defined identifiers. * First-class modules: module expressions can be embedded as values of the core language, then manipulated like any other first-class value, then projected back to the module level. * New operator to modify a signature a posteriori: S with type t := tau denotes signature S where the t type component is removed and substituted by the type tau elsewhere. * New notations for record expressions and record patterns: { lbl } as shorthand for { lbl = lbl }, and { ...; _ } marks record patterns where some labels were intentionally omitted. * Local open let open ... in ... now supported by popular demand. * Type variables can be bound as type parameters to functions; such types are treated like abstract types within the function body, and like type variables (possibly generalized) outside. * The module type of construct enables to recover the module type of a given module. * Explicit method override using the method! keyword, with associated warnings and errors. |
||
---|---|---|
.. | ||
patch-aa | ||
patch-ab | ||
patch-ac | ||
patch-ad | ||
patch-ag | ||
patch-ah | ||
patch-aj | ||
patch-an | ||
patch-at | ||
patch-au | ||
patch-av | ||
patch-aw | ||
patch-ax | ||
patch-ay | ||
patch-az | ||
patch-bb | ||
patch-bc | ||
patch-bd | ||
patch-be | ||
patch-bf | ||
patch-bg | ||
patch-bh | ||
patch-bi | ||
patch-bo | ||
patch-bp | ||
patch-bq | ||
patch-br | ||
patch-bs | ||
patch-bt | ||
patch-bu | ||
patch-bv |