Alice ML is a functional programming language based on
Standard ML, extended with rich support for concurrent, distributed, and constraint programming. Alice ML extends Standard ML with several new features:
- futures- laziness and light-weight concurrency with implicit data-flow synchronisation,
- higher-order modules- higher-order functors and abstract signatures,
- packages- integrating static with dynamic typing and first class modules,
- pickling- higher-order type-safe, generic & platform-independent persistence,
- components- platform-independence and type-safe dynamic import & export of modules,
- distribution- type-safe cross-platform remote functions and network mobility,
- constraints- solving combinatorical problems using constraint propagation and programmable search.
The Alice System is a rich open-source programming system featuring a full set of tools, including a graphical IDE.
Homepage- http://www.ps.uni-sb.de/alice/
HaMLet is a faithful implementation of the
Standard ML programming language (SML'97). It aims to be
- an accurate reference implementation of the language specification,
- a platform for experimentation with the language semantics or extensions to it,
- a useful tool for educational purposes.
The implementation is intended to be as direct a translation of the language formalisation found in the
Definition of Standard ML as possible, modulo bug fixes.
It can perform different phases of execution - like parsing, elaboration (type checking), and evaluation - selectively. In particular, it is possible to execute programs in an untyped manner, thus exploring the universe where even ML programs "can go wrong".
Homepage- http://www.mpi-sws.org/~rossberg/hamlet/
Various proposals for
Successor ML (sML) are implemented in a
special version of HaMLet. It represents a testbed and sort of a personal vision of where sML might go. Its most interesting features are:
- extensible records,
- more expressive pattern matching,
- views,
- higher-order modules and nested signatures,
- local and first-class modules,
- miscellaneous fixes to known issues with SML.
Homepage- http://www.mpi-sws.org/~rossberg/hamlet/#successor-ml
MixML is a complete redesign of the ML module language that is described in the paper "
Mixin' Up the ML Module System" by Derek Dreyer and myself. Its main features are that
- it unifies structures and signatures into a single concept,
- nested mixin-style linking is its central primitive,
- it allows fully-fledged recursive modules,
- functors, signature refinement, and other ML features are directly expressible.
We currently have a prototype implementation that allows playing around with small examples.
Homepage- http://www.mpi-sws.org/~rossberg/mixml/