This page provides an overview of the limitations of the current version of the Alice system.
The = operator is strict. Accordingly, in order to test two futures for equality, both have to be requested. The current implementation will not request futures if they are physically equal.
The equality attribute of types is ignored. The = operator may be applied to values of any type. For functions and similar values it uses physical equality.
Datatype replication in signatures (datatype t = datatype u) is not supported yet. Since datatypes are structural, the datatype specification can be copied as a work-around. Datatype replication in structures is supported.
Overloading is not supported for literal constants. All literals default to their primary type.
The operation of constructing a value with a generative constructor is strict in the constructor, in contrast to the language definition. Furthermore, if a (generative or non-generative) constructor has a syntactic arity not equal to 1, application of this constructor is strict in the argument (record).
Accessing a hole does not raise an exception as it should. Instead, it blocks until the hole is filled.
Signatures containing include specifications cannot be handled.
Dynamic sealing is not performed in cases where the signature is not statically known.
Some of the mandatory structures of the Standard ML Basis Library are missing. These are:
Some of the implemented structures and functors from the Standard ML Basis Library lack parts of their functionality. These include: