Das geht bisher gar nicht:
let { f = \ x -> if x > 0 then x * f (x -1) else 1 } in f 5
Lösung:
( rec f ( \ x -> if x > 0 then x * f (x -1) else 1 )) 5
mit neuem AST-Knotentyp rec
rec