digit 0.2.2 → 0.2.3
raw patch · 3 files changed
+30/−15 lines, 3 filesdep +parsecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: parsec
API changes (from Hackage documentation)
- Data.Digit: parseDigit :: (Monad p, CharParsing p) => p Digit
+ Data.Digit: parsedigit :: (Monad p, CharParsing p) => p Digit
+ Data.Digit: parsedigits :: (Monad p, CharParsing p) => p [Digit]
+ Data.Digit: parsedigits1 :: (Monad p, CharParsing p) => p [Digit]
Files
- digit.cabal +2/−1
- etc/changelog +4/−0
- src/Data/Digit.hs +24/−14
digit.cabal view
@@ -1,5 +1,5 @@ name: digit-version: 0.2.2+version: 0.2.3 license: BSD3 license-File: etc/LICENCE author: Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>@@ -34,6 +34,7 @@ , parsers >= 0.12.3 && < 0.13 , template-haskell >= 2.8 + , parsec ghc-options: -Wall
etc/changelog view
@@ -1,3 +1,7 @@+0.2.3++* Digit parsers.+ 0.2.2 * Modulus operations.
src/Data/Digit.hs view
@@ -38,29 +38,32 @@ , mod10 , divMod10 -- * Parsers-, parseDigit+, parsedigit+, parsedigits+, parsedigits1 -- * Quasi-Quoters , digitQ ) where -import Control.Applicative(pure)+import Control.Applicative(many, some) import Control.Category((.)) import Control.Lens(Prism', prism', (^?), ( # ))-import Control.Monad(Monad(fail))+import Control.Monad(Monad) import Data.Char(Char) import Data.Data (Data) import Data.Eq(Eq((==)))-import Data.Foldable(foldl')+import Data.Foldable(foldl', asum) import Data.Function(const)+import Data.Functor((<$), (<$>)) import Data.Int(Int)-import Data.List((++), unfoldr, reverse)+import Data.List(unfoldr, reverse) import Data.Maybe(Maybe(Nothing, Just), maybe, fromMaybe) import Data.Ord(Ord((<))) import Data.Typeable (Typeable) import Language.Haskell.TH(ExpQ, PatQ, varE, varP, mkName) import Language.Haskell.TH.Quote(QuasiQuoter(QuasiQuoter), quotePat, quoteExp, quoteDec, dataToExpQ, dataToPatQ, quoteType) import Prelude(Show(..), Read(..), Enum(..), Bounded, Num(..), error, divMod, mod)-import Text.Parser.Char(CharParsing, anyChar)+import Text.Parser.Char(CharParsing, char) import Text.Parser.Combinators((<?>)) -- $setup@@ -556,17 +559,24 @@ let (x, r) = n `divMod` 10 in (x, mod10 r) -parseDigit ::+parsedigit :: (Monad p, CharParsing p) => p Digit-parseDigit =- let p = do c <- anyChar- case c ^? digitC of- Nothing ->- fail ("not a digit: " ++ show c )- Just d -> - pure d+parsedigit =+ let p = asum ((\d -> d <$ char (digitC # d)) <$> [D0 .. D9]) in p <?> "digit"++parsedigits ::+ (Monad p, CharParsing p) =>+ p [Digit]+parsedigits =+ many parsedigit++parsedigits1 ::+ (Monad p, CharParsing p) =>+ p [Digit]+parsedigits1 =+ some parsedigit instance Show Digit where show = show . fromEnum