towards turning recursive calls into superclass constraints