
The current implementation does not yet completely implement the
Mercury language.  The main limitations of the current implementation
are the following:

* We do not allow definite aliasing in the mode system.
  Without this, partially instantiated modes are unusable, 
  and so are nested unique modes :-(

* The compiler does not yet use structure reuse or compile-time
  garbage collection to exploit unique modes :-(

* Module qualifiers are not yet fully implemented (they are
  also not yet documented).

* It is not possible to give both `cc_multi' and `multi' (or `cc_nondet'
  and `nondet') determinisms for the same mode of a predicate.

* The order of mode declarations is significant:
  unique mode declarations must precede non-unique mode declarations.

* Predicates can have at most about 1000 arguments.

We are working on eliminating all of these problems. 

Of course, those are not the only things we're working on.  Among other
things, we'd like to provide better support for debugging, a better C
interface and a better garbage collector.  We're also working on a
parallel/multithreaded version of Mercury, and on adding support for
constraint solving.

