Show with Strings

Hamilton Richards
Tue, 5 Aug 2003 14:30:27 -0400

Hi, Thomas--

At 10:01 AM +0000 8/4/03, you wrote:
>Is there any reason why
>  show :: String -> String
>is not equivalent to 'id' ?
>At the moment,
>show "one" = "\"one\""
>which leads to problems because it often
>requires String to be treated as a special case,
>rather than just a member of Show.
>Haskell-Cafe mailing list

Actually, this definition of show :: String -> String is consistent 
with the definitions of show for other familiar types. That is, it 
produces the string  by which its argument's value would be 
represented as a literal value in Haskell code.
    A String literal is enclosed in quotation marks, and characters 
such as new-lines, tabs, and quotation marks are represented by 
\-sequences. Ergo, the first and last characters of the value of 
(show (x::String)) are always quotation marks, and each newline, tab, 
or quotation mark in x will appear in (show x) as a two-character 

I'm not sure what you mean by "... requires String to be treated as a 
special case, rather than just a member of Show". What sort of 
special treatment did you have in mind?



Hamilton Richards, PhD           Department of Computer Sciences
Senior Lecturer                  The University of Texas at Austin
512-471-9525                     1 University Station C0500
Taylor Hall 5.138                Austin, Texas 78712-1188