pattern binding in letrec