#define r(a,b)for(j=0;j Monoid")r(mempty,:") where\n mempty =")r(%c1,:")\n ")r(%c2,:") `mappend`")r(%c1 `mappend` %2$c2,:") =")}}