[Haskell-cafe] Bidirectional programming in Haskell