where f sgn cs =
case span isDigit cs of
(digits,'.':c:rest)
- | isDigit c -> cont (TKrational r) rest'
+ | isDigit c -> cont (TKrational (fromInteger sgn * r)) rest'
where ((r,rest'):_) = readFloat (digits ++ ('.':c:rest))
-- When reading a floating-point number, which is
-- a bit complicated, use the Haskell 98 library function
lexDigits s = case span isDigit s of
(cs,s') | not (null cs) -> [(cs,s')]
otherwise -> []
-#endif
\ No newline at end of file
+#endif