[m-dev.] for review: reordering for existential types [1]

Simon Taylor stayl at cs.mu.OZ.AU
Wed Jun 23 15:26:12 AEST 1999


> > One other possible problem I noticed is that you moved the code
> > to convert higher-order pred constants into lambda expressions
> > from modecheck_unify.m into polymorphism.m. What happens if a
> > later pass (e.g. deforestation) reruns mode analysis on code which
> > constructs a higher-order pred constant?
> 
> I'm not entirely sure, so I decided that in the interests of safety
> it is probably best to put that code back in modecheck_unify.m
> (as well as keeping the copy in polymorphism.m).

OK. I suspect recompute_instmap_delta_unify on the alias branch
has the same problem. I'll fix that when I finish off structure reuse.

> compiler/modecheck_unify.m:
> 	Put back the code for converting unifications with higher-order
> 	pred constants into lambda expressions, which had been moved to
> 	polymorphism.m, because it might be needed in case mode analysis is
> 	rerun after lambda.m has already been run, e.g. during deforestation.

This is a lot of duplicated code - would it be possible to factor it
out into a separate predicate?

Thanks,
Simon.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list