{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE Safe #-}
{-# LANGUAGE TypeApplications #-}
module Data.Char.Emoji.Hand
( SingleCharHandGesture
( WavingHand,
RaisedBackOfHand,
RaisedHand,
VulcanSalute,
OkHandSign,
PinchedFingers,
PinchingHand,
CrossedFingers,
LoveYouGesture,
SignOfTheHorns,
CallMeHand
),
MultiCharHandGesture,
pattern FingersCrossed,
pattern SpockHand,
pattern HornsSign,
)
where
import Control.DeepSeq (NFData)
import Data.Char.Core (UnicodeCharacter (fromUnicodeChar, isInCharRange, toUnicodeChar), UnicodeText (fromUnicodeText, isInTextRange, toUnicodeText), generateIsInTextRange')
import Data.Char.Emoji.SkinColor (WithSkinColorModifierUnicodeText)
import Data.Data (Data)
import Data.Hashable (Hashable)
import GHC.Generics (Generic)
import Test.QuickCheck.Arbitrary (Arbitrary (arbitrary), arbitraryBoundedEnum)
data SingleCharHandGesture
=
WavingHand
|
RaisedBackOfHand
|
RaisedHand
|
VulcanSalute
|
OkHandSign
|
PinchedFingers
|
PinchingHand
|
CrossedFingers
|
LoveYouGesture
|
SignOfTheHorns
|
CallMeHand
|
MiddleFinger
|
ThumbsUp
|
ThumbsDown
|
RaisedFist
|
FistedHand
deriving (SingleCharHandGesture
forall a. a -> a -> Bounded a
maxBound :: SingleCharHandGesture
$cmaxBound :: SingleCharHandGesture
minBound :: SingleCharHandGesture
$cminBound :: SingleCharHandGesture
Bounded, Typeable SingleCharHandGesture
SingleCharHandGesture -> DataType
SingleCharHandGesture -> Constr
(forall b. Data b => b -> b)
-> SingleCharHandGesture -> SingleCharHandGesture
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) -> SingleCharHandGesture -> u
forall u.
(forall d. Data d => d -> u) -> SingleCharHandGesture -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SingleCharHandGesture -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SingleCharHandGesture -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SingleCharHandGesture
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> SingleCharHandGesture
-> c SingleCharHandGesture
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SingleCharHandGesture)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SingleCharHandGesture)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SingleCharHandGesture -> m SingleCharHandGesture
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SingleCharHandGesture -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SingleCharHandGesture -> u
gmapQ :: forall u.
(forall d. Data d => d -> u) -> SingleCharHandGesture -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> SingleCharHandGesture -> [u]
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SingleCharHandGesture -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SingleCharHandGesture -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SingleCharHandGesture -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SingleCharHandGesture -> r
gmapT :: (forall b. Data b => b -> b)
-> SingleCharHandGesture -> SingleCharHandGesture
$cgmapT :: (forall b. Data b => b -> b)
-> SingleCharHandGesture -> SingleCharHandGesture
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SingleCharHandGesture)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SingleCharHandGesture)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SingleCharHandGesture)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SingleCharHandGesture)
dataTypeOf :: SingleCharHandGesture -> DataType
$cdataTypeOf :: SingleCharHandGesture -> DataType
toConstr :: SingleCharHandGesture -> Constr
$ctoConstr :: SingleCharHandGesture -> Constr
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SingleCharHandGesture
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SingleCharHandGesture
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> SingleCharHandGesture
-> c SingleCharHandGesture
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> SingleCharHandGesture
-> c SingleCharHandGesture
Data, Int -> SingleCharHandGesture
SingleCharHandGesture -> Int
SingleCharHandGesture -> [SingleCharHandGesture]
SingleCharHandGesture -> SingleCharHandGesture
SingleCharHandGesture
-> SingleCharHandGesture -> [SingleCharHandGesture]
SingleCharHandGesture
-> SingleCharHandGesture
-> SingleCharHandGesture
-> [SingleCharHandGesture]
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 :: SingleCharHandGesture
-> SingleCharHandGesture
-> SingleCharHandGesture
-> [SingleCharHandGesture]
$cenumFromThenTo :: SingleCharHandGesture
-> SingleCharHandGesture
-> SingleCharHandGesture
-> [SingleCharHandGesture]
enumFromTo :: SingleCharHandGesture
-> SingleCharHandGesture -> [SingleCharHandGesture]
$cenumFromTo :: SingleCharHandGesture
-> SingleCharHandGesture -> [SingleCharHandGesture]
enumFromThen :: SingleCharHandGesture
-> SingleCharHandGesture -> [SingleCharHandGesture]
$cenumFromThen :: SingleCharHandGesture
-> SingleCharHandGesture -> [SingleCharHandGesture]
enumFrom :: SingleCharHandGesture -> [SingleCharHandGesture]
$cenumFrom :: SingleCharHandGesture -> [SingleCharHandGesture]
fromEnum :: SingleCharHandGesture -> Int
$cfromEnum :: SingleCharHandGesture -> Int
toEnum :: Int -> SingleCharHandGesture
$ctoEnum :: Int -> SingleCharHandGesture
pred :: SingleCharHandGesture -> SingleCharHandGesture
$cpred :: SingleCharHandGesture -> SingleCharHandGesture
succ :: SingleCharHandGesture -> SingleCharHandGesture
$csucc :: SingleCharHandGesture -> SingleCharHandGesture
Enum, SingleCharHandGesture -> SingleCharHandGesture -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
$c/= :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
== :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
$c== :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
Eq, forall x. Rep SingleCharHandGesture x -> SingleCharHandGesture
forall x. SingleCharHandGesture -> Rep SingleCharHandGesture x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SingleCharHandGesture x -> SingleCharHandGesture
$cfrom :: forall x. SingleCharHandGesture -> Rep SingleCharHandGesture x
Generic, Eq SingleCharHandGesture
SingleCharHandGesture -> SingleCharHandGesture -> Bool
SingleCharHandGesture -> SingleCharHandGesture -> Ordering
SingleCharHandGesture
-> SingleCharHandGesture -> SingleCharHandGesture
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 :: SingleCharHandGesture
-> SingleCharHandGesture -> SingleCharHandGesture
$cmin :: SingleCharHandGesture
-> SingleCharHandGesture -> SingleCharHandGesture
max :: SingleCharHandGesture
-> SingleCharHandGesture -> SingleCharHandGesture
$cmax :: SingleCharHandGesture
-> SingleCharHandGesture -> SingleCharHandGesture
>= :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
$c>= :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
> :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
$c> :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
<= :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
$c<= :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
< :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
$c< :: SingleCharHandGesture -> SingleCharHandGesture -> Bool
compare :: SingleCharHandGesture -> SingleCharHandGesture -> Ordering
$ccompare :: SingleCharHandGesture -> SingleCharHandGesture -> Ordering
Ord, ReadPrec [SingleCharHandGesture]
ReadPrec SingleCharHandGesture
Int -> ReadS SingleCharHandGesture
ReadS [SingleCharHandGesture]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SingleCharHandGesture]
$creadListPrec :: ReadPrec [SingleCharHandGesture]
readPrec :: ReadPrec SingleCharHandGesture
$creadPrec :: ReadPrec SingleCharHandGesture
readList :: ReadS [SingleCharHandGesture]
$creadList :: ReadS [SingleCharHandGesture]
readsPrec :: Int -> ReadS SingleCharHandGesture
$creadsPrec :: Int -> ReadS SingleCharHandGesture
Read, Int -> SingleCharHandGesture -> ShowS
[SingleCharHandGesture] -> ShowS
SingleCharHandGesture -> [Char]
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
showList :: [SingleCharHandGesture] -> ShowS
$cshowList :: [SingleCharHandGesture] -> ShowS
show :: SingleCharHandGesture -> [Char]
$cshow :: SingleCharHandGesture -> [Char]
showsPrec :: Int -> SingleCharHandGesture -> ShowS
$cshowsPrec :: Int -> SingleCharHandGesture -> ShowS
Show)
instance Arbitrary SingleCharHandGesture where
arbitrary :: Gen SingleCharHandGesture
arbitrary = forall a. (Bounded a, Enum a) => Gen a
arbitraryBoundedEnum
instance Hashable SingleCharHandGesture
instance NFData SingleCharHandGesture
instance UnicodeCharacter SingleCharHandGesture where
toUnicodeChar :: SingleCharHandGesture -> Char
toUnicodeChar SingleCharHandGesture
WavingHand = Char
'\x1f44b'
toUnicodeChar SingleCharHandGesture
RaisedBackOfHand = Char
'\x1f91a'
toUnicodeChar SingleCharHandGesture
RaisedHand = Char
'\x270b'
toUnicodeChar SingleCharHandGesture
VulcanSalute = Char
'\x1f596'
toUnicodeChar SingleCharHandGesture
OkHandSign = Char
'\x1f44c'
toUnicodeChar SingleCharHandGesture
PinchedFingers = Char
'\x1f90c'
toUnicodeChar SingleCharHandGesture
PinchingHand = Char
'\x1f90f'
toUnicodeChar SingleCharHandGesture
CrossedFingers = Char
'\x1f91e'
toUnicodeChar SingleCharHandGesture
LoveYouGesture = Char
'\x1f91f'
toUnicodeChar SingleCharHandGesture
SignOfTheHorns = Char
'\x1f918'
toUnicodeChar SingleCharHandGesture
CallMeHand = Char
'\x1f919'
toUnicodeChar SingleCharHandGesture
MiddleFinger = Char
'\x1f595'
toUnicodeChar SingleCharHandGesture
ThumbsUp = Char
'\x1f44d'
toUnicodeChar SingleCharHandGesture
ThumbsDown = Char
'\x1f44e'
toUnicodeChar SingleCharHandGesture
RaisedFist = Char
'\x270a'
toUnicodeChar SingleCharHandGesture
FistedHand = Char
'\x1f44a'
fromUnicodeChar :: Char -> Maybe SingleCharHandGesture
fromUnicodeChar Char
'\x1f44b' = forall a. a -> Maybe a
Just SingleCharHandGesture
WavingHand
fromUnicodeChar Char
'\x1f91a' = forall a. a -> Maybe a
Just SingleCharHandGesture
RaisedBackOfHand
fromUnicodeChar Char
'\x270b' = forall a. a -> Maybe a
Just SingleCharHandGesture
RaisedHand
fromUnicodeChar Char
'\x1f596' = forall a. a -> Maybe a
Just SingleCharHandGesture
VulcanSalute
fromUnicodeChar Char
'\x1f44c' = forall a. a -> Maybe a
Just SingleCharHandGesture
OkHandSign
fromUnicodeChar Char
'\x1f90c' = forall a. a -> Maybe a
Just SingleCharHandGesture
PinchedFingers
fromUnicodeChar Char
'\x1f90f' = forall a. a -> Maybe a
Just SingleCharHandGesture
PinchingHand
fromUnicodeChar Char
'\x1f91e' = forall a. a -> Maybe a
Just SingleCharHandGesture
CrossedFingers
fromUnicodeChar Char
'\x1f91f' = forall a. a -> Maybe a
Just SingleCharHandGesture
LoveYouGesture
fromUnicodeChar Char
'\x1f918' = forall a. a -> Maybe a
Just SingleCharHandGesture
SignOfTheHorns
fromUnicodeChar Char
'\x1f919' = forall a. a -> Maybe a
Just SingleCharHandGesture
CallMeHand
fromUnicodeChar Char
'\x1f595' = forall a. a -> Maybe a
Just SingleCharHandGesture
MiddleFinger
fromUnicodeChar Char
'\x1f44d' = forall a. a -> Maybe a
Just SingleCharHandGesture
ThumbsUp
fromUnicodeChar Char
'\x1f44e' = forall a. a -> Maybe a
Just SingleCharHandGesture
ThumbsDown
fromUnicodeChar Char
'\x270a' = forall a. a -> Maybe a
Just SingleCharHandGesture
RaisedFist
fromUnicodeChar Char
'\x1f44a' = forall a. a -> Maybe a
Just SingleCharHandGesture
FistedHand
fromUnicodeChar Char
_ = forall a. Maybe a
Nothing
isInCharRange :: Char -> Bool
isInCharRange Char
'\x1f44b' = Bool
True
isInCharRange Char
'\x1f91a' = Bool
True
isInCharRange Char
'\x270b' = Bool
True
isInCharRange Char
'\x1f596' = Bool
True
isInCharRange Char
'\x1f44c' = Bool
True
isInCharRange Char
'\x1f90c' = Bool
True
isInCharRange Char
'\x1f90f' = Bool
True
isInCharRange Char
'\x1f91e' = Bool
True
isInCharRange Char
'\x1f91f' = Bool
True
isInCharRange Char
'\x1f918' = Bool
True
isInCharRange Char
'\x1f919' = Bool
True
isInCharRange Char
'\x1f595' = Bool
True
isInCharRange Char
'\x1f44d' = Bool
True
isInCharRange Char
'\x1f44e' = Bool
True
isInCharRange Char
'\x270a' = Bool
True
isInCharRange Char
'\x1f44a' = Bool
True
isInCharRange Char
_ = Bool
False
instance UnicodeText SingleCharHandGesture where
isInTextRange :: Text -> Bool
isInTextRange = forall a. UnicodeCharacter a => Text -> Bool
generateIsInTextRange' @SingleCharHandGesture
instance WithSkinColorModifierUnicodeText SingleCharHandGesture
data MultiCharHandGesture
=
RaisedHandWithFingersSplayed
|
VictoryHand
deriving (MultiCharHandGesture
forall a. a -> a -> Bounded a
maxBound :: MultiCharHandGesture
$cmaxBound :: MultiCharHandGesture
minBound :: MultiCharHandGesture
$cminBound :: MultiCharHandGesture
Bounded, Typeable MultiCharHandGesture
MultiCharHandGesture -> DataType
MultiCharHandGesture -> Constr
(forall b. Data b => b -> b)
-> MultiCharHandGesture -> MultiCharHandGesture
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) -> MultiCharHandGesture -> u
forall u.
(forall d. Data d => d -> u) -> MultiCharHandGesture -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MultiCharHandGesture -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MultiCharHandGesture -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MultiCharHandGesture
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MultiCharHandGesture
-> c MultiCharHandGesture
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MultiCharHandGesture)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MultiCharHandGesture)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MultiCharHandGesture -> m MultiCharHandGesture
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MultiCharHandGesture -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MultiCharHandGesture -> u
gmapQ :: forall u.
(forall d. Data d => d -> u) -> MultiCharHandGesture -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> MultiCharHandGesture -> [u]
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MultiCharHandGesture -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MultiCharHandGesture -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MultiCharHandGesture -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MultiCharHandGesture -> r
gmapT :: (forall b. Data b => b -> b)
-> MultiCharHandGesture -> MultiCharHandGesture
$cgmapT :: (forall b. Data b => b -> b)
-> MultiCharHandGesture -> MultiCharHandGesture
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MultiCharHandGesture)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MultiCharHandGesture)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MultiCharHandGesture)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MultiCharHandGesture)
dataTypeOf :: MultiCharHandGesture -> DataType
$cdataTypeOf :: MultiCharHandGesture -> DataType
toConstr :: MultiCharHandGesture -> Constr
$ctoConstr :: MultiCharHandGesture -> Constr
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MultiCharHandGesture
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MultiCharHandGesture
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MultiCharHandGesture
-> c MultiCharHandGesture
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> MultiCharHandGesture
-> c MultiCharHandGesture
Data, Int -> MultiCharHandGesture
MultiCharHandGesture -> Int
MultiCharHandGesture -> [MultiCharHandGesture]
MultiCharHandGesture -> MultiCharHandGesture
MultiCharHandGesture
-> MultiCharHandGesture -> [MultiCharHandGesture]
MultiCharHandGesture
-> MultiCharHandGesture
-> MultiCharHandGesture
-> [MultiCharHandGesture]
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 :: MultiCharHandGesture
-> MultiCharHandGesture
-> MultiCharHandGesture
-> [MultiCharHandGesture]
$cenumFromThenTo :: MultiCharHandGesture
-> MultiCharHandGesture
-> MultiCharHandGesture
-> [MultiCharHandGesture]
enumFromTo :: MultiCharHandGesture
-> MultiCharHandGesture -> [MultiCharHandGesture]
$cenumFromTo :: MultiCharHandGesture
-> MultiCharHandGesture -> [MultiCharHandGesture]
enumFromThen :: MultiCharHandGesture
-> MultiCharHandGesture -> [MultiCharHandGesture]
$cenumFromThen :: MultiCharHandGesture
-> MultiCharHandGesture -> [MultiCharHandGesture]
enumFrom :: MultiCharHandGesture -> [MultiCharHandGesture]
$cenumFrom :: MultiCharHandGesture -> [MultiCharHandGesture]
fromEnum :: MultiCharHandGesture -> Int
$cfromEnum :: MultiCharHandGesture -> Int
toEnum :: Int -> MultiCharHandGesture
$ctoEnum :: Int -> MultiCharHandGesture
pred :: MultiCharHandGesture -> MultiCharHandGesture
$cpred :: MultiCharHandGesture -> MultiCharHandGesture
succ :: MultiCharHandGesture -> MultiCharHandGesture
$csucc :: MultiCharHandGesture -> MultiCharHandGesture
Enum, MultiCharHandGesture -> MultiCharHandGesture -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
$c/= :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
== :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
$c== :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
Eq, forall x. Rep MultiCharHandGesture x -> MultiCharHandGesture
forall x. MultiCharHandGesture -> Rep MultiCharHandGesture x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MultiCharHandGesture x -> MultiCharHandGesture
$cfrom :: forall x. MultiCharHandGesture -> Rep MultiCharHandGesture x
Generic, Eq MultiCharHandGesture
MultiCharHandGesture -> MultiCharHandGesture -> Bool
MultiCharHandGesture -> MultiCharHandGesture -> Ordering
MultiCharHandGesture
-> MultiCharHandGesture -> MultiCharHandGesture
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 :: MultiCharHandGesture
-> MultiCharHandGesture -> MultiCharHandGesture
$cmin :: MultiCharHandGesture
-> MultiCharHandGesture -> MultiCharHandGesture
max :: MultiCharHandGesture
-> MultiCharHandGesture -> MultiCharHandGesture
$cmax :: MultiCharHandGesture
-> MultiCharHandGesture -> MultiCharHandGesture
>= :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
$c>= :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
> :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
$c> :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
<= :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
$c<= :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
< :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
$c< :: MultiCharHandGesture -> MultiCharHandGesture -> Bool
compare :: MultiCharHandGesture -> MultiCharHandGesture -> Ordering
$ccompare :: MultiCharHandGesture -> MultiCharHandGesture -> Ordering
Ord, ReadPrec [MultiCharHandGesture]
ReadPrec MultiCharHandGesture
Int -> ReadS MultiCharHandGesture
ReadS [MultiCharHandGesture]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MultiCharHandGesture]
$creadListPrec :: ReadPrec [MultiCharHandGesture]
readPrec :: ReadPrec MultiCharHandGesture
$creadPrec :: ReadPrec MultiCharHandGesture
readList :: ReadS [MultiCharHandGesture]
$creadList :: ReadS [MultiCharHandGesture]
readsPrec :: Int -> ReadS MultiCharHandGesture
$creadsPrec :: Int -> ReadS MultiCharHandGesture
Read, Int -> MultiCharHandGesture -> ShowS
[MultiCharHandGesture] -> ShowS
MultiCharHandGesture -> [Char]
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
showList :: [MultiCharHandGesture] -> ShowS
$cshowList :: [MultiCharHandGesture] -> ShowS
show :: MultiCharHandGesture -> [Char]
$cshow :: MultiCharHandGesture -> [Char]
showsPrec :: Int -> MultiCharHandGesture -> ShowS
$cshowsPrec :: Int -> MultiCharHandGesture -> ShowS
Show)
instance Arbitrary MultiCharHandGesture where
arbitrary :: Gen MultiCharHandGesture
arbitrary = forall a. (Bounded a, Enum a) => Gen a
arbitraryBoundedEnum
instance Hashable MultiCharHandGesture
instance NFData MultiCharHandGesture
instance UnicodeText MultiCharHandGesture where
toUnicodeText :: MultiCharHandGesture -> Text
toUnicodeText MultiCharHandGesture
RaisedHandWithFingersSplayed = Text
"\x1f590\xfe0f"
toUnicodeText MultiCharHandGesture
VictoryHand = Text
"\x270c\xfe0f"
fromUnicodeText :: Text -> Maybe MultiCharHandGesture
fromUnicodeText Text
"\x1f590\xfe0f" = forall a. a -> Maybe a
Just MultiCharHandGesture
RaisedHandWithFingersSplayed
fromUnicodeText Text
"\x270c\xfe0f" = forall a. a -> Maybe a
Just MultiCharHandGesture
VictoryHand
fromUnicodeText Text
_ = forall a. Maybe a
Nothing
isInTextRange :: Text -> Bool
isInTextRange Text
"\x1f590\xfe0f" = Bool
True
isInTextRange Text
"\x270c\xfe0f" = Bool
True
isInTextRange Text
_ = Bool
False
instance WithSkinColorModifierUnicodeText MultiCharHandGesture
pattern FingersCrossed :: SingleCharHandGesture
pattern $bFingersCrossed :: SingleCharHandGesture
$mFingersCrossed :: forall {r}.
SingleCharHandGesture -> ((# #) -> r) -> ((# #) -> r) -> r
FingersCrossed = CrossedFingers
pattern SpockHand :: SingleCharHandGesture
pattern $bSpockHand :: SingleCharHandGesture
$mSpockHand :: forall {r}.
SingleCharHandGesture -> ((# #) -> r) -> ((# #) -> r) -> r
SpockHand = VulcanSalute
pattern HornsSign :: SingleCharHandGesture
pattern $bHornsSign :: SingleCharHandGesture
$mHornsSign :: forall {r}.
SingleCharHandGesture -> ((# #) -> r) -> ((# #) -> r) -> r
HornsSign = SignOfTheHorns