digit-0.7: src/Data/Digit/Enum.hs
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 # ()
]