Your example works, I see. However, there is a warning that you don't use `T` in the definition of `SetImpl[T]`.
The `float` cannot be inferred in `VectorSpace[float]` from the concept itself, we need to know it before evaluating the concept's body. We would like to create `VectorSpaceFloat`, `VectorSpaceInt`, `VectorSpaceBool`, and it is much easier to use generics to do so. A type can be `VectorSpace[int]` and `VectorSpace[bool]` as well. In contrast, a container type cannot be `Map[string,int]` and `Map[int, int]` at the same time (because `map.keys()` can have only one returned type). Thanks for taking the time to read all my examples. > Peter
