This notice comes a little late, but the latest version of OCaml, version 3.12, has been released. Surprisingly, for a point release there's a lot of interesting new language features:
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.
I'm especially intrigued by first-class modules, and the destructive signature operations, both of which should make it much easier to write libraries.
Recent comments
17 weeks 14 hours ago
17 weeks 14 hours ago
17 weeks 14 hours ago
23 weeks 1 day ago
1 year 11 weeks ago
1 year 11 weeks ago
1 year 11 weeks ago
1 year 33 weeks ago
1 year 37 weeks ago
1 year 39 weeks ago