Home > lambdatheultimate > Ocaml 3.12 released

Ocaml 3.12 released

August 17th, 2010 08:22 admin Leave a comment Go to comments

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.

Source: Ocaml 3.12 released

Related Articles:

  1. Racket Released
  2. First-class modules: hidden power and tantalizing promises
  3. How OCaml type checker works — or what polymorphism and garbage collection have in common
  4. How OCaml type checker works — or what polymorphism and garbage collection have in common
  5. How OCaml type checker works — or what polymorphism and garbage collection have in common
blog comments powered by Disqus