[Haskell-cafe] Trouble understanding records and existential types