module JVM.Data.Abstract.ClassFile.AccessFlags where

import Data.Data
import JVM.Data.Pretty (Pretty (pretty))

-- | Access flags for a class
data ClassAccessFlag
    = Public
    | Final
    | Super
    | Interface
    | Abstract
    | Synthetic
    | Annotation
    | Enum
    deriving (Int -> ClassAccessFlag -> ShowS
[ClassAccessFlag] -> ShowS
ClassAccessFlag -> String
(Int -> ClassAccessFlag -> ShowS)
-> (ClassAccessFlag -> String)
-> ([ClassAccessFlag] -> ShowS)
-> Show ClassAccessFlag
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ClassAccessFlag -> ShowS
showsPrec :: Int -> ClassAccessFlag -> ShowS
$cshow :: ClassAccessFlag -> String
show :: ClassAccessFlag -> String
$cshowList :: [ClassAccessFlag] -> ShowS
showList :: [ClassAccessFlag] -> ShowS
Show, ClassAccessFlag -> ClassAccessFlag -> Bool
(ClassAccessFlag -> ClassAccessFlag -> Bool)
-> (ClassAccessFlag -> ClassAccessFlag -> Bool)
-> Eq ClassAccessFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ClassAccessFlag -> ClassAccessFlag -> Bool
== :: ClassAccessFlag -> ClassAccessFlag -> Bool
$c/= :: ClassAccessFlag -> ClassAccessFlag -> Bool
/= :: ClassAccessFlag -> ClassAccessFlag -> Bool
Eq, Typeable ClassAccessFlag
Typeable ClassAccessFlag =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> ClassAccessFlag -> c ClassAccessFlag)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c ClassAccessFlag)
-> (ClassAccessFlag -> Constr)
-> (ClassAccessFlag -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c ClassAccessFlag))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c ClassAccessFlag))
-> ((forall b. Data b => b -> b)
    -> ClassAccessFlag -> ClassAccessFlag)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> ClassAccessFlag -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> ClassAccessFlag -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> ClassAccessFlag -> m ClassAccessFlag)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ClassAccessFlag -> m ClassAccessFlag)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> ClassAccessFlag -> m ClassAccessFlag)
-> Data ClassAccessFlag
ClassAccessFlag -> Constr
ClassAccessFlag -> DataType
(forall b. Data b => b -> b) -> ClassAccessFlag -> ClassAccessFlag
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) -> ClassAccessFlag -> u
forall u. (forall d. Data d => d -> u) -> ClassAccessFlag -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ClassAccessFlag
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ClassAccessFlag -> c ClassAccessFlag
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ClassAccessFlag)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ClassAccessFlag)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ClassAccessFlag -> c ClassAccessFlag
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ClassAccessFlag -> c ClassAccessFlag
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ClassAccessFlag
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ClassAccessFlag
$ctoConstr :: ClassAccessFlag -> Constr
toConstr :: ClassAccessFlag -> Constr
$cdataTypeOf :: ClassAccessFlag -> DataType
dataTypeOf :: ClassAccessFlag -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ClassAccessFlag)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ClassAccessFlag)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ClassAccessFlag)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ClassAccessFlag)
$cgmapT :: (forall b. Data b => b -> b) -> ClassAccessFlag -> ClassAccessFlag
gmapT :: (forall b. Data b => b -> b) -> ClassAccessFlag -> ClassAccessFlag
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ClassAccessFlag -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ClassAccessFlag -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> ClassAccessFlag -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ClassAccessFlag -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ClassAccessFlag -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ClassAccessFlag -> m ClassAccessFlag
Data)

data FieldAccessFlag
    = FPublic
    | FPrivate
    | FProtected
    | FStatic
    | FFinal
    | FVolatile
    | FTransient
    | FSynthetic
    | FEnum
    deriving (Int -> FieldAccessFlag -> ShowS
[FieldAccessFlag] -> ShowS
FieldAccessFlag -> String
(Int -> FieldAccessFlag -> ShowS)
-> (FieldAccessFlag -> String)
-> ([FieldAccessFlag] -> ShowS)
-> Show FieldAccessFlag
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FieldAccessFlag -> ShowS
showsPrec :: Int -> FieldAccessFlag -> ShowS
$cshow :: FieldAccessFlag -> String
show :: FieldAccessFlag -> String
$cshowList :: [FieldAccessFlag] -> ShowS
showList :: [FieldAccessFlag] -> ShowS
Show, Typeable FieldAccessFlag
Typeable FieldAccessFlag =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> FieldAccessFlag -> c FieldAccessFlag)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c FieldAccessFlag)
-> (FieldAccessFlag -> Constr)
-> (FieldAccessFlag -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c FieldAccessFlag))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c FieldAccessFlag))
-> ((forall b. Data b => b -> b)
    -> FieldAccessFlag -> FieldAccessFlag)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> FieldAccessFlag -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> FieldAccessFlag -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> FieldAccessFlag -> m FieldAccessFlag)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> FieldAccessFlag -> m FieldAccessFlag)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> FieldAccessFlag -> m FieldAccessFlag)
-> Data FieldAccessFlag
FieldAccessFlag -> Constr
FieldAccessFlag -> DataType
(forall b. Data b => b -> b) -> FieldAccessFlag -> FieldAccessFlag
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) -> FieldAccessFlag -> u
forall u. (forall d. Data d => d -> u) -> FieldAccessFlag -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FieldAccessFlag
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FieldAccessFlag -> c FieldAccessFlag
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c FieldAccessFlag)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FieldAccessFlag)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FieldAccessFlag -> c FieldAccessFlag
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> FieldAccessFlag -> c FieldAccessFlag
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FieldAccessFlag
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c FieldAccessFlag
$ctoConstr :: FieldAccessFlag -> Constr
toConstr :: FieldAccessFlag -> Constr
$cdataTypeOf :: FieldAccessFlag -> DataType
dataTypeOf :: FieldAccessFlag -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c FieldAccessFlag)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c FieldAccessFlag)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FieldAccessFlag)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c FieldAccessFlag)
$cgmapT :: (forall b. Data b => b -> b) -> FieldAccessFlag -> FieldAccessFlag
gmapT :: (forall b. Data b => b -> b) -> FieldAccessFlag -> FieldAccessFlag
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> FieldAccessFlag -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> FieldAccessFlag -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> FieldAccessFlag -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> FieldAccessFlag -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> FieldAccessFlag -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> FieldAccessFlag -> m FieldAccessFlag
Data)

data MethodAccessFlag
    = MPublic
    | MPrivate
    | MProtected
    | MStatic
    | MFinal
    | MSynchronized
    | MBridge
    | MVarargs
    | MNative
    | MAbstract
    | MStrict
    | MSynthetic
    deriving (Int -> MethodAccessFlag -> ShowS
[MethodAccessFlag] -> ShowS
MethodAccessFlag -> String
(Int -> MethodAccessFlag -> ShowS)
-> (MethodAccessFlag -> String)
-> ([MethodAccessFlag] -> ShowS)
-> Show MethodAccessFlag
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MethodAccessFlag -> ShowS
showsPrec :: Int -> MethodAccessFlag -> ShowS
$cshow :: MethodAccessFlag -> String
show :: MethodAccessFlag -> String
$cshowList :: [MethodAccessFlag] -> ShowS
showList :: [MethodAccessFlag] -> ShowS
Show, Typeable MethodAccessFlag
Typeable MethodAccessFlag =>
(forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> MethodAccessFlag -> c MethodAccessFlag)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c MethodAccessFlag)
-> (MethodAccessFlag -> Constr)
-> (MethodAccessFlag -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c MethodAccessFlag))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c MethodAccessFlag))
-> ((forall b. Data b => b -> b)
    -> MethodAccessFlag -> MethodAccessFlag)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> MethodAccessFlag -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> MethodAccessFlag -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> MethodAccessFlag -> m MethodAccessFlag)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MethodAccessFlag -> m MethodAccessFlag)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> MethodAccessFlag -> m MethodAccessFlag)
-> Data MethodAccessFlag
MethodAccessFlag -> Constr
MethodAccessFlag -> DataType
(forall b. Data b => b -> b)
-> MethodAccessFlag -> MethodAccessFlag
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) -> MethodAccessFlag -> u
forall u. (forall d. Data d => d -> u) -> MethodAccessFlag -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MethodAccessFlag
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MethodAccessFlag -> c MethodAccessFlag
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MethodAccessFlag)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MethodAccessFlag)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MethodAccessFlag -> c MethodAccessFlag
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> MethodAccessFlag -> c MethodAccessFlag
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MethodAccessFlag
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c MethodAccessFlag
$ctoConstr :: MethodAccessFlag -> Constr
toConstr :: MethodAccessFlag -> Constr
$cdataTypeOf :: MethodAccessFlag -> DataType
dataTypeOf :: MethodAccessFlag -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MethodAccessFlag)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c MethodAccessFlag)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MethodAccessFlag)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c MethodAccessFlag)
$cgmapT :: (forall b. Data b => b -> b)
-> MethodAccessFlag -> MethodAccessFlag
gmapT :: (forall b. Data b => b -> b)
-> MethodAccessFlag -> MethodAccessFlag
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> MethodAccessFlag -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> MethodAccessFlag -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> MethodAccessFlag -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MethodAccessFlag -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> MethodAccessFlag -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> MethodAccessFlag -> m MethodAccessFlag
Data, MethodAccessFlag -> MethodAccessFlag -> Bool
(MethodAccessFlag -> MethodAccessFlag -> Bool)
-> (MethodAccessFlag -> MethodAccessFlag -> Bool)
-> Eq MethodAccessFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MethodAccessFlag -> MethodAccessFlag -> Bool
== :: MethodAccessFlag -> MethodAccessFlag -> Bool
$c/= :: MethodAccessFlag -> MethodAccessFlag -> Bool
/= :: MethodAccessFlag -> MethodAccessFlag -> Bool
Eq)

instance Pretty ClassAccessFlag where
    pretty :: forall ann. ClassAccessFlag -> Doc ann
pretty ClassAccessFlag
Public = Doc ann
"public"
    pretty ClassAccessFlag
Final = Doc ann
"final"
    pretty ClassAccessFlag
Super = Doc ann
"super"
    pretty ClassAccessFlag
Interface = Doc ann
"interface"
    pretty ClassAccessFlag
Abstract = Doc ann
"abstract"
    pretty ClassAccessFlag
Synthetic = Doc ann
"synthetic"
    pretty ClassAccessFlag
Annotation = Doc ann
"@interface"
    pretty ClassAccessFlag
Enum = Doc ann
"enum"

instance Pretty FieldAccessFlag where
    pretty :: forall ann. FieldAccessFlag -> Doc ann
pretty FieldAccessFlag
FPublic = Doc ann
"public"
    pretty FieldAccessFlag
FPrivate = Doc ann
"private"
    pretty FieldAccessFlag
FProtected = Doc ann
"protected"
    pretty FieldAccessFlag
FStatic = Doc ann
"static"
    pretty FieldAccessFlag
FFinal = Doc ann
"final"
    pretty FieldAccessFlag
FVolatile = Doc ann
"volatile"
    pretty FieldAccessFlag
FTransient = Doc ann
"transient"
    pretty FieldAccessFlag
FSynthetic = Doc ann
"synthetic"
    pretty FieldAccessFlag
FEnum = Doc ann
"enum"

instance Pretty MethodAccessFlag where
    pretty :: forall ann. MethodAccessFlag -> Doc ann
pretty MethodAccessFlag
MPublic = Doc ann
"public"
    pretty MethodAccessFlag
MPrivate = Doc ann
"private"
    pretty MethodAccessFlag
MProtected = Doc ann
"protected"
    pretty MethodAccessFlag
MStatic = Doc ann
"static"
    pretty MethodAccessFlag
MFinal = Doc ann
"final"
    pretty MethodAccessFlag
MSynchronized = Doc ann
"synchronized"
    pretty MethodAccessFlag
MBridge = Doc ann
"bridge"
    pretty MethodAccessFlag
MVarargs = Doc ann
"varargs"
    pretty MethodAccessFlag
MNative = Doc ann
"native"
    pretty MethodAccessFlag
MAbstract = Doc ann
"abstract"
    pretty MethodAccessFlag
MStrict = Doc ann
"strict"
    pretty MethodAccessFlag
MSynthetic = Doc ann
"synthetic"