$Id: HashCaml.bugs 784 2006-04-26 13:16:49Z jnb26 $
Current open issues:
- Normalisation is not w.r.t. type equalities
- Free univars in record marshalling work only in simple cases.
- Normtype should De Bruijn over the whole struct, not per type. This
may give rise to some mistaken accidental type equalities.
- Normalisation of types involving extended paths (those containing
formal applications of functors) eg F(U).t, re-evaluates the functor
application in order to find the value of the resulting myname field.
This is a performance issue in any case (which could be solved by
constructing a "skeleton" functor that just performs any myname
calculation), but for functors with non-pure bodies it is a semantic
problem. This may happen also with module aliases to such
applications. Further, the fact that we are not normalising
w.r.t. type equalities means the resulting runtime type reps are not
easily predictable.
Additional desirable features:
- existentials (explicitly typed)
- normalisation w.r.t. the order of clauses in variant and record type
definitions
- a flag to turn off type passing