Why do we need this conditional? Is there a way to avoid it? (I.e. always make `input` be the same type of thing.)