[Haskell-cafe] Opaque types vs automated instance deriving