| Another simple alternative is to weaken the the equation by=20 | replacing the variable r by the empty string: [Alternative B:] |=20 | ... | should be the case that |=20 | fst (head (readsPrec d (showsPrec d x ""))) =3D=3D x Yes, I like this alternative too. I'll implement it. Thank you for spotting it. Simon