@vitalyd : Thanks! This fixed it. However, I have no idea what I did wrong / what assumption was incorrect / what's going on behind the scenes? Can you point me at docs for this?
Sized is a default constraint for all types, and because of this you have to opt-out of using sized by using ?Sized. This auto-bound is for ergonomics, because in most cases your types will be Sized.
Sorry if this sounds stupid -- most of the time, traits seem to be "Additive" in that we say: in addition to whatever we know about this object, we ALSO know that it satisfies this other property.
?Sized seems to be subtractive, in that we look at objects (which by default are all Sized ?) and then we are saying: we have no idea what the size of the object is?
?Sized isn't really subtractive, but it does remove that default. If you combine it with something else that must be sized, like ?Sized + Default, then the result will still have to be Sized.