Skip to content
  • Simon Peyton Jones's avatar
    [project @ 2001-10-18 16:29:12 by simonpj] · 685e04e4
    Simon Peyton Jones authored
    ----------------------------------------------
    	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.
    685e04e4