[project @ 2001-10-18 16:29:12 by simonpj]
----------------------------------------------
The CoreTidy/CorePrep/CoreToStg saga continues
[actually, this commit mostly completes the job]
----------------------------------------------
DO NOT MERGE!
* CorePrep injects implicit bindings, not the type checker,
nor CgConTbls. (This way, all the code generators see
them, so no need to fiddle with the byte code generator.)
As a result, all bindings in the module are for LocalIds,
at least until CoreTidy. This is a Big Win.
Hence remove nasty isImplicitId test in update_bndr in
SimplCore and DmdAnal
* hasNoBinding is no longer true of a dataConId (worker).
There's an implicit curried binding for it.
* Remove yukky test in exprIsTrivial that did not regard
a hasNoBinding Id as trivial; similarly in SimplUtils.tryEtaReduce
* In CoreTidy, get the names to avoid from the type env.
That way it includes implicit bindings too.
* CoreTidy set the Arity of a top-level Id permanently;
it's up to the rest of the compiler to respect it.
Notably, CorePrep uses etaExpand to make the manifest arity
match the claimed arity.
* As a result, nuke CgArity, so that CgInfo now contains only
CafInfo. The CafInfo is knot-tied as before.
Other things
* In Simplify.simplLazyBind, be a bit keener to float bindings
out if it's a top-level binding.
18 files changed: