
Robert Dockins wrote:
When would you use this flag? Is this for combinators introduced, eg, during lambda lifting?
I forget exactly but it's something like that. Certainly it's for things that were never in the source code but which the compiler has introduced itself.
So this is particularly for anonymous functions, right?
Indeed.
FFL_PRIM_APPLY means this is the special inbuilt apply function that is so special you can't even write it in Haskell. So please trace it specially.
Is this also used for the STRING function? Does it have other uses?
It's only used for apply because the way a Hat trace views the higher order application and the way the G-Machine views higher order application are somewhat different.
Also, what happens if you get the flags wrong (like, set them all to 0 regardless of what they should be). Is Hat the only think affected? Will Hat crash if they're wrong?
Hat will be the only thing affected and it shouldn't crash it'll just give you an incorrect trace. Thanks Tom