[Haskell-cafe] What's this pattern called?