Add support for (letrec) syntax and the (if) syntax. Various fixes