Fix untrampolining once and for all.
Fix untrampolining once and for all.

This bug had two causes: tail loops not being properly trampolined, and
incorrectly treating the function symbol of a slow function application as
the function that would be called. As slow applications usually appears due
to partial application, it is not necessarily the case that the function
argument to A() is the function that actually gets called in the end.

kranich/haste-compiler,kranich/haste-compiler,kranich/haste-compiler,nyson/haste-compiler,nyson/haste-compiler,nyson/haste-compiler,nyson/haste-compiler,kranich/haste-compiler