Überlappende Instanzen

Wegen String = [Char] gilt nach bisheriger Deklaration:

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.

Möglicher Ausweg: die speziellere Instanz gewinnt, also hier: instance Show [Char] gegen instance Show [a].



Johannes Waldmann 2007-06-21