-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A data-type representing digits 0-9 and other combinations -- -- -- Digit is a data-type that represents the digits 0-9 and other -- combinations. @package digit @version 0.2.9 -- | A data type with ten nullary constructors [0-9] and combinators. module Data.Digit -- | A data type with ten nullary constructors. data Digit -- | Catamorphism for Digit. -- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D0 == q0
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D1 == q1
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D2 == q2
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D3 == q3
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D4 == q4
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D5 == q5
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D6 == q6
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D7 == q7
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D8 == q8
--   
-- --
--   foldDigit q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 D9 == q9
--   
foldDigit :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Digit -> a class HasDigit a hasdigit :: HasDigit a => Lens' a Digit class D0 d d0 :: D0 d => Prism' d () x0 :: D0 d => d class D1 d d1 :: D1 d => Prism' d () x1 :: D1 d => d class D2 d d2 :: D2 d => Prism' d () x2 :: D2 d => d class D3 d d3 :: D3 d => Prism' d () x3 :: D3 d => d class D4 d d4 :: D4 d => Prism' d () x4 :: D4 d => d class D5 d d5 :: D5 d => Prism' d () x5 :: D5 d => d class D6 d d6 :: D6 d => Prism' d () x6 :: D6 d => d class D7 d d7 :: D7 d => Prism' d () x7 :: D7 d => d class D8 d d8 :: D8 d => Prism' d () x8 :: D8 d => d class D9 d d9 :: D9 d => Prism' d () x9 :: D9 d => d -- | A prism for using Int as Digit. -- --
--   >>> 5 ^? digit
--   Just 5
--   
-- --
--   >>> 0 ^? digit
--   Just 0
--   
-- --
--   >>> 9 ^? digit
--   Just 9
--   
-- --
--   >>> 10 ^? digit
--   Nothing
--   
-- --
--   >>> (-5) ^? digit
--   Nothing
--   
-- --
--   >>> digit # D5
--   5
--   
-- --
--   >>> digit # D9
--   9
--   
-- --
--   >>> digit # D0
--   0
--   
digit :: Integral a => Prism' a Digit -- | A prism for using Char as Digit. -- --
--   >>> '5' ^? digitC
--   Just 5
--   
-- --
--   >>> '0' ^? digitC
--   Just 0
--   
-- --
--   >>> '9' ^? digitC
--   Just 9
--   
-- --
--   >>> 'a' ^? digitC
--   Nothing
--   
-- --
--   >>> '@' ^? digitC
--   Nothing
--   
-- --
--   >>> digitC # D5
--   '5'
--   
-- --
--   >>> digitC # D9
--   '9'
--   
-- --
--   >>> digitC # D0
--   '0'
--   
digitC :: Prism' Char Digit -- | A prism for the list of digits in an integer -- --
--   >>> 1234 ^? digitlist
--   Just [1,2,3,4]
--   
-- --
--   >>> 0 ^? digitlist
--   Just []
--   
-- --
--   >>> 1 ^? digitlist
--   Just [1]
--   
-- --
--   >>> 90 ^? digitlist
--   Just [9,0]
--   
-- --
--   >>> 05 ^? digitlist
--   Just [5]
--   
-- --
--   >>> 105 ^? digitlist
--   Just [1,0,5]
--   
-- --
--   >>> (-1) ^? digitlist
--   Nothing
--   
-- -- λ> digitlist # [D0] 0 -- --
--   >>> digitlist # [D0, D1]
--   1
--   
-- --
--   >>> digitlist # [D1]
--   1
--   
-- --
--   >>> digitlist # [D1, D2, D3]
--   123
--   
-- --
--   >>> digitlist # [D1, D0, D3]
--   103
--   
-- --
--   >>> digitlist # [D1, D0, D3, D0]
--   1030
--   
digitlist :: Integral a => Prism' a [Digit] -- | Modulus with 10. -- --
--   >>> mod10 0
--   0
--   
-- --
--   >>> mod10 1
--   1
--   
-- --
--   >>> mod10 8
--   8
--   
-- --
--   >>> mod10 9
--   9
--   
-- --
--   >>> mod10 10
--   0
--   
-- --
--   >>> mod10 90
--   0
--   
-- --
--   >>> mod10 91
--   1
--   
-- --
--   >>> mod10 (-1)
--   9
--   
mod10 :: Integral a => a -> Digit -- | Division/modulus with 10. -- --
--   >>> divMod10 0
--   (0,0)
--   
-- --
--   >>> divMod10 1
--   (0,1)
--   
-- --
--   >>> divMod10 8
--   (0,8)
--   
-- --
--   >>> divMod10 9
--   (0,9)
--   
-- --
--   >>> divMod10 10
--   (1,0)
--   
-- --
--   >>> divMod10 90
--   (9,0)
--   
-- --
--   >>> divMod10 91
--   (9,1)
--   
-- --
--   >>> divMod10 (-1)
--   (-1,9)
--   
divMod10 :: Integral a => a -> (a, Digit) parsedigit :: (Monad p, CharParsing p) => p Digit parsedigitlist :: (Monad p, CharParsing p) => p [Digit] parsedigits :: (Monad p, CharParsing p) => p Digits parsedigitlist1 :: (Monad p, CharParsing p) => p (NonEmpty Digit) skipdigitlist :: (Monad p, CharParsing p) => p () skipdigitlist1 :: (Monad p, CharParsing p) => p () parsenotdigit :: CharParsing p => p Char parsenotdigits :: CharParsing p => p String parsenotdigits1 :: CharParsing p => p String skipnotdigits :: CharParsing p => p () skipnotdigits1 :: CharParsing p => p () -- | A QuasiQuoter for any range of Digit. -- -- -- -- named [digitQ|4|] = "four" named [digitQ|$x|] = "not four, " ++ show x -- ++ " instead" -- -- mod10D x = let y = mod x 10 in [digitQ|$y|] digitQ :: QuasiQuoter data Digits digits :: Integral a => Prism' a Digits digitsI :: Iso' [Digit] Digits digitsS :: Prism' String Digits -- |
--   >>> D0 /+/ D0
--   (0,0)
--   
-- --
--   >>> D0 /+/ D1
--   (0,1)
--   
-- --
--   >>> D1 /+/ D0
--   (0,1)
--   
-- --
--   >>> D4 /+/ D5
--   (0,9)
--   
-- --
--   >>> D5 /+/ D5
--   (1,0)
--   
-- --
--   >>> D5 /+/ D6
--   (1,1)
--   
-- --
--   >>> D8 /+/ D7
--   (1,5)
--   
-- --
--   >>> D9 /+/ D9
--   (1,8)
--   
(/+/) :: Digit -> Digit -> (Digit, Digit) -- |
--   >>> Digits [x2] .+. Digits [x1, x0]
--   Digits [1,2]
--   
-- --
--   >>> Digits [x1, x2, x3] .+. Digits [x4, x5, x6]
--   Digits [5,7,9]
--   
(.+.) :: Digits -> Digits -> Digits -- |
--   >>> Digits [x2] .*. Digits [x1, x0]
--   Digits [2,0]
--   
-- --
--   >>> Digits [x1, x2, x3] .*. Digits [x4, x5, x6]
--   Digits [5,6,0,8,8]
--   
(.*.) :: Digits -> Digits -> Digits -- |
--   >>> mantissa (Digits []) :: Double
--   0.0
--   
-- --
--   mantissa (Digits [x0]) :: Double
--   
-- --
    --
  1. 0
  2. --
-- --
--   >>> mantissa (Digits [x1]) :: Double
--   0.1
--   
-- --
--   >>> mantissa (Digits [x1, x9]) :: Double
--   0.19
--   
mantissa :: Floating a => Digits -> a instance Data.Data.Data Data.Digit.Digits instance GHC.Show.Show Data.Digit.Digits instance GHC.Classes.Ord Data.Digit.Digits instance GHC.Classes.Eq Data.Digit.Digits instance Data.Data.Data Data.Digit.Digit instance GHC.Enum.Bounded Data.Digit.Digit instance GHC.Enum.Enum Data.Digit.Digit instance GHC.Classes.Ord Data.Digit.Digit instance GHC.Classes.Eq Data.Digit.Digit instance Data.Digit.HasDigit Data.Digit.Digit instance Data.Digit.D0 Data.Digit.Digit instance Data.Digit.D1 Data.Digit.Digit instance Data.Digit.D2 Data.Digit.Digit instance Data.Digit.D3 Data.Digit.Digit instance Data.Digit.D4 Data.Digit.Digit instance Data.Digit.D5 Data.Digit.Digit instance Data.Digit.D6 Data.Digit.Digit instance Data.Digit.D7 Data.Digit.Digit instance Data.Digit.D8 Data.Digit.Digit instance Data.Digit.D9 Data.Digit.Digit instance GHC.Show.Show Data.Digit.Digit instance Control.Lens.Cons.Cons Data.Digit.Digits Data.Digit.Digits Data.Digit.Digit Data.Digit.Digit instance Control.Lens.Cons.Snoc Data.Digit.Digits Data.Digit.Digits Data.Digit.Digit Data.Digit.Digit instance Control.Lens.Empty.AsEmpty Data.Digit.Digits instance Control.Lens.Each.Each Data.Digit.Digits Data.Digit.Digits Data.Digit.Digit Data.Digit.Digit instance Control.Lens.At.Ixed Data.Digit.Digits instance Control.Lens.Plated.Plated Data.Digit.Digits instance Control.Lens.Internal.Iso.Reversing Data.Digit.Digits instance Data.Semigroup.Semigroup Data.Digit.Digits instance GHC.Base.Monoid Data.Digit.Digits