@@ -107,7 +107,7 @@ signa :: Num a => Parser a -> Parser a
107107{-# SPECIALIZE signa :: Parser Int -> Parser Int #-}
108108{-# SPECIALIZE signa :: Parser Integer -> Parser Integer #-}
109109signa p = do
110− sign <- perhaps '+' $ char (`elem` "-+")
110+ sign <- perhaps '+' $ char (\c -> c == '-' || c == '+')
111111 if sign == '+' then p else negate `liftM` p
112112
113113newtype Parser a = P {
@@ -142,7 +142,8 @@ floaty f = runP $ do
142142 digits <- P $ \t -> Right (T.length $ T.takeWhile isDigit t, t)
143143 n <- P decimal
144144 return (n, digits)
145− power <- perhaps 0 (char (`elem` "eE") >> signa (P decimal) :: Parser Int)
145+ let e c = c == 'e' || c == 'E'
146+ power <- perhaps 0 (char e >> signa (P decimal) :: Parser Int)
146147 return $! if fracDigits == 0
147148 then if power == 0
148149 then fromIntegral real