-- | 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
    = NoReturn
    | NoUnwind
    | ReadNone
    | ReadOnly
    | NoInline
    | NoRecurse
    | AlwaysInline
    | MinimizeSize
    | OptimizeForSize
    | OptimizeNone
    | StackProtect
    | StackProtectReq
    | StackProtectStrong
    | StrictFP
    | NoRedZone
    | NoImplicitFloat
    | Naked
    | InlineHint
    | StackAlignment Word64
    | ReturnsTwice
    | UWTable
    | NonLazyBind
    | Builtin
    | NoBuiltin
    | Cold
    | JumpTable
    | NoDuplicate
    | SanitizeAddress
    | SanitizeHWAddress
    | SanitizeThread
    | SanitizeMemory
    | Speculatable
    | StringAttribute {
        FunctionAttribute -> ShortByteString
stringAttributeKind :: ShortByteString,
        FunctionAttribute -> ShortByteString
stringAttributeValue :: ShortByteString -- ^ Use "" for no value -- the two are conflated
      }
    | AllocSize Word32 (Maybe Word32) -- ^ AllocSize 0 (Just 0) is invalid
    | WriteOnly
    | ArgMemOnly
    | Convergent
    | InaccessibleMemOnly
    | InaccessibleMemOrArgMemOnly
    | SafeStack
  deriving (FunctionAttribute -> FunctionAttribute -> Bool
(FunctionAttribute -> FunctionAttribute -> Bool)
-> (FunctionAttribute -> FunctionAttribute -> Bool)
-> Eq FunctionAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FunctionAttribute -> FunctionAttribute -> Bool
$c/= :: FunctionAttribute -> FunctionAttribute -> Bool
== :: FunctionAttribute -> FunctionAttribute -> Bool
$c== :: 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
min :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
$cmin :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
max :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
$cmax :: FunctionAttribute -> FunctionAttribute -> FunctionAttribute
>= :: FunctionAttribute -> FunctionAttribute -> Bool
$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
compare :: FunctionAttribute -> FunctionAttribute -> Ordering
$ccompare :: FunctionAttribute -> FunctionAttribute -> Ordering
$cp1Ord :: Eq 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
readListPrec :: ReadPrec [FunctionAttribute]
$creadListPrec :: ReadPrec [FunctionAttribute]
readPrec :: ReadPrec FunctionAttribute
$creadPrec :: ReadPrec FunctionAttribute
readList :: ReadS [FunctionAttribute]
$creadList :: ReadS [FunctionAttribute]
readsPrec :: Int -> ReadS FunctionAttribute
$creadsPrec :: Int -> ReadS 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
showList :: [FunctionAttribute] -> ShowS
$cshowList :: [FunctionAttribute] -> ShowS
show :: FunctionAttribute -> String
$cshow :: FunctionAttribute -> String
showsPrec :: Int -> FunctionAttribute -> ShowS
$cshowsPrec :: Int -> FunctionAttribute -> ShowS
Show, Typeable, Typeable FunctionAttribute
DataType
Constr
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 -> DataType
FunctionAttribute -> Constr
(forall b. Data b => b -> b)
-> FunctionAttribute -> FunctionAttribute
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FunctionAttribute -> c FunctionAttribute
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c 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)
$cSafeStack :: Constr
$cInaccessibleMemOrArgMemOnly :: Constr
$cInaccessibleMemOnly :: Constr
$cConvergent :: Constr
$cArgMemOnly :: Constr
$cWriteOnly :: Constr
$cAllocSize :: Constr
$cStringAttribute :: Constr
$cSpeculatable :: Constr
$cSanitizeMemory :: Constr
$cSanitizeThread :: Constr
$cSanitizeHWAddress :: Constr
$cSanitizeAddress :: Constr
$cNoDuplicate :: Constr
$cJumpTable :: Constr
$cCold :: Constr
$cNoBuiltin :: Constr
$cBuiltin :: Constr
$cNonLazyBind :: Constr
$cUWTable :: Constr
$cReturnsTwice :: Constr
$cStackAlignment :: Constr
$cInlineHint :: Constr
$cNaked :: Constr
$cNoImplicitFloat :: Constr
$cNoRedZone :: Constr
$cStrictFP :: Constr
$cStackProtectStrong :: Constr
$cStackProtectReq :: Constr
$cStackProtect :: Constr
$cOptimizeNone :: Constr
$cOptimizeForSize :: Constr
$cMinimizeSize :: Constr
$cAlwaysInline :: Constr
$cNoRecurse :: Constr
$cNoInline :: Constr
$cReadOnly :: Constr
$cReadNone :: Constr
$cNoUnwind :: Constr
$cNoReturn :: Constr
$tFunctionAttribute :: DataType
gmapMo :: (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
gmapMp :: (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
gmapM :: (forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> FunctionAttribute -> m FunctionAttribute
gmapQi :: Int -> (forall d. Data d => d -> u) -> FunctionAttribute -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> FunctionAttribute -> u
gmapQ :: (forall d. Data d => d -> u) -> FunctionAttribute -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> FunctionAttribute -> [u]
gmapQr :: (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
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FunctionAttribute -> r
gmapT :: (forall b. Data b => b -> b)
-> FunctionAttribute -> FunctionAttribute
$cgmapT :: (forall b. Data b => b -> b)
-> FunctionAttribute -> FunctionAttribute
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FunctionAttribute)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FunctionAttribute)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c FunctionAttribute)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c FunctionAttribute)
dataTypeOf :: FunctionAttribute -> DataType
$cdataTypeOf :: FunctionAttribute -> DataType
toConstr :: FunctionAttribute -> Constr
$ctoConstr :: FunctionAttribute -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FunctionAttribute
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FunctionAttribute
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FunctionAttribute -> c FunctionAttribute
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FunctionAttribute -> c FunctionAttribute
$cp1Data :: Typeable 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
$cto :: forall x. Rep FunctionAttribute x -> FunctionAttribute
$cfrom :: forall x. FunctionAttribute -> Rep FunctionAttribute x
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
/= :: GroupID -> GroupID -> Bool
$c/= :: GroupID -> GroupID -> Bool
== :: GroupID -> GroupID -> Bool
$c== :: 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
min :: GroupID -> GroupID -> GroupID
$cmin :: GroupID -> GroupID -> GroupID
max :: GroupID -> GroupID -> GroupID
$cmax :: GroupID -> GroupID -> GroupID
>= :: GroupID -> GroupID -> Bool
$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
compare :: GroupID -> GroupID -> Ordering
$ccompare :: GroupID -> GroupID -> Ordering
$cp1Ord :: Eq 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
readListPrec :: ReadPrec [GroupID]
$creadListPrec :: ReadPrec [GroupID]
readPrec :: ReadPrec GroupID
$creadPrec :: ReadPrec GroupID
readList :: ReadS [GroupID]
$creadList :: ReadS [GroupID]
readsPrec :: Int -> ReadS GroupID
$creadsPrec :: Int -> ReadS 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
showList :: [GroupID] -> ShowS
$cshowList :: [GroupID] -> ShowS
show :: GroupID -> String
$cshow :: GroupID -> String
showsPrec :: Int -> GroupID -> ShowS
$cshowsPrec :: Int -> GroupID -> ShowS
Show, Typeable, Typeable GroupID
DataType
Constr
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 -> DataType
GroupID -> Constr
(forall b. Data b => b -> b) -> GroupID -> GroupID
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GroupID -> c GroupID
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c 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)
$cGroupID :: Constr
$tGroupID :: DataType
gmapMo :: (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
gmapMp :: (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
gmapM :: (forall d. Data d => d -> m d) -> GroupID -> m GroupID
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> GroupID -> m GroupID
gmapQi :: Int -> (forall d. Data d => d -> u) -> GroupID -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> GroupID -> u
gmapQ :: (forall d. Data d => d -> u) -> GroupID -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> GroupID -> [u]
gmapQr :: (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
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> GroupID -> r
gmapT :: (forall b. Data b => b -> b) -> GroupID -> GroupID
$cgmapT :: (forall b. Data b => b -> b) -> GroupID -> GroupID
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GroupID)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GroupID)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c GroupID)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c GroupID)
dataTypeOf :: GroupID -> DataType
$cdataTypeOf :: GroupID -> DataType
toConstr :: GroupID -> Constr
$ctoConstr :: GroupID -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GroupID
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c GroupID
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GroupID -> c GroupID
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> GroupID -> c GroupID
$cp1Data :: Typeable 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
$cto :: forall x. Rep GroupID x -> GroupID
$cfrom :: forall x. GroupID -> Rep GroupID x
Generic)