[Haskell-cafe] phantom types for inheritance between types