Wegen String = [Char]
gilt bisher
show 'f' = "'f'" show "foo" = "['f','o','o']"Erwünscht ist aber:
instance Show String where show cs = "\"" ++ cs ++ "\"" show "foo" = "\"foo\""Diese Instanz-Deklaration überlappt mit generischer.
Für Show [Char]
gibt es dann zwei Wörterbücher--
das ist grundsätzlich verboten:
in Standard Haskell dürfen generische Instanzen keine Typvariablen instanziieren.