[Haskell-cafe] Is there a name for this algebraic structure?