Nice.  If you also add a `def functorMax[C: Monoid]`, coverage should be complete.  Less strict constraints can conflict in exciting ways that can't be seen by asking for more strict constraints.