digit-0.5.0: A data-type representing digits 0-9 and other combinations

Safe HaskellNone
LanguageHaskell2010

Data.Digit.Integral

Synopsis

Documentation

integralBinaryNoZero :: (Integral a, BinaryNoZero d) => Prism' a d Source #

>>> 1 ^? integralBinaryNoZero
Just ()
>>> integralBinaryNoZero # Digit1 :: Integer
1
\c -> c /= 1 ==> (c ^? integralBinaryNoZero == Nothing)

integralBinary :: (Integral a, Binary d) => Prism' a d Source #

>>> 0 ^? integralBinary :: Maybe Digit
Just 0
>>> 1 ^? integralBinary :: Maybe Digit
Just 1
>>> integralBinary # Digit0 :: Integer
0
>>> integralBinary # Digit1 :: Integer
1
\c -> (c `notElem` [0, 1]) ==> (c ^? integralBinary == Nothing)

integralOctalNoZero :: (Integral a, OctalNoZero d) => Prism' a d Source #

>>> 1 ^? integralOctalNoZero :: Maybe Digit
Just 1
>>> 2 ^? integralOctalNoZero :: Maybe Digit
Just 2
>>> 3 ^? integralOctalNoZero :: Maybe Digit
Just 3
>>> 4 ^? integralOctalNoZero :: Maybe Digit
Just 4
>>> 5 ^? integralOctalNoZero :: Maybe Digit
Just 5
>>> 6 ^? integralOctalNoZero :: Maybe Digit
Just 6
>>> 7 ^? integralOctalNoZero :: Maybe Digit
Just 7
>>> integralOctalNoZero # Digit1 :: Integer
1
>>> integralOctalNoZero # Digit2 :: Integer
2
>>> integralOctalNoZero # Digit3 :: Integer
3
>>> integralOctalNoZero # Digit4 :: Integer
4
>>> integralOctalNoZero # Digit5 :: Integer
5
>>> integralOctalNoZero # Digit6 :: Integer
6
>>> integralOctalNoZero # Digit7 :: Integer
7
\c -> (c `notElem` [1..7]) ==> (c ^? integralOctalNoZero == Nothing)

integralOctal :: (Integral a, Octal d) => Prism' a d Source #

>>> 0 ^? integralOctal :: Maybe Digit
Just 0
>>> 1 ^? integralOctal :: Maybe Digit
Just 1
>>> 2 ^? integralOctal :: Maybe Digit
Just 2
>>> 3 ^? integralOctal :: Maybe Digit
Just 3
>>> 4 ^? integralOctal :: Maybe Digit
Just 4
>>> 5 ^? integralOctal :: Maybe Digit
Just 5
>>> 6 ^? integralOctal :: Maybe Digit
Just 6
>>> 7 ^? integralOctal :: Maybe Digit
Just 7
>>> integralOctal # Digit0 :: Integer
0
>>> integralOctal # Digit1 :: Integer
1
>>> integralOctal # Digit2 :: Integer
2
>>> integralOctal # Digit3 :: Integer
3
>>> integralOctal # Digit4 :: Integer
4
>>> integralOctal # Digit5 :: Integer
5
>>> integralOctal # Digit6 :: Integer
6
>>> integralOctal # Digit7 :: Integer
7
\c -> (c `notElem` [0..7]) ==> (c ^? integralOctal == Nothing)

integralDecimal :: (Integral a, Decimal d) => Prism' a d Source #

>>> 0 ^? integralDecimal :: Maybe Digit
Just 0
>>> 1 ^? integralDecimal :: Maybe Digit
Just 1
>>> 2 ^? integralDecimal :: Maybe Digit
Just 2
>>> 3 ^? integralDecimal :: Maybe Digit
Just 3
>>> 4 ^? integralDecimal :: Maybe Digit
Just 4
>>> 5 ^? integralDecimal :: Maybe Digit
Just 5
>>> 6 ^? integralDecimal :: Maybe Digit
Just 6
>>> 7 ^? integralDecimal :: Maybe Digit
Just 7
>>> 8 ^? integralDecimal :: Maybe Digit
Just 8
>>> 9 ^? integralDecimal :: Maybe Digit
Just 9
>>> integralDecimal # Digit0 :: Integer
0
>>> integralDecimal # Digit1 :: Integer
1
>>> integralDecimal # Digit2 :: Integer
2
>>> integralDecimal # Digit3 :: Integer
3
>>> integralDecimal # Digit4 :: Integer
4
>>> integralDecimal # Digit5 :: Integer
5
>>> integralDecimal # Digit6 :: Integer
6
>>> integralDecimal # Digit7 :: Integer
7
>>> integralDecimal # Digit8 :: Integer
8
>>> integralDecimal # Digit9 :: Integer
9
\c -> (c `notElem` [0..9]) ==> (c ^? integralDecimal == Nothing)

integralDecimalNoZero :: (Integral a, DecimalNoZero d) => Prism' a d Source #

>>> 1 ^? integralDecimalNoZero :: Maybe Digit
Just 1
>>> 2 ^? integralDecimalNoZero :: Maybe Digit
Just 2
>>> 3 ^? integralDecimalNoZero :: Maybe Digit
Just 3
>>> 4 ^? integralDecimalNoZero :: Maybe Digit
Just 4
>>> 5 ^? integralDecimalNoZero :: Maybe Digit
Just 5
>>> 6 ^? integralDecimalNoZero :: Maybe Digit
Just 6
>>> 7 ^? integralDecimalNoZero :: Maybe Digit
Just 7
>>> 8 ^? integralDecimalNoZero :: Maybe Digit
Just 8
>>> 9 ^? integralDecimalNoZero :: Maybe Digit
Just 9
>>> integralDecimalNoZero # Digit1 :: Integer
1
>>> integralDecimalNoZero # Digit2 :: Integer
2
>>> integralDecimalNoZero # Digit3 :: Integer
3
>>> integralDecimalNoZero # Digit4 :: Integer
4
>>> integralDecimalNoZero # Digit5 :: Integer
5
>>> integralDecimalNoZero # Digit6 :: Integer
6
>>> integralDecimalNoZero # Digit7 :: Integer
7
>>> integralDecimalNoZero # Digit8 :: Integer
8
>>> integralDecimalNoZero # Digit9 :: Integer
9
\c -> (c `notElem` [1..9]) ==> (c ^? integralDecimalNoZero == Nothing)

integralHexadecimalNoZero :: (Integral a, HexadecimalNoZero d) => Prism' a d Source #

>>> 1 ^? integralHexadecimalNoZero :: Maybe Digit
Just 1
>>> 2 ^? integralHexadecimalNoZero :: Maybe Digit
Just 2
>>> 3 ^? integralHexadecimalNoZero :: Maybe Digit
Just 3
>>> 4 ^? integralHexadecimalNoZero :: Maybe Digit
Just 4
>>> 5 ^? integralHexadecimalNoZero :: Maybe Digit
Just 5
>>> 6 ^? integralHexadecimalNoZero :: Maybe Digit
Just 6
>>> 7 ^? integralHexadecimalNoZero :: Maybe Digit
Just 7
>>> 8 ^? integralHexadecimalNoZero :: Maybe Digit
Just 8
>>> 9 ^? integralHexadecimalNoZero :: Maybe Digit
Just 9
>>> 10 ^? integralHexadecimalNoZero :: Maybe Digit
Just a
>>> 11 ^? integralHexadecimalNoZero :: Maybe Digit
Just b
>>> 12 ^? integralHexadecimalNoZero :: Maybe Digit
Just c
>>> 13 ^? integralHexadecimalNoZero :: Maybe Digit
Just d
>>> 14 ^? integralHexadecimalNoZero :: Maybe Digit
Just e
>>> 15 ^? integralHexadecimalNoZero :: Maybe Digit
Just f
>>> integralHexadecimalNoZero # Digit1 :: Integer
1
>>> integralHexadecimalNoZero # Digit2 :: Integer
2
>>> integralHexadecimalNoZero # Digit3 :: Integer
3
>>> integralHexadecimalNoZero # Digit4 :: Integer
4
>>> integralHexadecimalNoZero # Digit5 :: Integer
5
>>> integralHexadecimalNoZero # Digit6 :: Integer
6
>>> integralHexadecimalNoZero # Digit7 :: Integer
7
>>> integralHexadecimalNoZero # Digit8 :: Integer
8
>>> integralHexadecimalNoZero # Digit9 :: Integer
9
>>> integralHexadecimalNoZero # Digita :: Integer
10
>>> integralHexadecimalNoZero # Digitb :: Integer
11
>>> integralHexadecimalNoZero # Digitc :: Integer
12
>>> integralHexadecimalNoZero # Digitd :: Integer
13
>>> integralHexadecimalNoZero # Digite :: Integer
14
>>> integralHexadecimalNoZero # Digitf :: Integer
15
\c -> (c `notElem` [1..15]) ==> (c ^? integralHexadecimalNoZero == Nothing)

integralHexadecimal :: (Integral a, Hexadecimal d) => Prism' a d Source #

>>> 0 ^? integralHexadecimal :: Maybe Digit
Just 0
>>> 1 ^? integralHexadecimal :: Maybe Digit
Just 1
>>> 2 ^? integralHexadecimal :: Maybe Digit
Just 2
>>> 3 ^? integralHexadecimal :: Maybe Digit
Just 3
>>> 4 ^? integralHexadecimal :: Maybe Digit
Just 4
>>> 5 ^? integralHexadecimal :: Maybe Digit
Just 5
>>> 6 ^? integralHexadecimal :: Maybe Digit
Just 6
>>> 7 ^? integralHexadecimal :: Maybe Digit
Just 7
>>> 8 ^? integralHexadecimal :: Maybe Digit
Just 8
>>> 9 ^? integralHexadecimal :: Maybe Digit
Just 9
>>> 10 ^? integralHexadecimal :: Maybe Digit
Just a
>>> 11 ^? integralHexadecimal :: Maybe Digit
Just b
>>> 12 ^? integralHexadecimal :: Maybe Digit
Just c
>>> 13 ^? integralHexadecimal :: Maybe Digit
Just d
>>> 14 ^? integralHexadecimal :: Maybe Digit
Just e
>>> 15 ^? integralHexadecimal :: Maybe Digit
Just f
>>> integralHexadecimal # Digit0 :: Integer
0
>>> integralHexadecimal # Digit1 :: Integer
1
>>> integralHexadecimal # Digit2 :: Integer
2
>>> integralHexadecimal # Digit3 :: Integer
3
>>> integralHexadecimal # Digit4 :: Integer
4
>>> integralHexadecimal # Digit5 :: Integer
5
>>> integralHexadecimal # Digit6 :: Integer
6
>>> integralHexadecimal # Digit7 :: Integer
7
>>> integralHexadecimal # Digit8 :: Integer
8
>>> integralHexadecimal # Digit9 :: Integer
9
>>> integralHexadecimal # Digita :: Integer
10
>>> integralHexadecimal # Digitb :: Integer
11
>>> integralHexadecimal # Digitc :: Integer
12
>>> integralHexadecimal # Digitd :: Integer
13
>>> integralHexadecimal # Digite :: Integer
14
>>> integralHexadecimal # Digitf :: Integer
15
\c -> (c `notElem` [0..15]) ==> (c ^? integralHexadecimal == Nothing)

integralHEXADECIMALNoZero :: (Integral a, HEXADECIMALNoZero d) => Prism' a d Source #

>>> 1 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 1
>>> 2 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 2
>>> 3 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 3
>>> 4 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 4
>>> 5 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 5
>>> 6 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 6
>>> 7 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 7
>>> 8 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 8
>>> 9 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just 9
>>> 10 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just A
>>> 11 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just B
>>> 12 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just C
>>> 13 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just D
>>> 14 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just E
>>> 15 ^? integralHEXADECIMALNoZero :: Maybe Digit
Just F
>>> integralHEXADECIMALNoZero # Digit1 :: Integer
1
>>> integralHEXADECIMALNoZero # Digit2 :: Integer
2
>>> integralHEXADECIMALNoZero # Digit3 :: Integer
3
>>> integralHEXADECIMALNoZero # Digit4 :: Integer
4
>>> integralHEXADECIMALNoZero # Digit5 :: Integer
5
>>> integralHEXADECIMALNoZero # Digit6 :: Integer
6
>>> integralHEXADECIMALNoZero # Digit7 :: Integer
7
>>> integralHEXADECIMALNoZero # Digit8 :: Integer
8
>>> integralHEXADECIMALNoZero # Digit9 :: Integer
9
>>> integralHEXADECIMALNoZero # DigitA :: Integer
10
>>> integralHEXADECIMALNoZero # DigitB :: Integer
11
>>> integralHEXADECIMALNoZero # DigitC :: Integer
12
>>> integralHEXADECIMALNoZero # DigitD :: Integer
13
>>> integralHEXADECIMALNoZero # DigitE :: Integer
14
>>> integralHEXADECIMALNoZero # DigitF :: Integer
15
\c -> (c `notElem` [1..15]) ==> (c ^? integralHEXADECIMALNoZero == Nothing)

integralHEXADECIMAL :: (Integral a, HEXADECIMAL d) => Prism' a d Source #

>>> 0 ^? integralHEXADECIMAL :: Maybe Digit
Just 0
>>> 1 ^? integralHEXADECIMAL :: Maybe Digit
Just 1
>>> 2 ^? integralHEXADECIMAL :: Maybe Digit
Just 2
>>> 3 ^? integralHEXADECIMAL :: Maybe Digit
Just 3
>>> 4 ^? integralHEXADECIMAL :: Maybe Digit
Just 4
>>> 5 ^? integralHEXADECIMAL :: Maybe Digit
Just 5
>>> 6 ^? integralHEXADECIMAL :: Maybe Digit
Just 6
>>> 7 ^? integralHEXADECIMAL :: Maybe Digit
Just 7
>>> 8 ^? integralHEXADECIMAL :: Maybe Digit
Just 8
>>> 9 ^? integralHEXADECIMAL :: Maybe Digit
Just 9
>>> 10 ^? integralHEXADECIMAL :: Maybe Digit
Just A
>>> 11 ^? integralHEXADECIMAL :: Maybe Digit
Just B
>>> 12 ^? integralHEXADECIMAL :: Maybe Digit
Just C
>>> 13 ^? integralHEXADECIMAL :: Maybe Digit
Just D
>>> 14 ^? integralHEXADECIMAL :: Maybe Digit
Just E
>>> 15 ^? integralHEXADECIMAL :: Maybe Digit
Just F
>>> integralHEXADECIMAL # Digit0 :: Integer
0
>>> integralHEXADECIMAL # Digit1 :: Integer
1
>>> integralHEXADECIMAL # Digit2 :: Integer
2
>>> integralHEXADECIMAL # Digit3 :: Integer
3
>>> integralHEXADECIMAL # Digit4 :: Integer
4
>>> integralHEXADECIMAL # Digit5 :: Integer
5
>>> integralHEXADECIMAL # Digit6 :: Integer
6
>>> integralHEXADECIMAL # Digit7 :: Integer
7
>>> integralHEXADECIMAL # Digit8 :: Integer
8
>>> integralHEXADECIMAL # Digit9 :: Integer
9
>>> integralHEXADECIMAL # DigitA :: Integer
10
>>> integralHEXADECIMAL # DigitB :: Integer
11
>>> integralHEXADECIMAL # DigitC :: Integer
12
>>> integralHEXADECIMAL # DigitD :: Integer
13
>>> integralHEXADECIMAL # DigitE :: Integer
14
>>> integralHEXADECIMAL # DigitF :: Integer
15
\c -> (c `notElem` [0..15]) ==> (c ^? integralHEXADECIMAL == Nothing)