categories and monoids (was: Re: [Haskell-cafe] Design Patterns by Gamma or equivalent)