try letrec