forgot to check for shadowing in letrec case