Ξυ³h&•Œ’8Ÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™š›œžSafe 038:;<ΩμGd10Determines 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.Unsafe 038:;<ΞΩμ–d10A value of some numeric type a between ₯ 0 and ₯ 9.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. Trustworthy 038:;<ΩμΚ Trustworthy 038:;<Ωμ*Vd10 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|]7d10 Convert a  to an ’., is a more general version of this function.d10Integer [d10|7|]7d10 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)Nothing d10 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) !"#$%&'()*+,- '!(")#*$+%,&- Trustworthy 038:;<Ωμ/ν.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 d10/, 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 d10list/, a quasi-quoter which does something similar.0d10Η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 d10 quasi-quoter instead.1d10Ο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 d10list quasi-quoter instead../01./01Safe 038:;<Ωμ52d10A single base-10 digit.ΙThis quasi-quoter, when used as an expression, produces a value of type D10 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...3d10A list of base-10 digits.ΙThis quasi-quoter, when used as an expression, produces a value of type [D10 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...2323Safe 038:;<Ωμ5K& !"#$%&'()*+,-./0123&23./01 '!(")#*$+%,&-Safe 038:;<Ωμ6ζ4d10Addition modulo 10.[d10|2|] + [d10|3|][d10|5|][d10|6|] + [d10|7|][d10|3|]5d10Subtraction modulo 10.[d10|7|] - [d10|5|][d10|2|][d10|3|] - [d10|7|][d10|6|]6d10Multiplication modulo 10.[d10|2|] * [d10|4|][d10|8|][d10|7|] * [d10|8|][d10|6|]456456Unsafe 038:;<ΞΩμ8 7d10A Ÿ value between '0' and '9'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.7878 Trustworthy 038:;<Ωμ8?77 Trustworthy 038:;<Ωμ[?d10 Convert a 7 to its underlying Ÿ representation.d10Char [d10|7|]'7'@d10 Convert a 7 to a  . @ x = [? x]d10Str [d10|7|]"7"Ad10 Convert a 7 to a ‘.D, is a more general version of this function.d10Nat [d10|7|]7Bd10 Convert a 7 to an ’.D, is a more general version of this function.d10Integer [d10|7|]7Cd10 Convert a 7 to an £.D, is a more general version of this function.d10Int [d10|7|]7Dd10 Convert a 7 to any kind of number with a ¦ instance..Specialized versions of this function include A, B, and C.d10Num [d10|7|] :: Integer7Ed10The 74 which is uniquely congruent modulo 10 to the given ‘.H, is a more general version of this function. natMod10 56[d10|6|]Fd10The 74 which is uniquely congruent modulo 10 to the given ’.H, is a more general version of this function.integerMod10 56[d10|6|]integerMod10 (-56)[d10|4|]Gd10The 74 which is uniquely congruent modulo 10 to the given £.H, is a more general version of this function. intMod10 56[d10|6|]intMod10 (-56)[d10|4|]Hd10The 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 E, F, and G.integralMod10 (56 :: Integer)[d10|6|] integralMod10 ((-56) :: Integer)[d10|4|]Id10 Convert a Ÿ to a 7 if it is within the range '0' to '9' , or produce § otherwise.  x =  (I x)W, is a more general version of this function.charD10Maybe '5' Just [d10|5|]charD10Maybe 'a'NothingJd10 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 =  (J x)X, is a more general version of this function.strD10Maybe "5" Just [d10|5|]strD10Maybe "a"NothingstrD10Maybe "58"NothingKd10 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 =  (K x)Y, is a more general version of this function.strD10ListMaybe "5"Just [d10list|5|]strD10ListMaybe "a"NothingstrD10ListMaybe "58"Just [d10list|58|]Ld10 Convert a ‘ to a 7$ if it is less than 10, or produce § otherwise.  x =  (L x)O, Z, and ]- are more general versions of this function. natD10Maybe 5 Just [d10|5|]natD10Maybe 12NothingMd10 Convert an ’ to a 7/ if it is within the range 0 to 9, or produce § otherwise.  x =  (M x)O, [, and ]- are more general versions of this function.integerD10Maybe 5 Just [d10|5|]integerD10Maybe 12NothingintegerD10Maybe (-5)NothingNd10 Convert an £ to a 7/ if it is within the range 0 to 9, or produce § otherwise.  x =  (N x)O, \, and ]- are more general versions of this function. intD10Maybe 5 Just [d10|5|]intD10Maybe 12NothingintD10Maybe (-5)NothingOd10 Construct a 7! from any kind of number with an € instance, or produce §/ if the number falls outside the range 0 to 9.  x =  (O x).Specialized versions of this function include L, M, and N.], is a more general version of this function.integralD10Maybe (5 :: Integer) Just [d10|5|] integralD10Maybe (12 :: Integer)Nothing"integralD10Maybe ((-5) :: Integer)NothingPd10 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"Qd10 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"Rd10 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|]Sd10 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"Td10 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"Ud10 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"Vd10'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"Wd10 Convert a Ÿ to a 7 if it is within the range '0' to '9', or ©! with an error message otherwise.I+ 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)Xd10 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.J+ 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)Yd10 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.K+ 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|]Zd10 Convert a ‘ to a 7 if it is less than 10, or ©! with an error message otherwise.L+ is a specialized version of this function.], 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)[d10 Convert an ’ to a 7' if it is within the range 0 to 9, or ©! with an error message otherwise.M+ is a specialized version of this function.], 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)\d10 Convert an £ to a 7' if it is within the range 0 to 9, or ©! with an error message otherwise.N+ is a specialized version of this function.], 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)]d10'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.L, M, N, O, Z, [, and \/ 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)?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]?IPW@JQXKRYALSZEBMT[FCNU\GDOV]H  Trustworthy 038:;<Ωμ`•^d10Produces 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 d10/, a quasi-quoter which does something similar._d10Produces 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 d10list/, a quasi-quoter which does something similar.`d10Η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 d10 quasi-quoter instead.ad10Ο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 d10list quasi-quoter instead.^_`a^_`a Safe 038:;<ΩμeΎbd10A single base-10 digit.ΙThis quasi-quoter, when used as an expression, produces a value of type D10.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...cd10A list of base-10 digits.ΙThis quasi-quoter, when used as an expression, produces a value of type [D10].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...bcbcSafe 038:;<Ωμeλ&7?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc&7bc^_`a?IPW@JQXKRYALSZEBMT[FCNU\GDOV]H Safe 038:;<Ωμg†dd10Addition modulo 10.[d10|2|] + [d10|3|][d10|5|][d10|6|] + [d10|7|][d10|3|]ed10Subtraction modulo 10.[d10|7|] - [d10|5|][d10|2|][d10|3|] - [d10|7|][d10|6|]fd10Multiplication modulo 10.[d10|2|] * [d10|4|][d10|8|][d10|7|] * [d10|8|][d10|6|]defdef Safe 038:;<Ωμht gd10A whole number between 0 and 9hd10Zeroid10Onejd10Twokd10Threeld10Fourmd10Fivend10Sixod10Sevenpd10Eightqd10Nine gihjklmnopq gihjklmnopq Safe 038:;<Ω슾zd10 Convert a g to its underlying Ÿ representation. d10Char D7'7'{d10 Convert a g to a  . { x = [z x] d10Str D7"7"|d10 Convert a g to a ‘., is a more general version of this function. d10Nat D77}d10 Convert a g to an ’., is a more general version of this function. d10Integer D77~d10 Convert a g to an £., is a more general version of this function. d10Int D77d10 Convert a g to any kind of number with a ¦ instance..Specialized versions of this function include |, }, and ~.d10Num D7 :: Integer7€d10The g4 which is uniquely congruent modulo 10 to the given ‘.ƒ, is a more general version of this function. natMod10 56D6d10The g4 which is uniquely congruent modulo 10 to the given ’.ƒ, is a more general version of this function.integerMod10 56D6integerMod10 (-56)D4‚d10The 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 €, , and ‚.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)z{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜z„‹’{…Œ“†”|‡Ž•€}ˆ–~‰—‚Š‘˜ƒSafe 038:;<ΩμŽ™d10Produces an expression of type [D10]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 D10 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.™š™šSafe 038:;<Ω쐆›d10A list of base-10 digits.ΙThis quasi-quoter, when used as an expression, produces a value of type [D10]. [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...››Safe 038:;<Ω쐳-gihjklmnopqz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›-gihjklmnopq›™šz„‹’{…Œ“†”|‡Ž•€}ˆ–~‰—‚Š‘˜ƒSafe 038:;<Ωμ’(œd10Addition modulo 10.D2 + D3D5D6 + D7D3d10Subtraction modulo 10.D7 - D5D2D3 - D7D6žd10Multiplication modulo 10.D2 * D4D8D7 * D8D6œžœžͺ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF G H I J K  L M N  O P Q R S T U V W X $ # % & " Y Z ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E FHJLMN[\]^_`^abcde[\f^gh^ij^ik^lm^no^pqςd10-1.0.1.2-inplace D10.PredicateD10.Num.UnsafeD10.Num.ConversionsD10.Num.SplicesD10.Num.QuotesD10.Num.ArithmeticD10.Char.UnsafeD10.Char.ConversionsD10.Char.SplicesD10.Char.QuotesD10.Char.Arithmetic D10.Safe.TypeD10.Safe.ConversionsD10.Safe.SplicesD10.Safe.QuotesD10.Safe.Arithmetic D10.Num.Type Data.MaybeisJustisD10Str isD10ListStr isD10IntegralD10.Num D10.Char.TypeD10.Char isD10CharisD10Nat isD10IntegerisD10Intd10listD10.SafeD10 D10_Unsafe $fShowD10 $fEnumD10 $fBoundedD10$fEqD10$fOrdD10 $fHashableD10d10Chard10Strd10Nat d10Integerd10Intd10NumnatMod10 integerMod10intMod10 integralMod10 charD10Maybe strD10MaybestrD10ListMaybe natD10MaybeintegerD10Maybe intD10MaybeintegralD10Maybe charD10Either strD10EitherstrD10ListEither natD10EitherintegerD10Either intD10EitherintegralD10Either charD10Fail strD10FailstrD10ListFail natD10FailintegerD10Fail intD10FailintegralD10Faild10Exp d10ListExpd10Pat d10ListPatd10+-*D0D1D2D3D4D5D6D7D8D9 $fDataD10 $fGenericD10ghc-prim GHC.TypesCharbaseGHC.BaseString GHC.NaturalNaturalinteger-wired-inGHC.Integer.TypeIntegerIntGHC.RealIntegralGHC.Num fromIntegerNum GHC.MaybeNothing Data.EitherLeftControl.Monad.Failfail