Previous week Up Next week


Here is the latest Caml Weekly News, for the week of February 12 to 19, 2013.

  1. ocp-indent 1.0.0 release
  2. Old and new OCaml installed on same machine?
  3. Sequence 0.3.1
  4. Other Caml News

ocp-indent 1.0.0 release


Continuing the thread from last week, Louis Gesbert announced:
Thanks for all the feedback and few bug reports during the past week of beta-

We can now announce the 1.0.0 release of ocp-indent, available on opam.

Old and new OCaml installed on same machine?


Oliver asked and Francois Berenger replied:
> any ideas on how to manage multiple OCaml-installations
> on one machine, without running into trouble?
> I have 3.11.2 here on my old Ubuntu box.
> I built OCaml 4.00, but stopped before the "make install",
> because on a target system (a server providing my web stuff)
> there also is 3.11.2 installed (older Debian system), and I'm
> not root at that system.
> But I want to compile my code there also.
> So I may need to develop in two branches for a while
> and do merges.
> When I remove my 3.11.2, the testing would need me to work
> on the remote machine, when testing the old-branch (the merges).
> Possible, but more effort (and network delays are annoying).
> Can more than one OCaml be installed and used in an easy way?
> Or should I forget this issue because of "mission impossible"
> or because of "that needs too much effort"?

I think you are looking for the opam -switch option.
It allows to "jump" from one version to another.

Sequence 0.3.1


Simon Cruanes announced:
I'm happy to announce the release of Sequence 0.3.1. Sequence is
designed to compose iterations over containers in a lightweight fashion.
The goal is to transfer values between containers, or to apply
transformations (map, filter, take, etc.) on several values without
caring about where they come from. It doesn't have any dependencies.

Sequence is not designed to be as general-purpose or flexible as, say,
Batteries' `Enum.t`. Rather, it aims at providing a very simple and
efficient way of iterating on a finite number of values, only allocating
(most of the time) a few intermediate closures to do so.

For instance, if you have an array and want to build a hashtable that
contains elements mapping to their index in the array, you can write:

> #require "sequence";;
> let a = [| "a"; "b"; "c"; "d"; "e" |];;
> let h = Hashtbl.create 3;;
> Sequence.hashtbl_add h
( (fun (x,y) -> y,x)
(Sequence.of_array_i a));;
> open Format;; (* to print h *)
> let pp_pair formatter (x,y) = fprintf formatter "%s -> %i" x y;;
> Sequence.pp_seq pp_pair std_formatter (Sequence.of_hashtbl h);;

A toy S-expression module, and a few tests are included but not compiled
by default (because they require OCaml >= 4.0). The code is free (BSD
license), hosted at and available on
OPAM (install with `opam install sequence`).

Other Caml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the Caml Weekly News the links to the
recent posts from the ocamlcore planet blog at


Some great news on Opa:

Reactive ML 1.08.04:

Old cwn

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe online.

Alan Schmitt