> Which can't be achieved in most OOP languages that I know of, except for Scala and that's because Scala has "implicit parameters" which are equivalent to Haskell's type classes.
C++ can do that with template specialization.
C++ can do that with template specialization.