apparently substx_rec clashes with recursion scheme generated by Coq -- use another name for that