parseFloatString :: Parser String
parseFloatString = try $ do
    beginning <- many digit <* char '.'
    end <- many digit
    guard $ (not . null) (beginning ++ end)
    -- We can slap extra 0's in there to avoid ".###" and "###.".
    return $ "0" ++ beginning ++ "." ++ end ++ "0"
parseFloatString :: Parser String
parseFloatString = try $ do
    beginning <- many digit <* char '.'
    end <- many digit
    guard $ (not . null) (beginning ++ end)
    -- We can slap extra 0's in there to avoid ".###" and "###.".
    return $ "0" ++ beginning ++ "." ++ end ++ "0"
parseFloatString = try $ do
    beginning <- many digit <* char '.'
    end <- many digit
    guard $ (not . null) (beginning ++ end)
    -- We can slap extra 0's in there to avoid ".###" and "###.".
    return $ "0" ++ beginning ++ "." ++ end ++ "0"