-- 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.3.0 -- | 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 AsDigit a digit :: AsDigit a => Prism' a Digit class ManyDigit a digitT :: ManyDigit a => Traversal' a Digit class D0 d where x0 = d0 # () d0 :: D0 d => Prism' d () x0 :: (D0 d, D0 d) => d class D1 d where x1 = d1 # () d1 :: D1 d => Prism' d () x1 :: (D1 d, D1 d) => d class D2 d where x2 = d2 # () d2 :: D2 d => Prism' d () x2 :: (D2 d, D2 d) => d class D3 d where x3 = d3 # () d3 :: D3 d => Prism' d () x3 :: (D3 d, D3 d) => d class D4 d where x4 = d4 # () d4 :: D4 d => Prism' d () x4 :: (D4 d, D4 d) => d class D5 d where x5 = d5 # () d5 :: D5 d => Prism' d () x5 :: (D5 d, D5 d) => d class D6 d where x6 = d6 # () d6 :: D6 d => Prism' d () x6 :: (D6 d, D6 d) => d class D7 d where x7 = d7 # () d7 :: D7 d => Prism' d () x7 :: (D7 d, D7 d) => d class D8 d where x8 = d8 # () d8 :: D8 d => Prism' d () x8 :: (D8 d, D8 d) => d class D9 d where x9 = d9 # () d9 :: D9 d => Prism' d () x9 :: (D9 d, D9 d) => d -- | 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 (-12)
--   8
--   
mod10 :: Integral a => a -> Digit -- | Absolute value of remainder 10. -- --
--   >>> absrem10 0
--   0
--   
-- --
--   >>> absrem10 1
--   1
--   
-- --
--   >>> absrem10 8
--   8
--   
-- --
--   >>> absrem10 9
--   9
--   
-- --
--   >>> absrem10 10
--   0
--   
-- --
--   >>> absrem10 90
--   0
--   
-- --
--   >>> absrem10 91
--   1
--   
-- --
--   >>> absrem10 (-1)
--   1
--   
-- --
--   >>> absrem10 (-12)
--   2
--   
absrem10 :: 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 :: CharParsing p => p Digit -- | 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 -- |
--   >>> 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) 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 GHC.Show.Show 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 Data.Digit.AsDigit Data.Digit.Digit instance Data.Digit.AsDigit GHC.Types.Int instance Data.Digit.AsDigit GHC.Int.Int8 instance Data.Digit.AsDigit GHC.Int.Int16 instance Data.Digit.AsDigit GHC.Int.Int32 instance Data.Digit.AsDigit GHC.Int.Int64 instance Data.Digit.AsDigit GHC.Integer.Type.Integer instance GHC.Real.Integral a => Data.Digit.AsDigit (Data.Functor.Identity.Identity a) instance GHC.Real.Integral a => Data.Digit.AsDigit (Data.Functor.Const.Const a b) instance Data.Digit.AsDigit GHC.Types.Word instance Data.Digit.AsDigit GHC.Types.Char instance Data.Digit.ManyDigit Data.Digit.Digit module Data.Digits1 newtype Digits1 Digits1 :: (NonEmpty Digit) -> Digits1 class AsDigits1 a _Digits1 :: AsDigits1 a => Prism' a Digits1 class HasDigits1 a digits1L :: HasDigits1 a => Lens' a Digits1 class ManyDigits1 a digits1T :: ManyDigits1 a => Traversal' a Digits1 parsedigitlist1 :: CharParsing p => p Digits1 instance Data.Digits1.Digits1 ~ t0 => Control.Lens.Wrapped.Rewrapped Data.Digits1.Digits1 t0 instance Control.Lens.Wrapped.Wrapped Data.Digits1.Digits1 instance Data.Digits1.AsDigits1 Data.Digits1.Digits1 instance Data.Digit.AsDigit a => Data.Digits1.AsDigits1 (Data.List.NonEmpty.NonEmpty a) instance Data.Digit.AsDigit a => Data.Digits1.AsDigits1 [a] instance Data.Digits1.HasDigits1 Data.Digits1.Digits1 instance Data.Digits1.ManyDigits1 Data.Digits1.Digits1 instance Data.Semigroup.Semigroup Data.Digits1.Digits1 instance Control.Lens.Plated.Plated Data.Digits1.Digits1 instance Control.Lens.Internal.Iso.Reversing Data.Digits1.Digits1 instance Control.Lens.Each.Each Data.Digits1.Digits1 Data.Digits1.Digits1 Data.Digit.Digit Data.Digit.Digit instance Control.Lens.Cons.Snoc Data.Digits1.Digits1 Data.Digits1.Digits1 Data.Digit.Digit Data.Digit.Digit instance Control.Lens.Cons.Cons Data.Digits1.Digits1 Data.Digits1.Digits1 Data.Digit.Digit Data.Digit.Digit instance Control.Lens.At.Ixed Data.Digits1.Digits1 instance Data.Digit.ManyDigit Data.Digits1.Digits1 instance Data.Data.Data Data.Digits1.Digits1 instance GHC.Show.Show Data.Digits1.Digits1 instance GHC.Classes.Ord Data.Digits1.Digits1 instance GHC.Classes.Eq Data.Digits1.Digits1 module Data.Digits newtype Digits Digits :: [Digit] -> Digits class AsDigits a _Digits :: AsDigits a => Prism' a Digits class HasDigits a digitsL :: HasDigits a => Lens' a Digits class ManyDigits a digitsT :: ManyDigits a => Traversal' a Digits parsedigits :: CharParsing p => p Digits instance Data.Digits.Digits ~ t0 => Control.Lens.Wrapped.Rewrapped Data.Digits.Digits t0 instance Control.Lens.Wrapped.Wrapped Data.Digits.Digits instance Data.Digits.AsDigits Data.Digits.Digits instance Data.Digit.AsDigit a => Data.Digits.AsDigits [a] instance Data.Digits.HasDigits Data.Digits.Digits instance Data.Digits.ManyDigits Data.Digits.Digits instance Control.Lens.Cons.Cons Data.Digits.Digits Data.Digits.Digits Data.Digit.Digit Data.Digit.Digit instance Control.Lens.Cons.Snoc Data.Digits.Digits Data.Digits.Digits Data.Digit.Digit Data.Digit.Digit instance Control.Lens.Empty.AsEmpty Data.Digits.Digits instance Control.Lens.Each.Each Data.Digits.Digits Data.Digits.Digits Data.Digit.Digit Data.Digit.Digit instance Control.Lens.At.Ixed Data.Digits.Digits instance Control.Lens.Plated.Plated Data.Digits.Digits instance Control.Lens.Internal.Iso.Reversing Data.Digits.Digits instance Data.Semigroup.Semigroup Data.Digits.Digits instance GHC.Base.Monoid Data.Digits.Digits instance Data.Digits1.AsDigits1 Data.Digits.Digits instance Data.Digit.ManyDigit Data.Digits.Digits instance Data.Data.Data Data.Digits.Digits instance GHC.Show.Show Data.Digits.Digits instance GHC.Classes.Ord Data.Digits.Digits instance GHC.Classes.Eq Data.Digits.Digits