ponent'       :: Parser Rational
exponent'       =  do{ _ <- oneOf "eE"
                     ; f <- sign
                     ; e <- decimal <?> "exponent"
                     ; return (power (f e))
                     }
                  <?> "exponent"
                      where
                       power e  | e < 0      = 1.0/power(-e)
                                | otherwise  = fromInteger (10^e)
                       sign            =   (char '-' >> return negate)
                                       <|> (char '+' >> return id)
                                       <|> return id


exponent'       :: Parser Rational
exponent'       =  do{ _ <- oneOf "eE"
                     ; f <- sign
                     ; e <- decimal <?> "exponent"
                     ; return (power (f e))
                     }
                  <?> "exponent"
                      where
                       power e  | e < 0      = 1.0/power(-e)
                                | otherwise  = fromInteger (10^e)
                       sign            =   (char '-' >> return negate)
                                       <|> (char '+' >> return id)
                                       <|> return id
exponent'       =  do{ _ <- oneOf "eE"
                     ; f <- sign
                     ; e <- decimal <?> "exponent"
                     ; return (power (f e))
                     }
                  <?> "exponent"
                      where
                       power e  | e < 0      = 1.0/power(-e)
                                | otherwise  = fromInteger (10^e)
                       sign            =   (char '-' >> return negate)
                                       <|> (char '+' >> return id)
                                       <|> return id