Skip to content
  • Simon Peyton Jones's avatar
    [project @ 2004-04-02 13:34:42 by simonpj] · 52276d81
    Simon Peyton Jones authored
    Add a flag -fno-state-hack, which switches off the "state hack".
    
    It's claims that every function over realWorldStatePrimTy is a
    one-shot function.  This is pretty true in practice, and makes a big
    difference.  For example, consider
    	a `thenST` \ r -> ...E...
    The early full laziness pass, if it doesn't know that r is one-shot
    will pull out E (let's say it doesn't mention r) to give
    	let lvl = E in a `thenST` \ r -> ...lvl...
    When `thenST` gets inlined, we end up with
    	let lvl = E in \s -> case a s of (r, s') -> ...lvl...
    and we don't re-inline E.
    52276d81