How do you know this fixes your issue?  I'm very confused as to how this is doing anything.  You are redefining the same implicit monoid.

Can you provide a gist of a failed test without this and explain the mechanism?  This looks like we are hacking around a compiler bug at best.  This is not how implicit resolution works, as far as I can understand.