(push"a"*)(dotimes'25(format t"instance (~{Monoid ~A~^, ~}) => Monoid (~{~A~^,~}) where
~4Tmempty = (~{~*mempty~^,~})~@*
~4T(~{~A1~^,~}) `mappend` (~{~A2~^,~}) = (~{~A1 `mappend` ~:*~A2~^,~})
"(set'*`(,@*,(int-char(+ .'98))))* *))
Note that non-ascii characters in the above source code will be escaped (such as \x9f).