[Haskell-cafe] Deriving Show instance with ADT that has phantom type