Maybe the "better" bit the Scala collections can be immutable.

Also can't Scala be generic on both parts  M<T> ,  T and the M,