Matching produces some code. foldP seem to have correct AST.

Now we have to go to generate code, with the optimizations, because pattern matching produced very excessive code.