Ξυ³h$•’4Ÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžNone 038;<ΞΩμJd10Determines whether a Ÿ is in the range '0' to '9'.d10Determines whether a  Θ consists of a single character and that character is within the range '0' to '9'.d10Determines whether a  < consists entirely of characters that are within the range '0' to '9'.d10Determines whether a ‘ is in the range 0 to 9.d10Determines whether an ’ is in the range 0 to 9.d10Determines whether an £ is in the range 0 to 9.d10.Determines whether a number whose type has an €" instance is in the range 0 to 9.None 038;<ΞΩμ7Ό+d10A value of some numeric type a between ₯ 0 and ₯ 9.The  Data.D10.Num2 module provides many functions for constructing  values, including:  :: ’ -> ¦   :: ’ -> ,There are also several ways to safely write " literals using Template Haskell: With the  QuasiQuotes? GHC extension enabled, you can write use the quasi-quoters , and -. With the TemplateHaskellΒ GHC extension enabled, you can splice expressions produced by ( and ).d10ŸThe constructor's name include the word "unsafe" as a reminder that you should generally avoid using it directly, because it allows constructing invalid  values. d10 Convert a  to its underlying Ÿ representation.d10Char [d10|7|]'7' d10 Convert a  to a  .   x = [  x]d10Str [d10|7|]"7" d10 Convert a  to a ‘., is a more general version of this function.d10Nat [d10|7|]7 d10 Convert a  to an ’., is a more general version of this function.d10Integer [d10|7|]7 d10 Convert a  to an £., is a more general version of this function.d10Int [d10|7|]7d10 Convert a  to any kind of number with a § instance..Specialized versions of this function include  ,  , and  .d10Num [d10|7|] :: Integer7d10The 4 which is uniquely congruent modulo 10 to the given ‘., is a more general version of this function.natMod10 56 :: D10 Int[d10|6|]d10The 4 which is uniquely congruent modulo 10 to the given ’., is a more general version of this function.integerMod10 56 :: D10 Int[d10|6|]integerMod10 (-56) :: D10 Int[d10|4|]d10The 4 which is uniquely congruent modulo 10 to the given £., is a more general version of this function.intMod10 56 :: D10 Int[d10|6|]intMod10 (-56) :: D10 Int[d10|4|]d10The ε which is uniquely congruent modulo 10 to the given number (whose type must have an instance of the € class)..Specialized versions of this function include , , and .(integralMod10 (56 :: Integer) :: D10 Int[d10|6|]+integralMod10 ((-56) :: Integer) :: D10 Int[d10|4|]d10 Convert a Ÿ to a  if it is within the range '0' to '9' , or produce ¨ otherwise.  x =  ( x)!, is a more general version of this function.charD10Maybe '5' Just [d10|5|]charD10Maybe 'a'Nothingd10 Convert a   to a Ρ if it consists of exactly one character and that character is within the range '0' to '9', or produce ¨ otherwise.  x =  ( x)", is a more general version of this function.strD10Maybe "5" Just [d10|5|]strD10Maybe "a"NothingstrD10Maybe "58"Nothingd10 Convert a   to a list of > if all of the characters in the string are within the range '0' to '9', or produce ¨ otherwise.  x =  ( x)#, is a more general version of this function.strD10ListMaybe "5"Just [d10list|5|]strD10ListMaybe "a"NothingstrD10ListMaybe "58"Just [d10list|58|]d10 Convert a ‘ to a $ if it is less than 10, or produce ¨ otherwise.  x =  ( x), $, and '- are more general versions of this function. natD10Maybe 5 Just [d10|5|]natD10Maybe 12Nothingd10 Convert an ’ to a / if it is within the range 0 to 9, or produce ¨ otherwise.  x =  ( x), %, and '- are more general versions of this function.integerD10Maybe 5 Just [d10|5|]integerD10Maybe 12NothingintegerD10Maybe (-5)Nothingd10 Convert an £ to a / if it is within the range 0 to 9, or produce ¨ otherwise.  x =  ( x), &, and '- are more general versions of this function. intD10Maybe 5 Just [d10|5|]intD10Maybe 12NothingintD10Maybe (-5)Nothingd10 Construct a ! from any kind of number with an € instance, or produce ¨/ if the number falls outside the range 0 to 9.  x =  ( x).Specialized versions of this function include , , and .', is a more general version of this function.integralD10Maybe (5 :: Integer) Just [d10|5|] integralD10Maybe (12 :: Integer)Nothing"integralD10Maybe ((-5) :: Integer)Nothingd10 Convert a Ÿ to a  if it is within the range '0' to '9', or ©! with an error message otherwise.charD10Either '5'Right [d10|5|]charD10Either 'a'"Left "d10 must be between 0 and 9"d10 Convert a   to a Ξ if it consists of a single character and that character is within the range '0' to '9', or ©! with an error message otherwise.strD10Either "5"Right [d10|5|]strD10Either "a""Left "d10 must be between 0 and 9"strD10Either "58"%Left "d10 must be a single character"d10 Convert a   to a ? if all of the characters in the string fall within the range '0' to '9', or ©" with an error message otherwise.strD10ListEither "5"Right [d10list|5|]strD10ListEither "a""Left "d10 must be between 0 and 9"strD10ListEither "58"Right [d10list|58|]d10 Convert a ‘ to a  if it is less than 10, or ©! with an error message otherwise.natD10Either 5Right [d10|5|]natD10Either 12Left "d10 must be less than 10"d10 Convert an ’ to a ' if it is within the range 0 to 9, or ©! with an error message otherwise.integerD10Either 5Right [d10|5|]integerD10Either 12"Left "d10 must be between 0 and 9"integerD10Either (-5)"Left "d10 must be between 0 and 9"d10 Convert an £ to a ' if it is within the range 0 to 9, or ©! with an error message otherwise.intD10Either 5Right [d10|5|]intD10Either 12"Left "d10 must be between 0 and 9"intD10Either (-5)"Left "d10 must be between 0 and 9" d10'Convert a number of a type that has an € instance to a ) if it falls within the range 0 to 9, or ©" with an error message otherwise. integralD10Either (5 :: Integer)Right [d10|5|]!integralD10Either (12 :: Integer)"Left "d10 must be between 0 and 9"#integralD10Either ((-5) :: Integer)"Left "d10 must be between 0 and 9"!d10 Convert a Ÿ to a  if it is within the range '0' to '9', or ͺ! with an error message otherwise.+ is a specialized version of this function.charD10Fail '5' :: IO (D10 Int)[d10|5|]charD10Fail 'a' :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)"d10 Convert a   to a Ξ if it consists of a single character and that character is within the range '0' to '9', or ͺ! with an error message otherwise.+ is a specialized version of this function.strD10Fail "5" :: IO (D10 Int)[d10|5|]strD10Fail "a" :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)strD10Fail "58" :: IO (D10 Int):*** Exception: user error (d10 must be a single character)#d10 Convert a   to a ? if all of the characters in the string fall within the range '0' to '9', or ͺ" with an error message otherwise.+ is a specialized version of this function."strD10ListFail "5" :: IO [D10 Int] [d10list|5|]"strD10ListFail "a" :: IO [D10 Int]7*** Exception: user error (d10 must be between 0 and 9)#strD10ListFail "58" :: IO [D10 Int] [d10list|58|]$d10 Convert a ‘ to a  if it is less than 10, or ͺ! with an error message otherwise.+ is a specialized version of this function.', is a more general version of this function.natD10Fail 5 :: IO (D10 Int)[d10|5|]natD10Fail 12 :: IO (D10 Int)4*** Exception: user error (d10 must be less than 10)%d10 Convert an ’ to a ' if it is within the range 0 to 9, or ͺ! with an error message otherwise.+ is a specialized version of this function.', is a more general version of this function. integerD10Fail 5 :: IO (D10 Int)[d10|5|]!integerD10Fail 12 :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)#integerD10Fail (-5) :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)&d10 Convert an £ to a ' if it is within the range 0 to 9, or ͺ! with an error message otherwise.+ is a specialized version of this function.', is a more general version of this function.intD10Fail 5 :: IO (D10 Int)[d10|5|]intD10Fail 12 :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)intD10Fail (-5) :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)'d10'Convert a number of a type that has an € instance to a ) if it falls within the range 0 to 9, or ͺ" with an error message otherwise., , , , $, %, and &/ are all specialized versions of this function..integralD10Fail (5 :: Integer) :: IO (D10 Int)[d10|5|]/integralD10Fail (12 :: Integer) :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)1integralD10Fail ((-5) :: Integer) :: IO (D10 Int)7*** Exception: user error (d10 must be between 0 and 9)(d10Produces an expression of type  a0 that can be used in a Template Haskell splice.d10Nat $(d10Exp 5)5d10Nat $(d10Exp 12)...... d10 must be between 0 and 9...You may also be interested in ,/, a quasi-quoter which does something similar.)d10Produces an expression of type [ a]0 that can be used in a Template Haskell splice.d10Nat <$> $(d10ListExp "")[]d10Nat <$> $(d10ListExp "5")[5]d10Nat <$> $(d10ListExp "58")[5,8]d10Nat <$> $(d10ListExp "a")...... d10 must be between 0 and 9...You may also be interested in -/, a quasi-quoter which does something similar.*d10ΗProduces a pattern that can be used in a splice to match a particular  a value.:{ case (charD10Maybe '5') of Just $(d10Pat 4) -> "A" Just $(d10Pat 5) -> "B" _ -> "C":}"B"You may wish to use the , quasi-quoter instead.+d10ΟProduces a pattern that can be used in a splice to match a particular list of  a values.:{$ case (strD10ListMaybe "56") of& Just $(d10ListPat "42") -> "A"& Just $(d10ListPat "56") -> "B"& _ -> "C":}"B"You may wish to use the - quasi-quoter instead.,d10A single base-10 digit.ΙThis quasi-quoter, when used as an expression, produces a value of type  a.d10Nat [d10|5|]5d10Nat [d10|a|]...... d10 must be between 0 and 9...d10Nat [d10|58|]..."... d10 must be a single character...0This quasi-quoter can also be used as a pattern.:{ case (charD10Maybe '5') of Just [d10|4|] -> "A" Just [d10|5|] -> "B" _ -> "C":}"B":{ case (charD10Maybe '5') of Just [d10|x|] -> "A" Just [d10|5|] -> "B" _ -> "C":}...... d10 must be between 0 and 9...-d10A list of base-10 digits.ΙThis quasi-quoter, when used as an expression, produces a value of type [ a].d10Nat <$> [d10list||][]d10Nat <$> [d10list|5|][5]d10Nat <$> [d10list|58|][5,8]d10Nat <$> [d10list|a|]...... d10 must be between 0 and 9...0This quasi-quoter can also be used as a pattern.:{ case [d10list|56|] of [d10list|41|] -> "A" [d10list|56|] -> "B" _ -> "C":}"B":{ case [d10list|56|] of [d10list|4x|] -> "A" [d10list|56|] -> "B" _ -> "C":}...... d10 must be between 0 and 9....d10Addition modulo 10.[d10|2|] + [d10|3|][d10|5|][d10|6|] + [d10|7|][d10|3|]/d10Subtraction modulo 10.[d10|7|] - [d10|5|][d10|2|][d10|3|] - [d10|7|][d10|6|]0d10Multiplication modulo 10.[d10|2|] * [d10|4|][d10|8|][d10|7|] * [d10|8|][d10|6|]1d108Shows base-10 digits using the quasiquoters defined in  Data.D10.Char$. A single digit is displayed using ,'. A list of digits is displayed using -.*  !"#$%&'()*+,-./0*,-()*+ ! "# $ % & './0None 038;<ΞΩμhΏ+7d10A Ÿ value between '0' and '9'.The  Data.D10.Char2 module provides many functions for constructing 7 values, including: G :: ’ -> ¦ 7 @ :: ’ -> 7 With the  QuasiQuotes' GHC extension enabled, you can write 7" literals using the quasi-quoters \ and ].8d10ŸThe constructor's name include the word "unsafe" as a reminder that you should generally avoid using it directly, because it allows constructing invalid 7 values.9d10 Convert a 7 to its underlying Ÿ representation.d10Char [d10|7|]'7':d10 Convert a 7 to a  . : x = [9 x]d10Str [d10|7|]"7";d10 Convert a 7 to a ‘.>, is a more general version of this function.d10Nat [d10|7|]7<d10 Convert a 7 to an ’.>, is a more general version of this function.d10Integer [d10|7|]7=d10 Convert a 7 to an £.>, is a more general version of this function.d10Int [d10|7|]7>d10 Convert a 7 to any kind of number with a § instance..Specialized versions of this function include ;, <, and =.d10Num [d10|7|] :: Integer7?d10The 74 which is uniquely congruent modulo 10 to the given ‘.B, is a more general version of this function. natMod10 56[d10|6|]@d10The 74 which is uniquely congruent modulo 10 to the given ’.B, is a more general version of this function.integerMod10 56[d10|6|]integerMod10 (-56)[d10|4|]Ad10The 74 which is uniquely congruent modulo 10 to the given £.B, is a more general version of this function. intMod10 56[d10|6|]intMod10 (-56)[d10|4|]Bd10The 7ε which is uniquely congruent modulo 10 to the given number (whose type must have an instance of the € class)..Specialized versions of this function include ?, @, and A.integralMod10 (56 :: Integer)[d10|6|] integralMod10 ((-56) :: Integer)[d10|4|]Cd10 Convert a Ÿ to a 7 if it is within the range '0' to '9' , or produce ¨ otherwise.  x =  (C x)Q, is a more general version of this function.charD10Maybe '5' Just [d10|5|]charD10Maybe 'a'NothingDd10 Convert a   to a 7Ρ if it consists of exactly one character and that character is within the range '0' to '9', or produce ¨ otherwise.  x =  (D x)R, is a more general version of this function.strD10Maybe "5" Just [d10|5|]strD10Maybe "a"NothingstrD10Maybe "58"NothingEd10 Convert a   to a list of 7> if all of the characters in the string are within the range '0' to '9', or produce ¨ otherwise.  x =  (E x)S, is a more general version of this function.strD10ListMaybe "5"Just [d10list|5|]strD10ListMaybe "a"NothingstrD10ListMaybe "58"Just [d10list|58|]Fd10 Convert a ‘ to a 7$ if it is less than 10, or produce ¨ otherwise.  x =  (F x)I, T, and W- are more general versions of this function. natD10Maybe 5 Just [d10|5|]natD10Maybe 12NothingGd10 Convert an ’ to a 7/ if it is within the range 0 to 9, or produce ¨ otherwise.  x =  (G x)I, U, and W- are more general versions of this function.integerD10Maybe 5 Just [d10|5|]integerD10Maybe 12NothingintegerD10Maybe (-5)NothingHd10 Convert an £ to a 7/ if it is within the range 0 to 9, or produce ¨ otherwise.  x =  (H x)I, V, and W- are more general versions of this function. intD10Maybe 5 Just [d10|5|]intD10Maybe 12NothingintD10Maybe (-5)NothingId10 Construct a 7! from any kind of number with an € instance, or produce ¨/ if the number falls outside the range 0 to 9.  x =  (I x).Specialized versions of this function include F, G, and H.W, is a more general version of this function.integralD10Maybe (5 :: Integer) Just [d10|5|] integralD10Maybe (12 :: Integer)Nothing"integralD10Maybe ((-5) :: Integer)NothingJd10 Convert a Ÿ to a 7 if it is within the range '0' to '9', or ©! with an error message otherwise.charD10Either '5'Right [d10|5|]charD10Either 'a'"Left "d10 must be between 0 and 9"Kd10 Convert a   to a 7Ξ if it consists of a single character and that character is within the range '0' to '9', or ©! with an error message otherwise.strD10Either "5"Right [d10|5|]strD10Either "a""Left "d10 must be between 0 and 9"strD10Either "58"%Left "d10 must be a single character"Ld10 Convert a   to a 7? if all of the characters in the string fall within the range '0' to '9', or ©" with an error message otherwise.strD10ListEither "5"Right [d10list|5|]strD10ListEither "a""Left "d10 must be between 0 and 9"strD10ListEither "58"Right [d10list|58|]Md10 Convert a ‘ to a 7 if it is less than 10, or ©! with an error message otherwise.natD10Either 5Right [d10|5|]natD10Either 12Left "d10 must be less than 10"Nd10 Convert an ’ to a 7' if it is within the range 0 to 9, or ©! with an error message otherwise.integerD10Either 5Right [d10|5|]integerD10Either 12"Left "d10 must be between 0 and 9"integerD10Either (-5)"Left "d10 must be between 0 and 9"Od10 Convert an £ to a 7' if it is within the range 0 to 9, or ©! with an error message otherwise.intD10Either 5Right [d10|5|]intD10Either 12"Left "d10 must be between 0 and 9"intD10Either (-5)"Left "d10 must be between 0 and 9"Pd10'Convert a number of a type that has an € instance to a 7) if it falls within the range 0 to 9, or ©" with an error message otherwise. integralD10Either (5 :: Integer)Right [d10|5|]!integralD10Either (12 :: Integer)"Left "d10 must be between 0 and 9"#integralD10Either ((-5) :: Integer)"Left "d10 must be between 0 and 9"Qd10 Convert a Ÿ to a 7 if it is within the range '0' to '9', or ͺ! with an error message otherwise.C+ is a specialized version of this function.charD10Fail '5' :: IO D10[d10|5|]charD10Fail 'a' :: IO D107*** Exception: user error (d10 must be between 0 and 9)Rd10 Convert a   to a 7Ξ if it consists of a single character and that character is within the range '0' to '9', or ͺ! with an error message otherwise.D+ is a specialized version of this function.strD10Fail "5" :: IO D10[d10|5|]strD10Fail "a" :: IO D107*** Exception: user error (d10 must be between 0 and 9)strD10Fail "58" :: IO D10:*** Exception: user error (d10 must be a single character)Sd10 Convert a   to a 7? if all of the characters in the string fall within the range '0' to '9', or ͺ" with an error message otherwise.E+ is a specialized version of this function.strD10ListFail "5" :: IO [D10] [d10list|5|]strD10ListFail "a" :: IO [D10]7*** Exception: user error (d10 must be between 0 and 9)strD10ListFail "58" :: IO [D10] [d10list|58|]Td10 Convert a ‘ to a 7 if it is less than 10, or ͺ! with an error message otherwise.F+ is a specialized version of this function.W, is a more general version of this function.natD10Fail 5 :: IO D10[d10|5|]natD10Fail 12 :: IO D104*** Exception: user error (d10 must be less than 10)Ud10 Convert an ’ to a 7' if it is within the range 0 to 9, or ͺ! with an error message otherwise.G+ is a specialized version of this function.W, is a more general version of this function.integerD10Fail 5 :: IO D10[d10|5|]integerD10Fail 12 :: IO D107*** Exception: user error (d10 must be between 0 and 9)integerD10Fail (-5) :: IO D107*** Exception: user error (d10 must be between 0 and 9)Vd10 Convert an £ to a 7' if it is within the range 0 to 9, or ͺ! with an error message otherwise.H+ is a specialized version of this function.W, is a more general version of this function.intD10Fail 5 :: IO D10[d10|5|]intD10Fail 12 :: IO D107*** Exception: user error (d10 must be between 0 and 9)intD10Fail (-5) :: IO D107*** Exception: user error (d10 must be between 0 and 9)Wd10'Convert a number of a type that has an € instance to a 7) if it falls within the range 0 to 9, or ͺ" with an error message otherwise.F, G, H, I, T, U, and V/ are all specialized versions of this function.(integralD10Fail (5 :: Integer) :: IO D10[d10|5|])integralD10Fail (12 :: Integer) :: IO D107*** Exception: user error (d10 must be between 0 and 9)+integralD10Fail ((-5) :: Integer) :: IO D107*** Exception: user error (d10 must be between 0 and 9)Xd10Produces an expression of type 70 that can be used in a Template Haskell splice.d10Nat $(d10Exp 5)5d10Nat $(d10Exp 12)...... d10 must be between 0 and 9...You may also be interested in \/, a quasi-quoter which does something similar.Yd10Produces an expression of type [7]0 that can be used in a Template Haskell splice.d10Nat <$> $(d10ListExp "")[]d10Nat <$> $(d10ListExp "5")[5]d10Nat <$> $(d10ListExp "58")[5,8]d10Nat <$> $(d10ListExp "a")...... d10 must be between 0 and 9...You may also be interested in ]/, a quasi-quoter which does something similar.Zd10ΗProduces a pattern that can be used in a splice to match a particular 7 value.:{ case (charD10Maybe '5') of Just $(d10Pat 4) -> "A" Just $(d10Pat 5) -> "B" _ -> "C":}"B"You may wish to use the \ quasi-quoter instead.[d10ΟProduces a pattern that can be used in a splice to match a particular list of 7 values.:{$ case (strD10ListMaybe "56") of& Just $(d10ListPat "42") -> "A"& Just $(d10ListPat "56") -> "B"& _ -> "C":}"B"You may wish to use the ] quasi-quoter instead.\d10A single base-10 digit.ΙThis quasi-quoter, when used as an expression, produces a value of type 7.d10Nat [d10|5|]5d10Nat [d10|a|]...... d10 must be between 0 and 9...d10Nat [d10|58|]..."... d10 must be a single character...0This quasi-quoter can also be used as a pattern.:{ case (charD10Maybe '5') of Just [d10|4|] -> "A" Just [d10|5|] -> "B" _ -> "C":}"B":{ case (charD10Maybe '5') of Just [d10|x|] -> "A" Just [d10|5|] -> "B" _ -> "C":}...... d10 must be between 0 and 9...]d10A list of base-10 digits.ΙThis quasi-quoter, when used as an expression, produces a value of type [7].d10Nat <$> [d10list||][]d10Nat <$> [d10list|5|][5]d10Nat <$> [d10list|58|][5,8]d10Nat <$> [d10list|a|]...... d10 must be between 0 and 9...0This quasi-quoter can also be used as a pattern.:{ case [d10list|56|] of [d10list|41|] -> "A" [d10list|56|] -> "B" _ -> "C":}"B":{ case [d10list|56|] of [d10list|4x|] -> "A" [d10list|56|] -> "B" _ -> "C":}...... d10 must be between 0 and 9...^d10Addition modulo 10.[d10|2|] + [d10|3|][d10|5|][d10|6|] + [d10|7|][d10|3|]_d10Subtraction modulo 10.[d10|7|] - [d10|5|][d10|2|][d10|3|] - [d10|7|][d10|6|]`d10Multiplication modulo 10.[d10|2|] * [d10|4|][d10|8|][d10|7|] * [d10|8|][d10|6|]ad108Shows base-10 digits using the quasiquoters defined in  Data.D10.Char$. A single digit is displayed using \'. A list of digits is displayed using ].*789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`*78\]XYZ[9CJQ:DKRELS;FMT?IPWB^_`None 038;<ΞΩμ‘’0gd10A whole number between 0 and 9.hd10Zeroid10Onejd10Twokd10Threeld10Fourmd10Fivend10Sixod10Sevenpd10Eightqd10Ninerd10 Convert a g to its underlying Ÿ representation. d10Char D7'7'sd10 Convert a g to a  . s x = [r x] d10Str D7"7"td10 Convert a g to a ‘.w, is a more general version of this function. d10Nat D77ud10 Convert a g to an ’.w, is a more general version of this function. d10Integer D77vd10 Convert a g to an £.w, is a more general version of this function. d10Int D77wd10 Convert a g to any kind of number with a § instance..Specialized versions of this function include t, u, and v.d10Num D7 :: Integer7xd10The g4 which is uniquely congruent modulo 10 to the given ‘.{, is a more general version of this function. natMod10 56D6yd10The g4 which is uniquely congruent modulo 10 to the given ’.{, is a more general version of this function.integerMod10 56D6integerMod10 (-56)D4zd10The g4 which is uniquely congruent modulo 10 to the given £.{, is a more general version of this function. intMod10 56D6intMod10 (-56)D4{d10The gε which is uniquely congruent modulo 10 to the given number (whose type must have an instance of the € class)..Specialized versions of this function include x, y, and z.integralMod10 (56 :: Integer)D6 integralMod10 ((-56) :: Integer)D4|d10 Convert a Ÿ to a g if it is within the range '0' to '9' , or produce ¨ otherwise.  x =  (| x)Š, is a more general version of this function.charD10Maybe '5'Just D5charD10Maybe 'a'Nothing}d10 Convert a   to a gΡ if it consists of exactly one character and that character is within the range '0' to '9', or produce ¨ otherwise.  x =  (} x)‹, is a more general version of this function.strD10Maybe "5"Just D5strD10Maybe "a"NothingstrD10Maybe "58"Nothing~d10 Convert a   to a list of g> if all of the characters in the string are within the range '0' to '9', or produce ¨ otherwise.   x =  (~ x)Œ, is a more general version of this function.strD10ListMaybe "5" Just [D5]strD10ListMaybe "a"NothingstrD10ListMaybe "58" Just [D5,D8]d10 Convert a ‘ to a g$ if it is less than 10, or produce ¨ otherwise.   x =  ( x)‚, , and - are more general versions of this function. natD10Maybe 5Just D5natD10Maybe 12Nothing€d10 Convert an ’ to a g/ if it is within the range 0 to 9, or produce ¨ otherwise.   x =  (€ x)‚, Ž, and - are more general versions of this function.integerD10Maybe 5Just D5integerD10Maybe 12NothingintegerD10Maybe (-5)Nothingd10 Convert an £ to a g/ if it is within the range 0 to 9, or produce ¨ otherwise.   x =  ( x)‚, , and - are more general versions of this function. intD10Maybe 5Just D5intD10Maybe 12NothingintD10Maybe (-5)Nothing‚d10 Construct a g! from any kind of number with an € instance, or produce ¨/ if the number falls outside the range 0 to 9.   x =  (‚ x).Specialized versions of this function include , €, and ., is a more general version of this function.integralD10Maybe (5 :: Integer)Just D5 integralD10Maybe (12 :: Integer)Nothing"integralD10Maybe ((-5) :: Integer)Nothingƒd10 Convert a Ÿ to a g if it is within the range '0' to '9', or ©! with an error message otherwise.charD10Either '5'Right D5charD10Either 'a'"Left "d10 must be between 0 and 9"„d10 Convert a   to a gΞ if it consists of a single character and that character is within the range '0' to '9', or ©! with an error message otherwise.strD10Either "5"Right D5strD10Either "a""Left "d10 must be between 0 and 9"strD10Either "58"%Left "d10 must be a single character"…d10 Convert a   to a g? if all of the characters in the string fall within the range '0' to '9', or ©" with an error message otherwise.strD10ListEither "5" Right [D5]strD10ListEither "a""Left "d10 must be between 0 and 9"strD10ListEither "58" Right [D5,D8]†d10 Convert a ‘ to a g if it is less than 10, or ©! with an error message otherwise.natD10Either 5Right D5natD10Either 12Left "d10 must be less than 10"‡d10 Convert an ’ to a g' if it is within the range 0 to 9, or ©! with an error message otherwise.integerD10Either 5Right D5integerD10Either 12"Left "d10 must be between 0 and 9"integerD10Either (-5)"Left "d10 must be between 0 and 9"ˆd10 Convert an £ to a g' if it is within the range 0 to 9, or ©! with an error message otherwise.intD10Either 5Right D5intD10Either 12"Left "d10 must be between 0 and 9"intD10Either (-5)"Left "d10 must be between 0 and 9"‰d10'Convert a number of a type that has an € instance to a g) if it falls within the range 0 to 9, or ©" with an error message otherwise. integralD10Either (5 :: Integer)Right D5!integralD10Either (12 :: Integer)"Left "d10 must be between 0 and 9"#integralD10Either ((-5) :: Integer)"Left "d10 must be between 0 and 9"Šd10 Convert a Ÿ to a g if it is within the range '0' to '9', or ͺ! with an error message otherwise.|+ is a specialized version of this function.charD10Fail '5' :: IO D10D5charD10Fail 'a' :: IO D107*** Exception: user error (d10 must be between 0 and 9)‹d10 Convert a   to a gΞ if it consists of a single character and that character is within the range '0' to '9', or ͺ! with an error message otherwise.}+ is a specialized version of this function.strD10Fail "5" :: IO D10D5strD10Fail "a" :: IO D107*** Exception: user error (d10 must be between 0 and 9)strD10Fail "58" :: IO D10:*** Exception: user error (d10 must be a single character)Œd10 Convert a   to a g? if all of the characters in the string fall within the range '0' to '9', or ͺ" with an error message otherwise.~+ is a specialized version of this function.strD10ListFail "5" :: IO [D10][D5]strD10ListFail "a" :: IO [D10]7*** Exception: user error (d10 must be between 0 and 9)strD10ListFail "58" :: IO [D10][D5,D8]d10 Convert a ‘ to a g if it is less than 10, or ͺ! with an error message otherwise.+ is a specialized version of this function., is a more general version of this function.natD10Fail 5 :: IO D10D5natD10Fail 12 :: IO D104*** Exception: user error (d10 must be less than 10)Žd10 Convert an ’ to a g' if it is within the range 0 to 9, or ͺ! with an error message otherwise.€+ is a specialized version of this function., is a more general version of this function.integerD10Fail 5 :: IO D10D5integerD10Fail 12 :: IO D107*** Exception: user error (d10 must be between 0 and 9)integerD10Fail (-5) :: IO D107*** Exception: user error (d10 must be between 0 and 9)d10 Convert an £ to a g' if it is within the range 0 to 9, or ͺ! with an error message otherwise.+ is a specialized version of this function., is a more general version of this function.intD10Fail 5 :: IO D10D5intD10Fail 12 :: IO D107*** Exception: user error (d10 must be between 0 and 9)intD10Fail (-5) :: IO D107*** Exception: user error (d10 must be between 0 and 9)d10'Convert a number of a type that has an € instance to a g) if it falls within the range 0 to 9, or ͺ" with an error message otherwise., €, , ‚, , Ž, and / are all specialized versions of this function.(integralD10Fail (5 :: Integer) :: IO D10D5)integralD10Fail (12 :: Integer) :: IO D107*** Exception: user error (d10 must be between 0 and 9)+integralD10Fail ((-5) :: Integer) :: IO D107*** Exception: user error (d10 must be between 0 and 9)‘d10Produces an expression of type [g]0 that can be used in a Template Haskell splice.$(d10ListExp "")[]$(d10ListExp "5")[D5]$(d10ListExp "58")[D5,D8]$(d10ListExp "a")...... d10 must be between 0 and 9...You may also be interested in “/, a quasi-quoter which does something similar.’d10ΟProduces a pattern that can be used in a splice to match a particular list of g values.:{ case [D5, D6] of! $(d10ListPat "42") -> "A"! $(d10ListPat "56") -> "B"! _ -> "C":}"B"You may also be interested in “/, a quasi-quoter which does something similar.“d10A list of base-10 digits.ΙThis quasi-quoter, when used as an expression, produces a value of type [g]. [d10list||][] [d10list|5|][D5] [d10list|58|][D5,D8] [d10list|a|]...... d10 must be between 0 and 9...0This quasi-quoter can also be used as a pattern.:{ case [D5, D6] of [d10list|41|] -> "A" [d10list|56|] -> "B" _ -> "C":}"B":{ case [D5, D6] of [d10list|4x|] -> "A" [d10list|56|] -> "B" _ -> "C":}...... d10 must be between 0 and 9...”d10Addition modulo 10.D2 + D3D5D6 + D7D3•d10Subtraction modulo 10.D7 - D5D2D3 - D7D6–d10Multiplication modulo 10.D2 * D4D8D7 * D8D60gihjklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–0gihjklmnopq“‘’r|ƒŠs}„‹~…Œt†xu€‡Žyvˆzw‚‰{”•–«      !"#$%&'()*+,-./0123456789:;<= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG !"#$%&'()*+,-.024567:9;=<8HIJKLMNOMPQRSTJKUMVWMXYMZ[MX\MZ]M^_M`aβd10-0.3-2eoyBVISdsy9UL5p19IL2IData.D10.Predicate Data.D10.Num Data.D10.Char Data.D10.Safe Data.MaybeisJust isD10CharisD10Str isD10ListStrisD10Nat isD10IntegerisD10Int isD10IntegralD10 D10_Unsafed10Chard10Strd10Nat d10Integerd10Intd10NumnatMod10 integerMod10intMod10 integralMod10 charD10Maybe strD10MaybestrD10ListMaybe natD10MaybeintegerD10Maybe intD10MaybeintegralD10Maybe charD10Either strD10EitherstrD10ListEither natD10EitherintegerD10Either intD10EitherintegralD10Either charD10Fail strD10FailstrD10ListFail natD10FailintegerD10Fail intD10FailintegralD10Faild10Exp d10ListExpd10Pat d10ListPatd10d10list+-* $fShowD10 $fEnumD10 $fBoundedD10$fEqD10$fOrdD10$fLiftLiftedRepD10D0D1D2D3D4D5D6D7D8D9 $fDataD10 $fGenericD10ghc-prim GHC.TypesCharbaseGHC.BaseString GHC.NaturalNaturalinteger-wired-inGHC.Integer.TypeIntegerIntGHC.RealIntegralGHC.Num fromInteger GHC.MaybeMaybeNumNothing Data.EitherLeftControl.Monad.Failfail