module Data.Digit.Enum ( -- * Binary enumBinaryNoZero , enumBinary -- * Octal , enumOctalNoZero , enumOctal -- * Decimal , enumDecimalNoZero , enumDecimal -- * Hexadecimal , enumHexadecimalNoZero , enumHexadecimal -- * HEXADECIMAL , enumHEXADECIMALNoZero , enumHEXADECIMAL ) where import Control.Lens.Review ((#)) import Data.Digit.Binary import Data.Digit.Decimal import Data.Digit.Hexadecimal.LowerCase import Data.Digit.Hexadecimal.UpperCase import Data.Digit.Octal -- | @[1]@ enumBinaryNoZero :: BinaryNoZero d => [d] enumBinaryNoZero = [d1 # ()] -- | @[0, 1]@ enumBinary :: Binary d => [d] enumBinary = [d0 # (), d1 # ()] -- | @[1..7]@ enumOctalNoZero :: OctalNoZero d => [d] enumOctalNoZero = [ d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () ] -- | @[0..7]@ enumOctal :: Octal d => [d] enumOctal = [ d0 # () , d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () ] -- | @[1..9]@ enumDecimalNoZero :: DecimalNoZero d => [d] enumDecimalNoZero = [ d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () , d8 # () , d9 # () ] -- | @[0..9]@ enumDecimal :: Decimal d => [d] enumDecimal = [ d0 # () , d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () , d8 # () , d9 # () ] -- | @[1..9] ++ [a..f]@ enumHexadecimalNoZero :: HexadecimalNoZero d => [d] enumHexadecimalNoZero = [ d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () , d8 # () , d9 # () , da # () , db # () , dc # () , dd # () , de # () , df # () ] -- | @[0..9] ++ [a..f]@ enumHexadecimal :: Hexadecimal d => [d] enumHexadecimal = [ d0 # () , d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () , d8 # () , d9 # () , da # () , db # () , dc # () , dd # () , de # () , df # () ] -- | @[1..9] ++ [A..F]@ enumHEXADECIMALNoZero :: HEXADECIMALNoZero d => [d] enumHEXADECIMALNoZero = [ d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () , d8 # () , d9 # () , dA # () , dB # () , dC # () , dD # () , dE # () , dF # () ] -- | @[0..9] ++ [A..F]@ enumHEXADECIMAL :: HEXADECIMAL d => [d] enumHEXADECIMAL = [ d0 # () , d1 # () , d2 # () , d3 # () , d4 # () , d5 # () , d6 # () , d7 # () , d8 # () , d9 # () , dA # () , dB # () , dC # () , dD # () , dE # () , dF # () ]