module Data.Digit.Digit1_9
(
Digit1_9
, foldDigit1_9
, digit1_9
, digitC1_9
, digit1_9digit
) where
import Prelude(Show(..), Read(..), Eq, Enum(..), Maybe(..), Bounded, Ord, Int, Char, (.))
import Data.Digit.Digit(Digit, foldDigit, digit, digitC)
import Data.Digit.D1
import Data.Digit.D2
import Data.Digit.D3
import Data.Digit.D4
import Data.Digit.D5
import Data.Digit.D6
import Data.Digit.D7
import Data.Digit.D8
import Data.Digit.D9
import Control.Lens
data Digit1_9 =
D1
| D2
| D3
| D4
| D5
| D6
| D7
| D8
| D9
deriving (Eq, Ord, Bounded)
foldDigit1_9 ::
a
-> a
-> a
-> a
-> a
-> a
-> a
-> a
-> a
-> Digit1_9
-> a
foldDigit1_9 x1 _ _ _ _ _ _ _ _ D1 =
x1
foldDigit1_9 _ x2 _ _ _ _ _ _ _ D2 =
x2
foldDigit1_9 _ _ x3 _ _ _ _ _ _ D3 =
x3
foldDigit1_9 _ _ _ x4 _ _ _ _ _ D4 =
x4
foldDigit1_9 _ _ _ _ x5 _ _ _ _ D5 =
x5
foldDigit1_9 _ _ _ _ _ x6 _ _ _ D6 =
x6
foldDigit1_9 _ _ _ _ _ _ x7 _ _ D7 =
x7
foldDigit1_9 _ _ _ _ _ _ _ x8 _ D8 =
x8
foldDigit1_9 _ _ _ _ _ _ _ _ x9 D9 =
x9
instance D1 Digit1_9 where
d1 =
D1
instance D2 Digit1_9 where
d2 =
D2
instance D3 Digit1_9 where
d3 =
D3
instance D4 Digit1_9 where
d4 =
D4
instance D5 Digit1_9 where
d5 =
D5
instance D6 Digit1_9 where
d6 =
D6
instance D7 Digit1_9 where
d7 =
D7
instance D8 Digit1_9 where
d8 =
D8
instance D9 Digit1_9 where
d9 =
D9
digit1_9 ::
Prism' Int Digit1_9
digit1_9 =
digit . digit1_9digit
digitC1_9 ::
Prism' Char Digit1_9
digitC1_9 =
digitC . digit1_9digit
digit1_9digit ::
Prism' Digit Digit1_9
digit1_9digit =
prism'
(foldDigit1_9
d1
d2
d3
d4
d5
d6
d7
d8
d9)
(foldDigit
Nothing
(Just D1)
(Just D2)
(Just D3)
(Just D4)
(Just D5)
(Just D6)
(Just D7)
(Just D8)
(Just D9))
instance Show Digit1_9 where
show d =
show (digit1_9 # d)
instance Read Digit1_9 where
readsPrec _ ('1':t) =
[(D1, t)]
readsPrec _ ('2':t) =
[(D2, t)]
readsPrec _ ('3':t) =
[(D3, t)]
readsPrec _ ('4':t) =
[(D4, t)]
readsPrec _ ('5':t) =
[(D5, t)]
readsPrec _ ('6':t) =
[(D6, t)]
readsPrec _ ('7':t) =
[(D7, t)]
readsPrec _ ('8':t) =
[(D8, t)]
readsPrec _ ('9':t) =
[(D9, t)]
readsPrec _ _ =
[]