Group oriented programming in Haskell.