I have made a type of mine an instance of monoid_add:
instantiation "marking_ext" :: (monoid_add) monoid_add
begin
definition
marking_add_def:
"M + N =
...
end
I can now use the familiar + notation between values of type ('a :: monoid_add) marking_ext, e.g., write M + N. But I would rather use \<oplus>, writing M \<oplus> N.
Can I change the notation of the typeclass instance, yet stay within the built-in hierarchy of type-classes?