git.iko.soy/typeable/attoparsec
on master help sign in
Drop a use of <|> from scientifically

--HG-- extra : rebase_source : 799b44f7ddf91fbb6524c113c1d0caa6bb4ac19a

commit1da7481c0689a6f01ba0a860bacb4912eacc5202 authorBryan O'Sullivan <bos@serpentine.com> dateSun 11 May 2014, 22:30 (12 years ago) parent2fc71a6
1 file changed+5−2
Data/Attoparsec/ByteString/Char8.hs+5−2
Data/Attoparsec/ByteString/Char8.hs+5−2
@@ -124,6 +124,7 @@ module Data.Attoparsec.ByteString.Char8
124124 ) where
125125
126126import Control.Applicative (pure, (*>), (<*), (<$>), (<|>))
127+import Control.Monad (void, when)
127128import Data.Attoparsec.ByteString.FastSet (charClass, memberChar)
128129import Data.Attoparsec.ByteString.Internal (Parser)
129130import Data.Attoparsec.Combinator
@@ -555,8 +556,10 @@ scientifically :: (Scientific -> a) -> Parser a
555556scientifically h = do
556557 let minus = 45
557558 plus = 43
558− !positive <- ((== plus) <$> I.satisfy (\c -> c == minus || c == plus)) <|>
559− pure True
559+ sign <- I.peekWord8'
560+ let !positive = sign == plus || sign /= minus
561+ when (sign == plus || sign == minus) $
562+ void $ I.anyWord8
560563
561564 n <- decimal
562565