[Haskell-cafe] Functors and the Visitor Pattern