In other words, I think that the current behavior of `Identity` is an (unintended) side-effect of it being a subclass of `Mapping`, which (deliberately) had this behavior.  But `Identity(1)` should have the same effect as `Mapping((0,), n_inputs=1)` which would make the number of inputs strict. 