This is really important for preventing the restriction of there only being one typeclass per type from being a problem. Having newtypes for each desirable instance does not completely solve the problem by itself.

with (Monoid All) (True <> True)
with (Monoid Any) (uses (someList.traverse) (== x))

givens (Scala 3) has a fairly good picture for how this can be implemented.

See also: