
8 May
2017
8 May
'17
10:12 a.m.
Christiaan Baaij
Hello GHC Devs,
Hi!
So my question are: - Which part of the simplifier is turning these local recursive let-binders into global recursive functions?
The simplifier does a bit of let floating. See Simplify.simplLazyBind and SimplEnv.doFloatFromRhs. I suspect this is what you are seeing.
- Is there some way to disable this transformation?
You could try adding a flag which is checked by doFloatFromRhs. I'm not sure what, if anything, might break if you do so. Cheers, - Ben