equiv_uncurry is definitely incorrect, as it is defined in turns of prod_rect, which uses pattern matching. It is not definitionally equivalent to this definition, and the exercise specifically asks for the recursor to be defined using the projection functions.