Graphic composition using painters algorithm can be seen as a monoid. data Graphic = Empty | Graphic `Over` Graphic | Ellipse Bounds | ....
instance Monoid Graphic where mempty = Empty mappend = Over So all functions that operate on monoids can be used on Graphic as well, like mconcat that converts a [Graphic] into a Graphic On Thu, Jan 15, 2009 at 9:51 PM, Don Stewart <d...@galois.com> wrote: > duncan.coutts: > > On Thu, 2009-01-15 at 19:46 +0000, Andrew Coppin wrote: > > > > > PS. As a small aside... Is the Monoid class actually used *anywhere* in > > > all of Haskell? > > > > Yes. > > > > They're used quite a lot in Cabal. Package databases are monoids. > > Configuration files are monoids. Command line flags and sets of command > > line flags are monoids. Package build information is a monoid. > > > > It is also used in the Foldable class which is a nice interface for > > traversing/visiting structures. Binary serialisation is also a monoid. > > Also, xmonad configuration hooks are monoidal. So all those xmonad users > gluing together keybindings are using the Monoid class. > > -- Don > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe