[m-dev.] Type Unfolding Mark II

Fergus Henderson fjh at cs.mu.oz.au
Fri Mar 14 03:38:50 AEDT 1997

Peter David ROSS, you wrote:
> Specification for type unfolding
> Any type which consists of one constructor can be flattened into its
> component types.  If any component of the flattened type is also a type
> with one constructor, then it can also be flattend.

OK, so what does it mean to flatten a type?

I know you gave an example, and that is helpful,
but it is not a specification.

> The above scheme course falls down if we change the predicate to be the
> following,

Again, this is an example; it would be good if could give general conditions
rather than just examples.

> This is of course where it gets complicated, because we have to start
> being careful in each predicate of exactly how far the type has been
> unfolded and that may cause a lot of overhead as one converts between
> the two representations of the unfolded type.  Hopefully this will be
> recognised and we will not unfold the type.

Hopefully we won't have to rely on hope! ;-)
It would be good if you could specify exactly when things should/should
not be unfolded.


Fergus Henderson <fjh at cs.mu.oz.au>   |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>   |  of excellence is a lethal habit"
PGP: finger fjh at         |     -- the last words of T. S. Garp.

More information about the developers mailing list