woop, that type parameter for addListener was superfluous, and also damaging in terms of inference.