taiwan-id
Safe HaskellNone
LanguageHaskell2010

Taiwan.ID.Digit

Synopsis

Documentation

data Digit Source #

Represents a single decimal digit in the range 0 to 9.

Constructors

D0 
D1 
D2 
D3 
D4 
D5 
D6 
D7 
D8 
D9 

Instances

Instances details
Finitary Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Associated Types

type Cardinality Digit 
Instance details

Defined in Taiwan.ID.Digit

type Cardinality Digit = GCardinality (Rep Digit)
Eq Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Methods

(==) :: Digit -> Digit -> Bool #

(/=) :: Digit -> Digit -> Bool #

Ord Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Methods

compare :: Digit -> Digit -> Ordering #

(<) :: Digit -> Digit -> Bool #

(<=) :: Digit -> Digit -> Bool #

(>) :: Digit -> Digit -> Bool #

(>=) :: Digit -> Digit -> Bool #

max :: Digit -> Digit -> Digit #

min :: Digit -> Digit -> Digit #

Bounded Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Enum Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Generic Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Associated Types

type Rep Digit 
Instance details

Defined in Taiwan.ID.Digit

type Rep Digit = D1 ('MetaData "Digit" "Taiwan.ID.Digit" "taiwan-id-0.1.1.4-inplace" 'False) (((C1 ('MetaCons "D0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "D3" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D4" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "D5" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D6" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D7" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "D8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D9" 'PrefixI 'False) (U1 :: Type -> Type)))))

Methods

from :: Digit -> Rep Digit x #

to :: Rep Digit x -> Digit #

Num Digit Source #

Arithmetic modulo 10.

Instance details

Defined in Taiwan.ID.Digit

Read Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Show Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

Methods

showsPrec :: Int -> Digit -> ShowS #

show :: Digit -> String #

showList :: [Digit] -> ShowS #

type Cardinality Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

type Cardinality Digit = GCardinality (Rep Digit)
type Rep Digit Source # 
Instance details

Defined in Taiwan.ID.Digit

type Rep Digit = D1 ('MetaData "Digit" "Taiwan.ID.Digit" "taiwan-id-0.1.1.4-inplace" 'False) (((C1 ('MetaCons "D0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "D3" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D4" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "D5" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D6" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D7" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "D8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D9" 'PrefixI 'False) (U1 :: Type -> Type)))))

fromChar :: Char -> Maybe Digit Source #

Attempts to parse a Digit from a character.

The Char must be a decimal digit in the range 0 to 9.

toChar :: Digit -> Char Source #

Converts a Digit to a decimal digit character.

generate :: MonadRandom m => m Digit Source #

Generates a random digit.

type family FromChar (c :: Char) :: Maybe Digit where ... Source #

Equations

FromChar '0' = 'Just 'D0 
FromChar '1' = 'Just 'D1 
FromChar '2' = 'Just 'D2 
FromChar '3' = 'Just 'D3 
FromChar '4' = 'Just 'D4 
FromChar '5' = 'Just 'D5 
FromChar '6' = 'Just 'D6 
FromChar '7' = 'Just 'D7 
FromChar '8' = 'Just 'D8 
FromChar '9' = 'Just 'D9 
FromChar _1 = 'Nothing :: Maybe Digit 

type family FromNat (n :: Nat) :: Maybe Digit where ... Source #

Equations

FromNat 0 = 'Just 'D0 
FromNat 1 = 'Just 'D1 
FromNat 2 = 'Just 'D2 
FromNat 3 = 'Just 'D3 
FromNat 4 = 'Just 'D4 
FromNat 5 = 'Just 'D5 
FromNat 6 = 'Just 'D6 
FromNat 7 = 'Just 'D7 
FromNat 8 = 'Just 'D8 
FromNat 9 = 'Just 'D9 
FromNat _1 = 'Nothing :: Maybe Digit 

type family ToNat (d :: Digit) :: Nat where ... Source #

Equations

ToNat 'D0 = 0 
ToNat 'D1 = 1 
ToNat 'D2 = 2 
ToNat 'D3 = 3 
ToNat 'D4 = 4 
ToNat 'D5 = 5 
ToNat 'D6 = 6 
ToNat 'D7 = 7 
ToNat 'D8 = 8 
ToNat 'D9 = 9