{-# LANGUAGE DeriveDataTypeable, DeriveGeneric, PatternSynonyms, Safe, TypeApplications #-}
module Data.Char.Emoji.Zodiac (
Zodiac(Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces)
, pattern Ram, pattern Bull, pattern Twins, pattern Crab, pattern Lion, pattern Maiden, pattern Scales, pattern Scorpius, pattern Scorpion
, pattern Centaur, pattern Archer, pattern Capricornus, pattern MountainGoat, pattern GoatHorned, pattern SeaGoat, pattern WaterBearer
, pattern Fish
) where
import Control.DeepSeq(NFData)
import Data.Char.Core(UnicodeCharacter(toUnicodeChar, fromUnicodeChar, fromUnicodeChar', isInCharRange), UnicodeText(isInTextRange), generateIsInTextRange', mapFromEnum, mapToEnum, mapToEnumSafe)
import Data.Data(Data)
import Data.Hashable(Hashable)
import GHC.Generics(Generic)
import Test.QuickCheck.Arbitrary(Arbitrary(arbitrary), arbitraryBoundedEnum)
_zodiacOffset :: Int
_zodiacOffset :: Int
_zodiacOffset = Int
0x2648
data Zodiac
= Aries
| Taurus
| Gemini
| Cancer
| Leo
| Virgo
| Libra
| Scorpio
| Sagittarius
| Capricorn
| Aquarius
| Pisces
deriving (Zodiac
forall a. a -> a -> Bounded a
maxBound :: Zodiac
$cmaxBound :: Zodiac
minBound :: Zodiac
$cminBound :: Zodiac
Bounded, Typeable Zodiac
Zodiac -> DataType
Zodiac -> Constr
(forall b. Data b => b -> b) -> Zodiac -> Zodiac
forall a.
Typeable a
-> (forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> Zodiac -> u
forall u. (forall d. Data d => d -> u) -> Zodiac -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Zodiac -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Zodiac -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Zodiac
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Zodiac -> c Zodiac
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Zodiac)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Zodiac)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Zodiac -> m Zodiac
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Zodiac -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Zodiac -> u
gmapQ :: forall u. (forall d. Data d => d -> u) -> Zodiac -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> Zodiac -> [u]
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Zodiac -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Zodiac -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Zodiac -> r
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Zodiac -> r
gmapT :: (forall b. Data b => b -> b) -> Zodiac -> Zodiac
$cgmapT :: (forall b. Data b => b -> b) -> Zodiac -> Zodiac
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Zodiac)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Zodiac)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Zodiac)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Zodiac)
dataTypeOf :: Zodiac -> DataType
$cdataTypeOf :: Zodiac -> DataType
toConstr :: Zodiac -> Constr
$ctoConstr :: Zodiac -> Constr
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Zodiac
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Zodiac
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Zodiac -> c Zodiac
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Zodiac -> c Zodiac
Data, Int -> Zodiac
Zodiac -> Int
Zodiac -> [Zodiac]
Zodiac -> Zodiac
Zodiac -> Zodiac -> [Zodiac]
Zodiac -> Zodiac -> Zodiac -> [Zodiac]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: Zodiac -> Zodiac -> Zodiac -> [Zodiac]
$cenumFromThenTo :: Zodiac -> Zodiac -> Zodiac -> [Zodiac]
enumFromTo :: Zodiac -> Zodiac -> [Zodiac]
$cenumFromTo :: Zodiac -> Zodiac -> [Zodiac]
enumFromThen :: Zodiac -> Zodiac -> [Zodiac]
$cenumFromThen :: Zodiac -> Zodiac -> [Zodiac]
enumFrom :: Zodiac -> [Zodiac]
$cenumFrom :: Zodiac -> [Zodiac]
fromEnum :: Zodiac -> Int
$cfromEnum :: Zodiac -> Int
toEnum :: Int -> Zodiac
$ctoEnum :: Int -> Zodiac
pred :: Zodiac -> Zodiac
$cpred :: Zodiac -> Zodiac
succ :: Zodiac -> Zodiac
$csucc :: Zodiac -> Zodiac
Enum, Zodiac -> Zodiac -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Zodiac -> Zodiac -> Bool
$c/= :: Zodiac -> Zodiac -> Bool
== :: Zodiac -> Zodiac -> Bool
$c== :: Zodiac -> Zodiac -> Bool
Eq, forall x. Rep Zodiac x -> Zodiac
forall x. Zodiac -> Rep Zodiac x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Zodiac x -> Zodiac
$cfrom :: forall x. Zodiac -> Rep Zodiac x
Generic, Eq Zodiac
Zodiac -> Zodiac -> Bool
Zodiac -> Zodiac -> Ordering
Zodiac -> Zodiac -> Zodiac
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Zodiac -> Zodiac -> Zodiac
$cmin :: Zodiac -> Zodiac -> Zodiac
max :: Zodiac -> Zodiac -> Zodiac
$cmax :: Zodiac -> Zodiac -> Zodiac
>= :: Zodiac -> Zodiac -> Bool
$c>= :: Zodiac -> Zodiac -> Bool
> :: Zodiac -> Zodiac -> Bool
$c> :: Zodiac -> Zodiac -> Bool
<= :: Zodiac -> Zodiac -> Bool
$c<= :: Zodiac -> Zodiac -> Bool
< :: Zodiac -> Zodiac -> Bool
$c< :: Zodiac -> Zodiac -> Bool
compare :: Zodiac -> Zodiac -> Ordering
$ccompare :: Zodiac -> Zodiac -> Ordering
Ord, ReadPrec [Zodiac]
ReadPrec Zodiac
Int -> ReadS Zodiac
ReadS [Zodiac]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Zodiac]
$creadListPrec :: ReadPrec [Zodiac]
readPrec :: ReadPrec Zodiac
$creadPrec :: ReadPrec Zodiac
readList :: ReadS [Zodiac]
$creadList :: ReadS [Zodiac]
readsPrec :: Int -> ReadS Zodiac
$creadsPrec :: Int -> ReadS Zodiac
Read, Int -> Zodiac -> ShowS
[Zodiac] -> ShowS
Zodiac -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Zodiac] -> ShowS
$cshowList :: [Zodiac] -> ShowS
show :: Zodiac -> String
$cshow :: Zodiac -> String
showsPrec :: Int -> Zodiac -> ShowS
$cshowsPrec :: Int -> Zodiac -> ShowS
Show)
instance Arbitrary Zodiac where
arbitrary :: Gen Zodiac
arbitrary = forall a. (Bounded a, Enum a) => Gen a
arbitraryBoundedEnum
instance Hashable Zodiac
instance NFData Zodiac
instance UnicodeCharacter Zodiac where
toUnicodeChar :: Zodiac -> Char
toUnicodeChar = forall a. Enum a => Int -> a -> Char
mapFromEnum Int
_zodiacOffset
fromUnicodeChar :: Char -> Maybe Zodiac
fromUnicodeChar = forall a. (Bounded a, Enum a) => Int -> Char -> Maybe a
mapToEnumSafe Int
_zodiacOffset
fromUnicodeChar' :: Char -> Zodiac
fromUnicodeChar' = forall a. Enum a => Int -> Char -> a
mapToEnum Int
_zodiacOffset
isInCharRange :: Char -> Bool
isInCharRange Char
c = Char
'\x2648' forall a. Ord a => a -> a -> Bool
<= Char
c Bool -> Bool -> Bool
&& Char
c forall a. Ord a => a -> a -> Bool
<= Char
'\x2654'
instance UnicodeText Zodiac where
isInTextRange :: Text -> Bool
isInTextRange = forall a. UnicodeCharacter a => Text -> Bool
generateIsInTextRange' @Zodiac
pattern Ram :: Zodiac
pattern $bRam :: Zodiac
$mRam :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Ram = Aries
pattern Bull :: Zodiac
pattern $bBull :: Zodiac
$mBull :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Bull = Taurus
pattern Twins :: Zodiac
pattern $bTwins :: Zodiac
$mTwins :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Twins = Gemini
pattern Crab :: Zodiac
pattern $bCrab :: Zodiac
$mCrab :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Crab = Cancer
pattern Lion :: Zodiac
pattern $bLion :: Zodiac
$mLion :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Lion = Leo
pattern Maiden :: Zodiac
pattern $bMaiden :: Zodiac
$mMaiden :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Maiden = Virgo
pattern Scales :: Zodiac
pattern $bScales :: Zodiac
$mScales :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Scales = Libra
pattern Scorpius :: Zodiac
pattern $bScorpius :: Zodiac
$mScorpius :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Scorpius = Scorpio
pattern Scorpion :: Zodiac
pattern $bScorpion :: Zodiac
$mScorpion :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Scorpion = Scorpio
pattern Centaur :: Zodiac
pattern $bCentaur :: Zodiac
$mCentaur :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Centaur = Sagittarius
pattern Archer :: Zodiac
pattern $bArcher :: Zodiac
$mArcher :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Archer = Sagittarius
pattern Capricornus :: Zodiac
pattern $bCapricornus :: Zodiac
$mCapricornus :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Capricornus = Capricorn
pattern MountainGoat :: Zodiac
pattern $bMountainGoat :: Zodiac
$mMountainGoat :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
MountainGoat = Capricorn
pattern GoatHorned :: Zodiac
pattern $bGoatHorned :: Zodiac
$mGoatHorned :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
GoatHorned = Capricorn
pattern SeaGoat :: Zodiac
pattern $bSeaGoat :: Zodiac
$mSeaGoat :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
SeaGoat = Capricorn
pattern WaterBearer :: Zodiac
pattern $bWaterBearer :: Zodiac
$mWaterBearer :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
WaterBearer = Aquarius
pattern Fish :: Zodiac
pattern $bFish :: Zodiac
$mFish :: forall {r}. Zodiac -> ((# #) -> r) -> ((# #) -> r) -> r
Fish = Pisces