Skip to content
  • Simon Peyton Jones's avatar
    Arity and eta-expansion tuning · 182ce7e2
    Simon Peyton Jones authored
    Roman found that 
        loop :: STRef s a -> Int -> ST s Int
        loop ref n = case n of
                       0 -> return n
                       n -> loop ref (n-1)
    wasn't eta-expanding nicely, despite the 'state hack'
    (see Id.isStateHackType).  The reason was two-fold:
    
      a) a bug in CoreUtils.arityType (the Var case)
    
      b) the arity of a recursive function was not being
    	exposed in its RHS (see commments with
    	SimplEnv.addLetIdInfo
    
    The commit fixes both.  
    182ce7e2