To quote @ahrens:
It’s also a little strange that the InputHandler takes a single object rather than an iterable of
all the things in that pipeline stage. I think that’s the direction we want to go - assuming that
all the objects in one “pipe” are the same type, and determining what to do based on the
type of the first object. Instead of looking at each object’s type, which is what we now do
in Locator.caller()
We first need to ensure that [1] this doesn't break any use cases, [2] be mindful of any inconsistencies in the code structure/behavior between this and other classes (e.g. Walker, PrettyPrinter, etc..)