[Haskell-cafe] Design of protocol implementation?