• Simon Marlow's avatar
    optimisations to newUnique · bb3dcf39
    Simon Marlow authored
    It turned out that newUnique was wasting one node of the splittable
    uniq supply per invocation: it took the current supply, split it, used
    the unique from one half and stored the other half in the monad.  In
    other words, the unique in the supply stored in the monad was never
    used.  
    
    This optimisation fixes that and adds a bit of strictness, which
    together lead to small reduction in allocations by the compiler, and
    possibly an improvement in residency (hard to tell for sure when GCs
    move around).
    bb3dcf39
TcRnMonad.lhs 33.3 KB