Fair enough. I like the fact that I can reuse a familiar mechanism to achieve this rather than have yet more syntax (Scala is really rich with syntax, sometimes feels a bit too rich). But I see your point. I don’t know, even with type classes I prefer to use foo[A](a: A)(implicit bar: Bar[A]) rather than foo[A : Bar](a: A). It’s easier for me to instantly reason about it… Well, I guess it’s a matter of taste.