Let me quickly reply. **1**: Ok, I'm on board.
**2**: Sounds great, thanks for explaining. Please add a comment on _basis_ before merging if it won't be obvious by that time. **3**: I like simple things. I'm still not convinced on this point. My argument is only not to support `c.push(T)` to infer `T`, because the solution might not be unique. Let's use `c.values()[0] is T` only, so the `is` operator could only "finalize" a metatype. I'm also afraid of the code complexity this inferring `c.push(T)` task adds to the compiler (correct me if this doesn't require a backtrack algorithm). **4**: Ok. **5**: Thanks for explaining.
