Ξυ³h$•G’œ      !"#$%&'()*+,-./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;<Ωμ7d10Determines 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;<Ωμ*Cd10 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)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) !"#$%&'()*+,& '!(")#*$+%, 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./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 d10 quasi-quoter instead.0d10Ο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.-./0-./0Safe 038;<Ωμ5 1d10A 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...2d10A 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...1212Safe 038;<Ωμ55& !"#$%&'()*+,-./012&12-./0& '!(")#*$+%,Safe 038;<Ωμ6Ο3d10Addition modulo 10.[d10|2|] + [d10|3|][d10|5|][d10|6|] + [d10|7|][d10|3|]4d10Subtraction modulo 10.[d10|7|] - [d10|5|][d10|2|][d10|3|] - [d10|7|][d10|6|]5d10Multiplication modulo 10.[d10|2|] * [d10|4|][d10|8|][d10|7|] * [d10|8|][d10|6|]345345Unsafe 038;<ΞΩμ7σ6d10A œ value between '0' and '9'7d10ŸThe constructor's name include the word "unsafe" as a reminder that you should generally avoid using it directly, because it allows constructing invalid 6 values.6767 Trustworthy 038;<Ωμ8&66 Trustworthy 038;<ΩμZψ=d10 Convert a 6 to its underlying œ representation.d10Char [d10|7|]'7'>d10 Convert a 6 to a . > x = [= x]d10Str [d10|7|]"7"?d10 Convert a 6 to a ž.B, is a more general version of this function.d10Nat [d10|7|]7@d10 Convert a 6 to an Ÿ.B, is a more general version of this function.d10Integer [d10|7|]7Ad10 Convert a 6 to an  .B, is a more general version of this function.d10Int [d10|7|]7Bd10 Convert a 6 to any kind of number with a £ instance..Specialized versions of this function include ?, @, and A.d10Num [d10|7|] :: Integer7Cd10The 64 which is uniquely congruent modulo 10 to the given ž.F, is a more general version of this function. natMod10 56[d10|6|]Dd10The 64 which is uniquely congruent modulo 10 to the given Ÿ.F, is a more general version of this function.integerMod10 56[d10|6|]integerMod10 (-56)[d10|4|]Ed10The 64 which is uniquely congruent modulo 10 to the given  .F, is a more general version of this function. intMod10 56[d10|6|]intMod10 (-56)[d10|4|]Fd10The 6ε 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 C, D, and E.integralMod10 (56 :: Integer)[d10|6|] integralMod10 ((-56) :: Integer)[d10|4|]Gd10 Convert a œ to a 6 if it is within the range '0' to '9' , or produce € otherwise.  x =  (G x)U, is a more general version of this function.charD10Maybe '5' Just [d10|5|]charD10Maybe 'a'NothingHd10 Convert a  to a 6Ρ if it consists of exactly one character and that character is within the range '0' to '9', or produce € otherwise.  x =  (H x)V, is a more general version of this function.strD10Maybe "5" Just [d10|5|]strD10Maybe "a"NothingstrD10Maybe "58"NothingId10 Convert a  to a list of 6> if all of the characters in the string are within the range '0' to '9', or produce € otherwise.  x =  (I x)W, is a more general version of this function.strD10ListMaybe "5"Just [d10list|5|]strD10ListMaybe "a"NothingstrD10ListMaybe "58"Just [d10list|58|]Jd10 Convert a ž to a 6$ if it is less than 10, or produce € otherwise.  x =  (J x)M, X, and [- are more general versions of this function. natD10Maybe 5 Just [d10|5|]natD10Maybe 12NothingKd10 Convert an Ÿ to a 6/ if it is within the range 0 to 9, or produce € otherwise.  x =  (K x)M, Y, and [- are more general versions of this function.integerD10Maybe 5 Just [d10|5|]integerD10Maybe 12NothingintegerD10Maybe (-5)NothingLd10 Convert an   to a 6/ if it is within the range 0 to 9, or produce € otherwise.  x =  (L x)M, Z, and [- are more general versions of this function. intD10Maybe 5 Just [d10|5|]intD10Maybe 12NothingintD10Maybe (-5)NothingMd10 Construct a 6! from any kind of number with an ‘ instance, or produce €/ if the number falls outside the range 0 to 9.  x =  (M x).Specialized versions of this function include J, K, and L.[, is a more general version of this function.integralD10Maybe (5 :: Integer) Just [d10|5|] integralD10Maybe (12 :: Integer)Nothing"integralD10Maybe ((-5) :: Integer)NothingNd10 Convert a œ to a 6 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"Od10 Convert a  to a 6Ξ 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"Pd10 Convert a  to a 6? 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|]Qd10 Convert a ž to a 6 if it is less than 10, or ₯! with an error message otherwise.natD10Either 5Right [d10|5|]natD10Either 12Left "d10 must be less than 10"Rd10 Convert an Ÿ to a 6' 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"Sd10 Convert an   to a 6' 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"Td10'Convert a number of a type that has an ‘ instance to a 6) 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"Ud10 Convert a œ to a 6 if it is within the range '0' to '9', or ¦! with an error message otherwise.G+ 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)Vd10 Convert a  to a 6Ξ if it consists of a single character and that character is within the range '0' to '9', or ¦! with an error message otherwise.H+ 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)Wd10 Convert a  to a 6? if all of the characters in the string fall within the range '0' to '9', or ¦" with an error message otherwise.I+ 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|]Xd10 Convert a ž to a 6 if it is less than 10, or ¦! with an error message otherwise.J+ 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)Yd10 Convert an Ÿ to a 6' if it is within the range 0 to 9, or ¦! with an error message otherwise.K+ 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)Zd10 Convert an   to a 6' if it is within the range 0 to 9, or ¦! with an error message otherwise.L+ 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 6) if it falls within the range 0 to 9, or ¦" with an error message otherwise.J, K, L, M, X, Y, and Z/ 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[=GNU>HOVIPW?JQXC@KRYDALSZEBMT[F  Trustworthy 038;<Ωμ`z\d10Produces an expression of type 60 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 [6]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 6 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._d10ΟProduces a pattern that can be used in a splice to match a particular list of 6 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.\]^_\]^_ Safe 038;<Ωμe’`d10A 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...ad10A 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...`a`aSafe 038;<ΩμeΞ&6=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a&6`a\]^_=GNU>HOVIPW?JQXC@KRYDALSZEBMT[F Safe 038;<Ωμghbd10Addition modulo 10.[d10|2|] + [d10|3|][d10|5|][d10|6|] + [d10|7|][d10|3|]cd10Subtraction modulo 10.[d10|7|] - [d10|5|][d10|2|][d10|3|] - [d10|7|][d10|6|]dd10Multiplication modulo 10.[d10|2|] * [d10|4|][d10|8|][d10|7|] * [d10|8|][d10|6|]bcdbcd Safe 038;<ΩμhU ed10A whole number between 0 and 9fd10Zerogd10Onehd10Twoid10Threejd10Fourkd10Fiveld10Sixmd10Sevennd10Eightod10Nine egfhijklmno egfhijklmno Safe 038;<Ω슘wd10 Convert a e to its underlying œ representation. d10Char D7'7'xd10 Convert a e to a . x x = [w x] d10Str D7"7"yd10 Convert a e to a ž.|, is a more general version of this function. d10Nat D77zd10 Convert a e to an Ÿ.|, is a more general version of this function. d10Integer D77{d10 Convert a e to an  .|, is a more general version of this function. d10Int D77|d10 Convert a e to any kind of number with a £ instance..Specialized versions of this function include y, z, and {.d10Num D7 :: Integer7}d10The e4 which is uniquely congruent modulo 10 to the given ž.€, is a more general version of this function. natMod10 56D6~d10The e4 which is uniquely congruent modulo 10 to the given Ÿ.€, is a more general version of this function.integerMod10 56D6integerMod10 (-56)D4d10The e4 which is uniquely congruent modulo 10 to the given  .€, is a more general version of this function. intMod10 56D6intMod10 (-56)D4€d10The eε 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 e 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 eΡ 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 e> 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 e$ 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 e/ 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 e/ 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 e! 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 e 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 eΞ 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 e? 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 e 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 e' 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 e' 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 e) 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 e 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 eΞ 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 e? 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 e 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 e' 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 e' 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 e) 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)wxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•wˆx‚‰ƒŠ‘y„‹’}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;<ΩμX˜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;<Ω쐄-egfhijklmnowxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜-egfhijklmno˜–—wˆx‚‰ƒŠ‘y„‹’}z…Œ“~{†”|‡Ž•€Safe 038;<Ωμ‘ς™d10Addition modulo 10.D2 + D3D5D6 + D7D3šd10Subtraction modulo 10.D7 - D5D2D3 - D7D6›d10Multiplication modulo 10.D2 * D4D8D7 * D8D6™š›™š›§ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM !"#$%&'()*+,-./0123456789:;<=>?@ABCDE F G H I J  K L M  N O P Q R S T U V W $ # % & " X Y ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D EGIKLMZ[\]^_]`abcdZ[e]fg]hi]hj]kl]mn]opρd10-1-BrGaP2ylUvtAn5rUU9LXPo 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$fOrdD10d10Chard10Strd10Nat 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