Playing around with type erasure, concept based polymorphism and value semantics