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

Safe HaskellNone
LanguageHaskell2010

Data.Digit

Contents

Description

A data type with ten nullary constructors [0-9] and combinators.

Synopsis

Data type

data Digit Source #

A data type with ten nullary constructors.

Instances

Bounded Digit Source # 
Enum Digit Source # 
Eq Digit Source # 

Methods

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

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

Data Digit Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Digit -> c Digit #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Digit #

toConstr :: Digit -> Constr #

dataTypeOf :: Digit -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Digit) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Digit) #

gmapT :: (forall b. Data b => b -> b) -> Digit -> Digit #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Digit -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Digit -> r #

gmapQ :: (forall d. Data d => d -> u) -> Digit -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Digit -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Digit -> m Digit #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Digit -> m Digit #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Digit -> m Digit #

Ord Digit Source # 

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 #

Read Digit Source # 
Show Digit Source # 

Methods

showsPrec :: Int -> Digit -> ShowS #

show :: Digit -> String #

showList :: [Digit] -> ShowS #

D9 Digit Source # 

Methods

d9 :: Prism' Digit () Source #

D8 Digit Source # 

Methods

d8 :: Prism' Digit () Source #

D7 Digit Source # 

Methods

d7 :: Prism' Digit () Source #

D6 Digit Source # 

Methods

d6 :: Prism' Digit () Source #

D5 Digit Source # 

Methods

d5 :: Prism' Digit () Source #

D4 Digit Source # 

Methods

d4 :: Prism' Digit () Source #

D3 Digit Source # 

Methods

d3 :: Prism' Digit () Source #

D2 Digit Source # 

Methods

d2 :: Prism' Digit () Source #

D1 Digit Source # 

Methods

d1 :: Prism' Digit () Source #

D0 Digit Source # 

Methods

d0 :: Prism' Digit () Source #

Destructors

foldDigit Source #

Arguments

:: a

Zero.

-> a

One.

-> a

Two.

-> a

Three.

-> a

Four.

-> a

Five.

-> a

Six.

-> a

Seven.

-> a

Eight.

-> a

Nine.

-> Digit

The digit to fold.

-> a 

Catamorphism for Digit.

foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d0 == x0
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d1 == x1
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d2 == x2
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d3 == x3
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d4 == x4
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d5 == x5
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d6 == x6
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d7 == x7
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d8 == x8
foldDigit x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 d9 == x9

Prisms

class D0 d where Source #

Minimal complete definition

d0

Methods

d0 :: Prism' d () Source #

Instances

D0 Digit Source # 

Methods

d0 :: Prism' Digit () Source #

x0 :: D0 d => d Source #

class D1 d where Source #

Minimal complete definition

d1

Methods

d1 :: Prism' d () Source #

Instances

D1 Digit Source # 

Methods

d1 :: Prism' Digit () Source #

x1 :: D1 d => d Source #

class D2 d where Source #

Minimal complete definition

d2

Methods

d2 :: Prism' d () Source #

Instances

D2 Digit Source # 

Methods

d2 :: Prism' Digit () Source #

x2 :: D2 d => d Source #

class D3 d where Source #

Minimal complete definition

d3

Methods

d3 :: Prism' d () Source #

Instances

D3 Digit Source # 

Methods

d3 :: Prism' Digit () Source #

x3 :: D3 d => d Source #

class D4 d where Source #

Minimal complete definition

d4

Methods

d4 :: Prism' d () Source #

Instances

D4 Digit Source # 

Methods

d4 :: Prism' Digit () Source #

x4 :: D4 d => d Source #

class D5 d where Source #

Minimal complete definition

d5

Methods

d5 :: Prism' d () Source #

Instances

D5 Digit Source # 

Methods

d5 :: Prism' Digit () Source #

x5 :: D5 d => d Source #

class D6 d where Source #

Minimal complete definition

d6

Methods

d6 :: Prism' d () Source #

Instances

D6 Digit Source # 

Methods

d6 :: Prism' Digit () Source #

x6 :: D6 d => d Source #

class D7 d where Source #

Minimal complete definition

d7

Methods

d7 :: Prism' d () Source #

Instances

D7 Digit Source # 

Methods

d7 :: Prism' Digit () Source #

x7 :: D7 d => d Source #

class D8 d where Source #

Minimal complete definition

d8

Methods

d8 :: Prism' d () Source #

Instances

D8 Digit Source # 

Methods

d8 :: Prism' Digit () Source #

x8 :: D8 d => d Source #

class D9 d where Source #

Minimal complete definition

d9

Methods

d9 :: Prism' d () Source #

Instances

D9 Digit Source # 

Methods

d9 :: Prism' Digit () Source #

x9 :: D9 d => d Source #

digit :: Prism' Int Digit Source #

A prism for using Int as Digit.

>>> 5 ^? digit
Just 5
>>> 0 ^? digit
Just 0
>>> 9 ^? digit
Just 9
>>> 10 ^? digit
Nothing
>>> (-5) ^? digit
Nothing

digitC :: Prism' Char Digit Source #

A prism for using Char as Digit.

>>> '5' ^? digitC
Just 5
>>> '0' ^? digitC
Just 0
>>> '9' ^? digitC
Just 9
>>> 'a' ^? digitC
Nothing
>>> '@' ^? digitC
Nothing

digitQ :: QuasiQuoter Source #

A QuasiQuoter for any range of Digit.

digitQ|4|
:: Digit 4

named [digitQ|4|] = "four" named [digitQ|$x|] = "not four, " ++ show x ++ " instead"

mod10D x = let y = mod x 10 in [digitQ|$y|]