-- | Module to allow importing 'FunctionAttribute' distinctly qualified.
module LLVM.AST.FunctionAttribute where

import LLVM.Prelude

-- | <http://llvm.org/docs/LangRef.html#function-attributes>
data FunctionAttribute
    = AllocSize Word32 (Maybe Word32) -- ^ AllocSize 0 (Just 0) is invalid
    | AlwaysInline
    | ArgMemOnly
    | Builtin
    | Cold
    | Convergent
    | InaccessibleMemOnly
    | InaccessibleMemOrArgMemOnly
    | InlineHint
    | JumpTable
    | MinimizeSize
    | MustProgress
    | Naked
    | NoBuiltin
    | NoDuplicate
    | NoFree
    | NoImplicitFloat
    | NoInline
    | NonLazyBind
    | NoRecurse
    | NoRedZone
    | NoReturn
    | NoSync
    | NoUnwind
    | OptimizeForSize
    | OptimizeNone
    | ReadNone
    | ReadOnly
    | ReturnsTwice
    | SafeStack
    | SanitizeAddress
    | SanitizeHWAddress
    | SanitizeMemory
    | SanitizeThread
    | Speculatable
    | StackAlignment Word64
    | StackProtect
    | StackProtectReq
    | StackProtectStrong
    | StrictFP
    | StringAttribute {
        FunctionAttribute -> ShortByteString
stringAttributeKind :: ShortByteString,
        FunctionAttribute -> ShortByteString
stringAttributeValue :: ShortByteString -- ^ Use "" for no value -- the two are conflated
      }
    | UWTable
    | WillReturn
    | WriteOnly
  deriving (FunctionAttribute -> FunctionAttribute -> Bool
(FunctionAttribute -> FunctionAttribute -> Bool)
-> (FunctionAttribute -> FunctionAttribute -> Bool)
-> Eq FunctionAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FunctionAttribute -> FunctionAttribute -> Bool
== :: FunctionAttribute -> FunctionAttribute -> Bool
$c/= :: FunctionAttribute -> FunctionAttribute -> Bool
/= :: FunctionAttribute -> FunctionAttribute -> Bool
Eq, Eq FunctionAttribute
Eq FunctionAttribute
-> (FunctionAttribute -> FunctionAttribute -> Ordering)
-> (FunctionAttribute -> FunctionAttribute -> Bool)
-> (FunctionAttribute -> FunctionAttribute -> Bool)
-> (FunctionAttribute -> FunctionAttribute -> Bool)
-> (FunctionAttribute -> FunctionAttribute -> Bool)
-> (FunctionAttribute -> FunctionAttribute -> FunctionAttribute)
-> (FunctionAttribute -> FunctionAttribute -> FunctionAttribute)
-> Ord FunctionAttribute
FunctionAttribute -> FunctionAttribute -> Bool
FunctionAttribute -> FunctionAttribute -> Ordering
FunctionAttribute -> FunctionAttribute -> FunctionAttribute
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
$ccompare :: FunctionAttribute -> FunctionAttribute -> Ordering
compare :: FunctionAttribute -> FunctionAttribute -> Ordering
$c< :: FunctionAttribute -> FunctionAttribute -> Bool
< :: FunctionAttribute -> FunctionAttribute -> Bool
$c<= :: FunctionAttribute -> FunctionAttribute -> Bool
<= :: FunctionAttribute -> FunctionAttribute -> Bool
$c> :: FunctionAttribute -> FunctionAttribute -> Bool
> :: FunctionAttribute -> FunctionAttribute -> Bool
$c>= :: FunctionAttribute -> FunctionAttribute -> Bool
>= :: FunctionAttribute -> FunctionAttribute -> Bool
$cmax :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
max :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
$cmin :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
min :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
Ord, ReadPrec [FunctionAttribute]
ReadPrec FunctionAttribute
Int -> ReadS FunctionAttribute
ReadS [FunctionAttribute]
(Int -> ReadS FunctionAttribute)
-> ReadS [FunctionAttribute]
-> ReadPrec FunctionAttribute
-> ReadPrec [FunctionAttribute]
-> Read FunctionAttribute
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS FunctionAttribute
readsPrec :: Int -> ReadS FunctionAttribute
$creadList :: ReadS [FunctionAttribute]
readList :: ReadS [FunctionAttribute]
$creadPrec :: ReadPrec FunctionAttribute
readPrec :: ReadPrec FunctionAttribute
$creadListPrec :: ReadPrec [FunctionAttribute]
readListPrec :: ReadPrec [FunctionAttribute]
Read, Int -> FunctionAttribute -> ShowS
[FunctionAttribute] -> ShowS
FunctionAttribute -> String
(Int -> FunctionAttribute -> ShowS)
-> (FunctionAttribute -> String)
-> ([FunctionAttribute] -> ShowS)
-> Show FunctionAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FunctionAttribute -> ShowS
showsPrec :: Int -> FunctionAttribute -> ShowS
$cshow :: FunctionAttribute -> String
show :: FunctionAttribute -> String
$cshowList :: [FunctionAttribute] -> ShowS
showList :: [FunctionAttribute] -> ShowS
Show, Typeable, Typeable FunctionAttribute
Typeable FunctionAttribute
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> FunctionAttribute
    -> c FunctionAttribute)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c FunctionAttribute)
-> (FunctionAttribute -> Constr)
-> (FunctionAttribute -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c FunctionAttribute))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c FunctionAttribute))
-> ((forall b. Data b => b -> b)
    -> FunctionAttribute -> FunctionAttribute)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> FunctionAttribute -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> FunctionAttribute -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> FunctionAttribute -> m FunctionAttribute)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> FunctionAttribute -> m FunctionAttribute)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> FunctionAttribute -> m FunctionAttribute)
-> Data FunctionAttribute
FunctionAttribute -> Constr
FunctionAttribute -> DataType
(forall b. Data b => b -> b)
-> FunctionAttribute -> FunctionAttribute
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) -> FunctionAttribute -> u
forall u. (forall d. Data d => d -> u) -> FunctionAttribute -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FunctionAttribute
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FunctionAttribute -> c FunctionAttribute
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c FunctionAttribute)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FunctionAttribute)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FunctionAttribute -> c FunctionAttribute
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FunctionAttribute -> c FunctionAttribute
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FunctionAttribute
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FunctionAttribute
$ctoConstr :: FunctionAttribute -> Constr
toConstr :: FunctionAttribute -> Constr
$cdataTypeOf :: FunctionAttribute -> DataType
dataTypeOf :: FunctionAttribute -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c FunctionAttribute)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c FunctionAttribute)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FunctionAttribute)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FunctionAttribute)
$cgmapT :: (forall b. Data b => b -> b)
-> FunctionAttribute -> FunctionAttribute
gmapT :: (forall b. Data b => b -> b)
-> FunctionAttribute -> FunctionAttribute
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> FunctionAttribute -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> FunctionAttribute -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> FunctionAttribute -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> FunctionAttribute -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
Data, (forall x. FunctionAttribute -> Rep FunctionAttribute x)
-> (forall x. Rep FunctionAttribute x -> FunctionAttribute)
-> Generic FunctionAttribute
forall x. Rep FunctionAttribute x -> FunctionAttribute
forall x. FunctionAttribute -> Rep FunctionAttribute x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FunctionAttribute -> Rep FunctionAttribute x
from :: forall x. FunctionAttribute -> Rep FunctionAttribute x
$cto :: forall x. Rep FunctionAttribute x -> FunctionAttribute
to :: forall x. Rep FunctionAttribute x -> FunctionAttribute
Generic)

-- | <http://llvm.org/docs/LangRef.html#attribute-groups>
newtype GroupID = GroupID Word
  deriving (GroupID -> GroupID -> Bool
(GroupID -> GroupID -> Bool)
-> (GroupID -> GroupID -> Bool) -> Eq GroupID
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GroupID -> GroupID -> Bool
== :: GroupID -> GroupID -> Bool
$c/= :: GroupID -> GroupID -> Bool
/= :: GroupID -> GroupID -> Bool
Eq, Eq GroupID
Eq GroupID
-> (GroupID -> GroupID -> Ordering)
-> (GroupID -> GroupID -> Bool)
-> (GroupID -> GroupID -> Bool)
-> (GroupID -> GroupID -> Bool)
-> (GroupID -> GroupID -> Bool)
-> (GroupID -> GroupID -> GroupID)
-> (GroupID -> GroupID -> GroupID)
-> Ord GroupID
GroupID -> GroupID -> Bool
GroupID -> GroupID -> Ordering
GroupID -> GroupID -> GroupID
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
$ccompare :: GroupID -> GroupID -> Ordering
compare :: GroupID -> GroupID -> Ordering
$c< :: GroupID -> GroupID -> Bool
< :: GroupID -> GroupID -> Bool
$c<= :: GroupID -> GroupID -> Bool
<= :: GroupID -> GroupID -> Bool
$c> :: GroupID -> GroupID -> Bool
> :: GroupID -> GroupID -> Bool
$c>= :: GroupID -> GroupID -> Bool
>= :: GroupID -> GroupID -> Bool
$cmax :: GroupID -> GroupID -> GroupID
max :: GroupID -> GroupID -> GroupID
$cmin :: GroupID -> GroupID -> GroupID
min :: GroupID -> GroupID -> GroupID
Ord, ReadPrec [GroupID]
ReadPrec GroupID
Int -> ReadS GroupID
ReadS [GroupID]
(Int -> ReadS GroupID)
-> ReadS [GroupID]
-> ReadPrec GroupID
-> ReadPrec [GroupID]
-> Read GroupID
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS GroupID
readsPrec :: Int -> ReadS GroupID
$creadList :: ReadS [GroupID]
readList :: ReadS [GroupID]
$creadPrec :: ReadPrec GroupID
readPrec :: ReadPrec GroupID
$creadListPrec :: ReadPrec [GroupID]
readListPrec :: ReadPrec [GroupID]
Read, Int -> GroupID -> ShowS
[GroupID] -> ShowS
GroupID -> String
(Int -> GroupID -> ShowS)
-> (GroupID -> String) -> ([GroupID] -> ShowS) -> Show GroupID
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GroupID -> ShowS
showsPrec :: Int -> GroupID -> ShowS
$cshow :: GroupID -> String
show :: GroupID -> String
$cshowList :: [GroupID] -> ShowS
showList :: [GroupID] -> ShowS
Show, Typeable, Typeable GroupID
Typeable GroupID
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> GroupID -> c GroupID)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c GroupID)
-> (GroupID -> Constr)
-> (GroupID -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c GroupID))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GroupID))
-> ((forall b. Data b => b -> b) -> GroupID -> GroupID)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> GroupID -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> GroupID -> r)
-> (forall u. (forall d. Data d => d -> u) -> GroupID -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> GroupID -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> GroupID -> m GroupID)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> GroupID -> m GroupID)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> GroupID -> m GroupID)
-> Data GroupID
GroupID -> Constr
GroupID -> DataType
(forall b. Data b => b -> b) -> GroupID -> GroupID
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) -> GroupID -> u
forall u. (forall d. Data d => d -> u) -> GroupID -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GroupID
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GroupID -> c GroupID
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c GroupID)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GroupID)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GroupID -> c GroupID
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GroupID -> c GroupID
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GroupID
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GroupID
$ctoConstr :: GroupID -> Constr
toConstr :: GroupID -> Constr
$cdataTypeOf :: GroupID -> DataType
dataTypeOf :: GroupID -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c GroupID)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c GroupID)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GroupID)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GroupID)
$cgmapT :: (forall b. Data b => b -> b) -> GroupID -> GroupID
gmapT :: (forall b. Data b => b -> b) -> GroupID -> GroupID
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> GroupID -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> GroupID -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> GroupID -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> GroupID -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
Data, (forall x. GroupID -> Rep GroupID x)
-> (forall x. Rep GroupID x -> GroupID) -> Generic GroupID
forall x. Rep GroupID x -> GroupID
forall x. GroupID -> Rep GroupID x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. GroupID -> Rep GroupID x
from :: forall x. GroupID -> Rep GroupID x
$cto :: forall x. Rep GroupID x -> GroupID
to :: forall x. Rep GroupID x -> GroupID
Generic)