I'd prefer the name nextAncestor over supertype in this method, but think it's better to leave to minimize the diff between this and square/dagger