Guess I am almost there for a self-compile except for a hard-to-trace bug which occurs in complex expressions. I need unit tests to trace them. Also, I managed to speed up the stage1 compiler by just expressing the 'concat' operation on lists directly instead of with a fold, I might have used the wrong fold on it - I am wondering whether it would pay of to express more functions directly.
Anyway, unit tests on the operational semantics it is.
020810: Slow again. Narrowed it down to an example, but the example I found to hard to analyze. I gambled the problem is in the LC part, and decided to write a simple evaluator for LC terms to detect which transformation breaks the operational semantics.
021210: Narrowed it down to a simple example. In need of a printer.
When in doubt, let the machine do the hard work.