Haskell report typo (bad law for readsPrec)

Wolfgang Lux wlux@uni-muenster.de
Wed, 20 Jun 2001 11:29:39 +0200


Patrik Jansson wrote

> [Typo - you mean:]
>       head (readsPrec d (showsPrec d x "")) == (x,"")

Yes.

> Both formulations look OK to me, but neither is an essential change and
> there are many other small variations possible with slight semantical
> differences. One example is
> 
>       (x,"") `elem` readsPrec d (showsPrec d x "")
> 
> And already the current (proposed) formulation is most likely impossible
> to satisfy if the element x contains bottoms somewhere inside. (Example:
> try to show and read the string (undefined : "hello").)

True, but in any case it seems sensible to me to require that readsPrec should
actually process the input string. With your proposal

> > |      fst (head (readsPrec d (showsPrec d x ""))) == x

it would be possible to return [(42,"42")] for the expression
readsPrec 0 (showsPrec 0 42 "").

Wolfgang



--
Wolfgang Lux				  Phone: +49-251-83-38263
Institut fuer Wirtschaftinformatik	    FAX: +49-251-83-38259
Universitaet Muenster		      Email: wlux@uni-muenster.de