added letrec compilation