git.iko.soy/typeable/attoparsec
on master help sign in
Drop a use of <|> from scientifically
commit2aa90776b9db65a7b03b1eb9cef554b7c490557d authorBryan O'Sullivan <bos@serpentine.com> dateSun 11 May 2014, 22:30 (12 years ago) parent17a6f57
1 file changed+5−2
Data/Attoparsec/ByteString/Char8.hs+5−2
Data/Attoparsec/ByteString/Char8.hs+5−2
@@ -105,6 +105,7 @@ module Data.Attoparsec.ByteString.Char8
105105 ) where
106106
107107import Control.Applicative (pure, (*>), (<*), (<$>), (<|>))
108+import Control.Monad (void, when)
108109import Data.Attoparsec.ByteString.FastSet (charClass, memberChar)
109110import Data.Attoparsec.ByteString.Internal (Parser)
110111import Data.Attoparsec.Combinator
@@ -527,8 +528,10 @@ scientifically :: (Scientific -> a) -> Parser a
527528scientifically h = do
528529 let minus = 45
529530 plus = 43
530− !positive <- ((== plus) <$> I.satisfy (\c -> c == minus || c == plus)) <|>
531− pure True
531+ sign <- I.peekWord8'
532+ let !positive = sign == plus || sign /= minus
533+ when (sign == plus || sign == minus) $
534+ void $ I.anyWord8
532535
533536 n <- decimal
534537