úÎDG?E$                     ! " # SafeSafeSafeSafeSafe    Safe     Safe     Safe Safe Safe None+*A data type with ten nullary constructors.Catamorphism for Digit.0foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d0 == x00foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d1 == x10foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d2 == x20foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d3 == x30foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d4 == x40foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d5 == x50foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d6 == x60foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d7 == x70foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d8 == x80foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d9 == x9A prism for using Int as Digit. 5 ^? digitJust 5 0 ^? digitJust 0 9 ^? digitJust 9 10 ^? digitNothing (-5) ^? digitNothingA prism for using Char as Digit. '5' ^? digitCJust 5 '0' ^? digitCJust 0 '9' ^? digitCJust 9 'a' ^? digitCNothing '@' ^? digitCNothingA QuasiQuoter for any range of Digit.  digitQ|4| :: Digit 4Vnamed [digitQ|4|] = "four" named [digitQ|$x|] = "not four, " ++ show x ++ " instead"+mod10D x = let y = mod x 10 in [digitQ|$y|]$%&'()*+,- Zero.One.Two.Three.Four.Five.Six.Seven.Eight. Nine. The digit to fold../0123456789:; $%&'()*+,-./0123456789:; None++A data type with nine nullary constructors.Catamorphism for Digit1_9.0foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d1 == x10foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d2 == x20foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d3 == x30foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d4 == x40foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d5 == x50foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d6 == x60foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d7 == x70foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d8 == x80foldDigit1_9 x1 x2 x3 x4 x5 x6 x7 x8 x9 d9 == x9A prism for using Int as Digit1_9. 5 ^? digit1_9Just 5 0 ^? digit1_9Nothing 9 ^? digit1_9Just 910 ^? digit1_9Nothing(-5) ^? digit1_9NothingA prism for using Char as Digit1_9.'5' ^? digitC1_9Just 5'0' ^? digitC1_9Nothing'9' ^? digitC1_9Just 9'x' ^? digitC1_9Nothing'*' ^? digitC1_9NothingA prism for using Digit as Digit1_9.d5 ^? digit1_9digitJust 5d0 ^? digit1_9digitNothingd9 ^? digit1_9digitJust 9d1 ^? digit1_9digitJust 1<=>?@ABCD One.Two.Three.Four.Five.Six.Seven.Eight.Nine. The digit to fold.EFGHIJKLMNO <=>?@ABCDEFGHIJKLMNO None+,A data type with eight nullary constructors.Catamorphism for Digit1_8.-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d1 == x1-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d2 == x2-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d3 == x3-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d4 == x4-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d5 == x5-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d6 == x6-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d7 == x7-foldDigit1_8 x1 x2 x3 x4 x5 x6 x7 x8 d8 == x8 A prism for using Int as Digit1_8. 5 ^? digit1_8Just 5 0 ^? digit1_8Nothing 8 ^? digit1_8Just 8 9 ^? digit1_8Nothing10 ^? digit1_8Nothing(-5) ^? digit1_8Nothing!A prism for using Char as Digit1_8.'5' ^? digitC1_8Just 5'0' ^? digitC1_8Nothing'8' ^? digitC1_8Just 8'9' ^? digitC1_8Nothing'x' ^? digitC1_8Nothing'*' ^? digitC1_8Nothing"A prism for using Digit as Digit1_8.d5 ^? digit1_8digitJust 5d0 ^? digit1_8digitNothingd8 ^? digit1_8digitJust 8d9 ^? digit1_8digitNothingd1 ^? digit1_8digitJust 1#A prism for using Digit1_9 as Digit1_8.d5 ^? digit1_8digit1_9Just 5d8 ^? digit1_8digit1_9Just 8d9 ^? digit1_8digit1_9Nothingd1 ^? digit1_8digit1_9Just 1PQRSTUVW One.Two.Three.Four.Five.Six.Seven.Eight.The digit to fold. !"#XYZ[\]^_`a !"# !"#PQRSTUVW !"#XYZ[\]^_`aNone$  !"#b  ! " # $ % & ' ( ) * + , - . / 0 1 2 !          3 4 5 6 7 8 9 : ; < = > ? @          A B C D E F G H I J K         L M N O P Q R S T UVdigit_7amhTLpURXy4VWSfS2VZ35 Data.Digit.D9 Data.Digit.D8 Data.Digit.D7 Data.Digit.D6 Data.Digit.D5 Data.Digit.D4 Data.Digit.D3 Data.Digit.D2 Data.Digit.D1 Data.Digit.D0Data.Digit.DigitData.Digit.Digit1_9Data.Digit.Digit1_8 Data.DigitD9d9D8d8D7d7D6d6D5d5D4d4D3d3D2d2D1d1D0d0Digit foldDigitdigitdigitCdigitQDigit1_9 foldDigit1_9digit1_9 digitC1_9 digit1_9digitDigit1_8 foldDigit1_8digit1_8 digitC1_8 digit1_8digitdigit1_8digit1_9dexpdpat $fReadDigit $fShowDigit $fD9Digit $fD8Digit $fD7Digit $fD6Digit $fD5Digit $fD4Digit $fD3Digit $fD2Digit $fD1Digit $fD0Digit$fReadDigit1_9$fShowDigit1_9 $fD9Digit1_9 $fD8Digit1_9 $fD7Digit1_9 $fD6Digit1_9 $fD5Digit1_9 $fD4Digit1_9 $fD3Digit1_9 $fD2Digit1_9 $fD1Digit1_9$fReadDigit1_8$fShowDigit1_8 $fD8Digit1_8 $fD7Digit1_8 $fD6Digit1_8 $fD5Digit1_8 $fD4Digit1_8 $fD3Digit1_8 $fD2Digit1_8 $fD1Digit1_8