This is getting a bit too clever... it seems we're relying on the fact that this returns `undefined` for all _other_ kinds of type nodes, correct? At the very least, we should have a comment here explaining:
1) what kinds of nodes we want to return `INELIGIBLE` for, and why.
2) the mechanism by which eligible nodes end up getting selected.