Fresh Objective Caml (

Fresh O'Caml is a programming language which aims to provide the features of the Objective Caml language together with:

and some additional utility operations. We hope you find that the language simplifies metaprogramming tasks which involve the manipulation of object language binders.


Fresh O'Caml is distributed as patched Objective Caml source code.


The current official release of Fresh O'Caml is based on the main O'Caml release 3.08.2. It is known to compile successfully on Linux and Mac OS X systems and should work without difficulty on other UNIX-like platforms.

We strongly advise not installing Fresh O'Caml with the same prefix as your existing O'Caml installation.


Commands similar to the following should suffice to build and install the system:

tar fxz fresh-ocaml-3.08.2+4.tar.gz
cd fresh-ocaml-3.08.2+4
make world
make install

If you wish to install the system somewhere other than the default location of /usr/local/, then use the -prefix option to the configure script, for example:

./configure -prefix ~/fresh-ocaml


Some instructions provided by Joachim Steinmetz for building a Win-32 executable with Cygwin are here.


Fresh O'Caml Examples.


The following documentation is available for Fresh O'Caml.

M.R. Shinwell and A.M. Pitts, Fresh Objective Caml User Manual. Cambridge University Computer Laboratory, February 2005.

M.R.Shinwell, The Fresh Approach: functional programming with names and binders. PhD thesis, University of Cambridge Computer Laboratory, February 2005. The thesis is also available in a more compact form as a Computer Laboratory Technical Report.

M.R. Shinwell and A.M. Pitts, On a Monadic Semantics for Freshness, Theoretical Computer Science 342(2005) 28-55.

M. R. Shinwell, Swapping the Atom: Programming with Binders in Fresh O'Caml. In Second ACM SIGPLAN Workshop on Mechanized Reasoning about Languages with Variable Binding, MERLIN'03, Uppsala, Sweden, August 2003.

Bug reports, comments and suggestions

Whilst we believe Fresh O'Caml to be fairly robust, it is still somewhat experimental so you may encounter problems. Please email Mark Shinwell if you encounter difficulties or have suggestions to make.

Last modified: $Date: 2009/06/30 $