in the type classes doc you suggest using the following syntax to imply type class "requirements", which introduces a previously unused notation:
type class Monoid[A] : Semigroup[A] {
def empty: A
}
What would you think instead of re-using the existing type-bounds notation as in the following snippet?
type class Monoid[A: Semigroup] {
def empty: A
}