-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Manipulating Java source: abstract syntax, lexer, parser, and pretty-printer -- -- Java source manipulation. @package language-java @version 0.2.8 module Language.Java.Syntax -- | A compilation unit is the top level syntactic goal symbol of a Java -- program. data CompilationUnit CompilationUnit :: (Maybe PackageDecl) -> [ImportDecl] -> [TypeDecl] -> CompilationUnit -- | A package declaration appears within a compilation unit to indicate -- the package to which the compilation unit belongs. data PackageDecl PackageDecl :: Name -> PackageDecl -- | An import declaration allows a static member or a named type to be -- referred to by a single unqualified identifier. The first argument -- signals whether the declaration only imports static members. The last -- argument signals whether the declaration brings all names in the named -- type or package, or only brings a single name into scope. data ImportDecl ImportDecl :: Bool -> Name -> Bool -> ImportDecl -- | A type declaration declares a class type or an interface type. data TypeDecl ClassTypeDecl :: ClassDecl -> TypeDecl InterfaceTypeDecl :: InterfaceDecl -> TypeDecl -- | A class declaration specifies a new named reference type. data ClassDecl ClassDecl :: [Modifier] -> Ident -> [TypeParam] -> (Maybe RefType) -> [RefType] -> ClassBody -> ClassDecl EnumDecl :: [Modifier] -> Ident -> [RefType] -> EnumBody -> ClassDecl -- | A class body may contain declarations of members of the class, that -- is, fields, classes, interfaces and methods. A class body may also -- contain instance initializers, static initializers, and declarations -- of constructors for the class. data ClassBody ClassBody :: [Decl] -> ClassBody -- | The body of an enum type may contain enum constants. data EnumBody EnumBody :: [EnumConstant] -> [Decl] -> EnumBody -- | An enum constant defines an instance of the enum type. data EnumConstant EnumConstant :: Ident -> [Argument] -> (Maybe ClassBody) -> EnumConstant -- | An interface declaration introduces a new reference type whose members -- are classes, interfaces, constants and abstract methods. This type has -- no implementation, but otherwise unrelated classes can implement it by -- providing implementations for its abstract methods. data InterfaceDecl InterfaceDecl :: [Modifier] -> Ident -> [TypeParam] -> [RefType] -> InterfaceBody -> InterfaceDecl -- | The body of an interface may declare members of the interface. data InterfaceBody InterfaceBody :: [MemberDecl] -> InterfaceBody -- | A declaration is either a member declaration, or a declaration of an -- initializer, which may be static. data Decl MemberDecl :: MemberDecl -> Decl InitDecl :: Bool -> Block -> Decl -- | A class or interface member can be an inner class or interface, a -- field or constant, or a method or constructor. An interface may only -- have as members constants (not fields), abstract methods, and no -- constructors. data MemberDecl -- | The variables of a class type are introduced by field declarations. FieldDecl :: [Modifier] -> Type -> [VarDecl] -> MemberDecl -- | A method declares executable code that can be invoked, passing a fixed -- number of values as arguments. MethodDecl :: [Modifier] -> [TypeParam] -> (Maybe Type) -> Ident -> [FormalParam] -> [ExceptionType] -> MethodBody -> MemberDecl -- | A constructor is used in the creation of an object that is an instance -- of a class. ConstructorDecl :: [Modifier] -> [TypeParam] -> Ident -> [FormalParam] -> [ExceptionType] -> ConstructorBody -> MemberDecl -- | A member class is a class whose declaration is directly enclosed in -- another class or interface declaration. MemberClassDecl :: ClassDecl -> MemberDecl -- | A member interface is an interface whose declaration is directly -- enclosed in another class or interface declaration. MemberInterfaceDecl :: InterfaceDecl -> MemberDecl -- | A declaration of a variable, which may be explicitly initialized. data VarDecl VarDecl :: VarDeclId -> (Maybe VarInit) -> VarDecl -- | The name of a variable in a declaration, which may be an array. data VarDeclId VarId :: Ident -> VarDeclId -- | Multi-dimensional arrays are represented by nested applications of -- VarDeclArray. VarDeclArray :: VarDeclId -> VarDeclId -- | Explicit initializer for a variable declaration. data VarInit InitExp :: Exp -> VarInit InitArray :: ArrayInit -> VarInit -- | A formal parameter in method declaration. The last parameter for a -- given declaration may be marked as variable arity, indicated by the -- boolean argument. data FormalParam FormalParam :: [Modifier] -> Type -> Bool -> VarDeclId -> FormalParam -- | A method body is either a block of code that implements the method or -- simply a semicolon, indicating the lack of an implementation (modelled -- by Nothing). data MethodBody MethodBody :: (Maybe Block) -> MethodBody -- | The first statement of a constructor body may be an explicit -- invocation of another constructor of the same class or of the direct -- superclass. data ConstructorBody ConstructorBody :: (Maybe ExplConstrInv) -> [BlockStmt] -> ConstructorBody -- | An explicit constructor invocation invokes another constructor of the -- same class, or a constructor of the direct superclass, which may be -- qualified to explicitly specify the newly created object's immediately -- enclosing instance. data ExplConstrInv ThisInvoke :: [RefType] -> [Argument] -> ExplConstrInv SuperInvoke :: [RefType] -> [Argument] -> ExplConstrInv PrimarySuperInvoke :: Exp -> [RefType] -> [Argument] -> ExplConstrInv -- | A modifier specifying properties of a given declaration. In general -- only a few of these modifiers are allowed for each declaration type, -- for instance a member type declaration may only specify one of public, -- private or protected. data Modifier Public :: Modifier Private :: Modifier Protected :: Modifier Abstract :: Modifier Final :: Modifier Static :: Modifier StrictFP :: Modifier Transient :: Modifier Volatile :: Modifier Native :: Modifier Annotation :: Annotation -> Modifier Synchronised :: Modifier -- | Annotations have three different forms: no-parameter, single-parameter -- or key-value pairs data Annotation NormalAnnotation :: Name -> [(Ident, ElementValue)] -> Annotation [annName] :: Annotation -> Name [annKV] :: Annotation -> [(Ident, ElementValue)] SingleElementAnnotation :: Name -> ElementValue -> Annotation [annName] :: Annotation -> Name [annValue] :: Annotation -> ElementValue MarkerAnnotation :: Name -> Annotation [annName] :: Annotation -> Name desugarAnnotation :: Annotation -> (Name, [(Ident, ElementValue)]) desugarAnnotation' :: Annotation -> Annotation -- | Annotations may contain annotations or (loosely) expressions data ElementValue EVVal :: VarInit -> ElementValue EVAnn :: Annotation -> ElementValue -- | A block is a sequence of statements, local class declarations and -- local variable declaration statements within braces. data Block Block :: [BlockStmt] -> Block -- | A block statement is either a normal statement, a local class -- declaration or a local variable declaration. data BlockStmt BlockStmt :: Stmt -> BlockStmt LocalClass :: ClassDecl -> BlockStmt LocalVars :: [Modifier] -> Type -> [VarDecl] -> BlockStmt -- | A Java statement. data Stmt -- | A statement can be a nested block. StmtBlock :: Block -> Stmt -- | The if-then statement allows conditional execution of a -- statement. IfThen :: Exp -> Stmt -> Stmt -- | The if-then-else statement allows conditional choice of two -- statements, executing one or the other but not both. IfThenElse :: Exp -> Stmt -> Stmt -> Stmt -- | The while statement executes an expression and a statement -- repeatedly until the value of the expression is false. While :: Exp -> Stmt -> Stmt -- | The basic for statement executes some initialization code, -- then executes an expression, a statement, and some update code -- repeatedly until the value of the expression is false. BasicFor :: (Maybe ForInit) -> (Maybe Exp) -> (Maybe [Exp]) -> Stmt -> Stmt -- | The enhanced for statement iterates over an array or a value -- of a class that implements the iterator interface. EnhancedFor :: [Modifier] -> Type -> Ident -> Exp -> Stmt -> Stmt -- | An empty statement does nothing. Empty :: Stmt -- | Certain kinds of expressions may be used as statements by following -- them with semicolons: assignments, pre- or post-inc- or -- decrementation, method invocation or class instance creation -- expressions. ExpStmt :: Exp -> Stmt -- | An assertion is a statement containing a boolean expression, where an -- error is reported if the expression evaluates to false. Assert :: Exp -> (Maybe Exp) -> Stmt -- | The switch statement transfers control to one of several statements -- depending on the value of an expression. Switch :: Exp -> [SwitchBlock] -> Stmt -- | The do statement executes a statement and an expression -- repeatedly until the value of the expression is false. Do :: Stmt -> Exp -> Stmt -- | A break statement transfers control out of an enclosing -- statement. Break :: (Maybe Ident) -> Stmt -- | A continue statement may occur only in a while, do, or for -- statement. Control passes to the loop-continuation point of that -- statement. Continue :: (Maybe Ident) -> Stmt Return :: (Maybe Exp) -> Stmt -- | A synchronized statement acquires a mutual-exclusion lock on -- behalf of the executing thread, executes a block, then releases the -- lock. While the executing thread owns the lock, no other thread may -- acquire the lock. Synchronized :: Exp -> Block -> Stmt -- | A throw statement causes an exception to be thrown. Throw :: Exp -> Stmt -- | A try statement executes a block. If a value is thrown and the try -- statement has one or more catch clauses that can catch it, then -- control will be transferred to the first such catch clause. If the try -- statement has a finally clause, then another block of code is -- executed, no matter whether the try block completes normally or -- abruptly, and no matter whether a catch clause is first given control. Try :: Block -> [Catch] -> (Maybe Block) -> Stmt -- | Statements may have label prefixes. Labeled :: Ident -> Stmt -> Stmt -- | If a value is thrown and the try statement has one or more catch -- clauses that can catch it, then control will be transferred to the -- first such catch clause. data Catch Catch :: FormalParam -> Block -> Catch -- | A block of code labelled with a case or default -- within a switch statement. data SwitchBlock SwitchBlock :: SwitchLabel -> [BlockStmt] -> SwitchBlock -- | A label within a switch statement. data SwitchLabel -- | The expression contained in the case must be a Lit or -- an enum constant. SwitchCase :: Exp -> SwitchLabel Default :: SwitchLabel -- | Initialization code for a basic for statement. data ForInit ForLocalVars :: [Modifier] -> Type -> [VarDecl] -> ForInit ForInitExps :: [Exp] -> ForInit -- | An exception type has to be a class type or a type variable. type ExceptionType = RefType -- | Arguments to methods and constructors are expressions. type Argument = Exp -- | A Java expression. data Exp -- | A literal denotes a fixed, unchanging value. Lit :: Literal -> Exp -- | A class literal, which is an expression consisting of the name of a -- class, interface, array, or primitive type, or the pseudo-type void -- (modelled by Nothing), followed by a . and the token -- class. ClassLit :: (Maybe Type) -> Exp -- | The keyword this denotes a value that is a reference to the -- object for which the instance method was invoked, or to the object -- being constructed. This :: Exp -- | Any lexically enclosing instance can be referred to by explicitly -- qualifying the keyword this. ThisClass :: Name -> Exp -- | A class instance creation expression is used to create new objects -- that are instances of classes. | The first argument is a list of -- non-wildcard type arguments to a generic constructor. What follows is -- the type to be instantiated, the list of arguments passed to the -- constructor, and optionally a class body that makes the constructor -- result in an object of an anonymous class. InstanceCreation :: [TypeArgument] -> ClassType -> [Argument] -> (Maybe ClassBody) -> Exp -- | A qualified class instance creation expression enables the creation of -- instances of inner member classes and their anonymous subclasses. QualInstanceCreation :: Exp -> [TypeArgument] -> Ident -> [Argument] -> (Maybe ClassBody) -> Exp -- | An array instance creation expression is used to create new arrays. -- The last argument denotes the number of dimensions that have no -- explicit length given. These dimensions must be given last. ArrayCreate :: Type -> [Exp] -> Int -> Exp -- | An array instance creation expression may come with an explicit -- initializer. Such expressions may not be given explicit lengths for -- any of its dimensions. ArrayCreateInit :: Type -> Int -> ArrayInit -> Exp -- | A field access expression. FieldAccess :: FieldAccess -> Exp -- | A method invocation expression. MethodInv :: MethodInvocation -> Exp -- | An array access expression refers to a variable that is a component of -- an array. ArrayAccess :: ArrayIndex -> Exp -- | An expression name, e.g. a variable. ExpName :: Name -> Exp -- | Post-incrementation expression, i.e. an expression followed by -- ++. PostIncrement :: Exp -> Exp -- | Post-decrementation expression, i.e. an expression followed by -- --. PostDecrement :: Exp -> Exp -- | Pre-incrementation expression, i.e. an expression preceded by -- ++. PreIncrement :: Exp -> Exp -- | Pre-decrementation expression, i.e. an expression preceded by -- --. PreDecrement :: Exp -> Exp -- | Unary plus, the promotion of the value of the expression to a -- primitive numeric type. PrePlus :: Exp -> Exp -- | Unary minus, the promotion of the negation of the value of the -- expression to a primitive numeric type. PreMinus :: Exp -> Exp -- | Unary bitwise complementation: note that, in all cases, ~x -- equals (-x)-1. PreBitCompl :: Exp -> Exp -- | Logical complementation of boolean values. PreNot :: Exp -> Exp -- | A cast expression converts, at run time, a value of one numeric type -- to a similar value of another numeric type; or confirms, at compile -- time, that the type of an expression is boolean; or checks, at run -- time, that a reference value refers to an object whose class is -- compatible with a specified reference type. Cast :: Type -> Exp -> Exp -- | The application of a binary operator to two operand expressions. BinOp :: Exp -> Op -> Exp -> Exp -- | Testing whether the result of an expression is an instance of some -- reference type. InstanceOf :: Exp -> RefType -> Exp -- | The conditional operator ? : uses the boolean value of one -- expression to decide which of two other expressions should be -- evaluated. Cond :: Exp -> Exp -> Exp -> Exp -- | Assignment of the result of an expression to a variable. Assign :: Lhs -> AssignOp -> Exp -> Exp -- | Lambda expression Lambda :: LambdaParams -> LambdaExpression -> Exp -- | Method reference MethodRef :: Ident -> Ident -> Exp -- | A literal denotes a fixed, unchanging value. data Literal Int :: Integer -> Literal Word :: Integer -> Literal Float :: Double -> Literal Double :: Double -> Literal Boolean :: Bool -> Literal Char :: Char -> Literal String :: String -> Literal Null :: Literal -- | A binary infix operator. data Op Mult :: Op Div :: Op Rem :: Op Add :: Op Sub :: Op LShift :: Op RShift :: Op RRShift :: Op LThan :: Op GThan :: Op LThanE :: Op GThanE :: Op Equal :: Op NotEq :: Op And :: Op Or :: Op Xor :: Op CAnd :: Op COr :: Op -- | An assignment operator. data AssignOp EqualA :: AssignOp MultA :: AssignOp DivA :: AssignOp RemA :: AssignOp AddA :: AssignOp SubA :: AssignOp LShiftA :: AssignOp RShiftA :: AssignOp RRShiftA :: AssignOp AndA :: AssignOp XorA :: AssignOp OrA :: AssignOp -- | The left-hand side of an assignment expression. This operand may be a -- named variable, such as a local variable or a field of the current -- object or class, or it may be a computed variable, as can result from -- a field access or an array access. data Lhs -- | Assign to a variable NameLhs :: Name -> Lhs -- | Assign through a field access FieldLhs :: FieldAccess -> Lhs -- | Assign to an array ArrayLhs :: ArrayIndex -> Lhs -- | Array access data ArrayIndex -- | Index into an array ArrayIndex :: Exp -> [Exp] -> ArrayIndex -- | A field access expression may access a field of an object or array, a -- reference to which is the value of either an expression or the special -- keyword super. data FieldAccess -- | Accessing a field of an object or array computed from an expression. PrimaryFieldAccess :: Exp -> Ident -> FieldAccess -- | Accessing a field of the superclass. SuperFieldAccess :: Ident -> FieldAccess -- | Accessing a (static) field of a named class. ClassFieldAccess :: Name -> Ident -> FieldAccess data LambdaParams LambdaSingleParam :: Ident -> LambdaParams LambdaFormalParams :: [FormalParam] -> LambdaParams LambdaInferredParams :: [Ident] -> LambdaParams -- | Lambda expression, starting from java 8 data LambdaExpression LambdaExpression :: Exp -> LambdaExpression LambdaBlock :: Block -> LambdaExpression -- | A method invocation expression is used to invoke a class or instance -- method. data MethodInvocation -- | Invoking a specific named method. MethodCall :: Name -> [Argument] -> MethodInvocation -- | Invoking a method of a class computed from a primary expression, -- giving arguments for any generic type parameters. PrimaryMethodCall :: Exp -> [RefType] -> Ident -> [Argument] -> MethodInvocation -- | Invoking a method of the super class, giving arguments for any generic -- type parameters. SuperMethodCall :: [RefType] -> Ident -> [Argument] -> MethodInvocation -- | Invoking a method of the superclass of a named class, giving arguments -- for any generic type parameters. ClassMethodCall :: Name -> [RefType] -> Ident -> [Argument] -> MethodInvocation -- | Invoking a method of a named type, giving arguments for any generic -- type parameters. TypeMethodCall :: Name -> [RefType] -> Ident -> [Argument] -> MethodInvocation -- | An array initializer may be specified in a declaration, or as part of -- an array creation expression, creating an array and providing some -- initial values data ArrayInit ArrayInit :: [VarInit] -> ArrayInit -- | There are two kinds of types in the Java programming language: -- primitive types and reference types. data Type PrimType :: PrimType -> Type RefType :: RefType -> Type -- | There are three kinds of reference types: class types, interface -- types, and array types. Reference types may be parameterized with type -- arguments. Type variables cannot be syntactically distinguished from -- class type identifiers, and are thus represented uniformly as single -- ident class types. data RefType ClassRefType :: ClassType -> RefType -- | TypeVariable Ident ArrayType :: Type -> RefType -- | A class or interface type consists of a type declaration specifier, -- optionally followed by type arguments (in which case it is a -- parameterized type). data ClassType ClassType :: [(Ident, [TypeArgument])] -> ClassType -- | Type arguments may be either reference types or wildcards. data TypeArgument Wildcard :: (Maybe WildcardBound) -> TypeArgument ActualType :: RefType -> TypeArgument -- | Wildcards may be given explicit bounds, either upper -- (extends) or lower (super) bounds. data WildcardBound ExtendsBound :: RefType -> WildcardBound SuperBound :: RefType -> WildcardBound -- | A primitive type is predefined by the Java programming language and -- named by its reserved keyword. data PrimType BooleanT :: PrimType ByteT :: PrimType ShortT :: PrimType IntT :: PrimType LongT :: PrimType CharT :: PrimType FloatT :: PrimType DoubleT :: PrimType -- | A class is generic if it declares one or more type variables. These -- type variables are known as the type parameters of the class. data TypeParam TypeParam :: Ident -> [RefType] -> TypeParam -- | A single identifier. data Ident Ident :: String -> Ident -- | A name, i.e. a period-separated list of identifiers. data Name Name :: [Ident] -> Name instance GHC.Generics.Constructor Language.Java.Syntax.C1_0CompilationUnit instance GHC.Generics.Datatype Language.Java.Syntax.D1CompilationUnit instance GHC.Generics.Constructor Language.Java.Syntax.C1_0PackageDecl instance GHC.Generics.Datatype Language.Java.Syntax.D1PackageDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ImportDecl instance GHC.Generics.Datatype Language.Java.Syntax.D1ImportDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_1TypeDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0TypeDecl instance GHC.Generics.Datatype Language.Java.Syntax.D1TypeDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_2Lhs instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Lhs instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Lhs instance GHC.Generics.Datatype Language.Java.Syntax.D1Lhs instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ArrayIndex instance GHC.Generics.Datatype Language.Java.Syntax.D1ArrayIndex instance GHC.Generics.Constructor Language.Java.Syntax.C1_2FieldAccess instance GHC.Generics.Constructor Language.Java.Syntax.C1_1FieldAccess instance GHC.Generics.Constructor Language.Java.Syntax.C1_0FieldAccess instance GHC.Generics.Datatype Language.Java.Syntax.D1FieldAccess instance GHC.Generics.Constructor Language.Java.Syntax.C1_2LambdaParams instance GHC.Generics.Constructor Language.Java.Syntax.C1_1LambdaParams instance GHC.Generics.Constructor Language.Java.Syntax.C1_0LambdaParams instance GHC.Generics.Datatype Language.Java.Syntax.D1LambdaParams instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ClassBody instance GHC.Generics.Datatype Language.Java.Syntax.D1ClassBody instance GHC.Generics.Constructor Language.Java.Syntax.C1_0EnumConstant instance GHC.Generics.Datatype Language.Java.Syntax.D1EnumConstant instance GHC.Generics.Constructor Language.Java.Syntax.C1_0InterfaceBody instance GHC.Generics.Datatype Language.Java.Syntax.D1InterfaceBody instance GHC.Generics.Constructor Language.Java.Syntax.C1_0InterfaceDecl instance GHC.Generics.Datatype Language.Java.Syntax.D1InterfaceDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0MethodBody instance GHC.Generics.Datatype Language.Java.Syntax.D1MethodBody instance GHC.Generics.Constructor Language.Java.Syntax.C1_2ExplConstrInv instance GHC.Generics.Constructor Language.Java.Syntax.C1_1ExplConstrInv instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ExplConstrInv instance GHC.Generics.Datatype Language.Java.Syntax.D1ExplConstrInv instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ConstructorBody instance GHC.Generics.Datatype Language.Java.Syntax.D1ConstructorBody instance GHC.Generics.Constructor Language.Java.Syntax.C1_4MemberDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_3MemberDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_2MemberDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_1MemberDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0MemberDecl instance GHC.Generics.Datatype Language.Java.Syntax.D1MemberDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Decl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Decl instance GHC.Generics.Datatype Language.Java.Syntax.D1Decl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0EnumBody instance GHC.Generics.Datatype Language.Java.Syntax.D1EnumBody instance GHC.Generics.Constructor Language.Java.Syntax.C1_1ClassDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ClassDecl instance GHC.Generics.Datatype Language.Java.Syntax.D1ClassDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_0FormalParam instance GHC.Generics.Datatype Language.Java.Syntax.D1FormalParam instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Catch instance GHC.Generics.Datatype Language.Java.Syntax.D1Catch instance GHC.Generics.Constructor Language.Java.Syntax.C1_1SwitchLabel instance GHC.Generics.Constructor Language.Java.Syntax.C1_0SwitchLabel instance GHC.Generics.Datatype Language.Java.Syntax.D1SwitchLabel instance GHC.Generics.Constructor Language.Java.Syntax.C1_0SwitchBlock instance GHC.Generics.Datatype Language.Java.Syntax.D1SwitchBlock instance GHC.Generics.Constructor Language.Java.Syntax.C1_0VarDecl instance GHC.Generics.Datatype Language.Java.Syntax.D1VarDecl instance GHC.Generics.Constructor Language.Java.Syntax.C1_11Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_10Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_9Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_8Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_7Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_6Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_5Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_4Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_3Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_2Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Modifier instance GHC.Generics.Datatype Language.Java.Syntax.D1Modifier instance GHC.Generics.Constructor Language.Java.Syntax.C1_1ForInit instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ForInit instance GHC.Generics.Datatype Language.Java.Syntax.D1ForInit instance GHC.Generics.Constructor Language.Java.Syntax.C1_17Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_16Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_15Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_14Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_13Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_12Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_11Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_10Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_9Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_8Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_7Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_6Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_5Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_4Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_3Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_2Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Stmt instance GHC.Generics.Datatype Language.Java.Syntax.D1Stmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_2BlockStmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_1BlockStmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_0BlockStmt instance GHC.Generics.Datatype Language.Java.Syntax.D1BlockStmt instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Block instance GHC.Generics.Datatype Language.Java.Syntax.D1Block instance GHC.Generics.Constructor Language.Java.Syntax.C1_1LambdaExpression instance GHC.Generics.Constructor Language.Java.Syntax.C1_0LambdaExpression instance GHC.Generics.Datatype Language.Java.Syntax.D1LambdaExpression instance GHC.Generics.Constructor Language.Java.Syntax.C1_4MethodInvocation instance GHC.Generics.Constructor Language.Java.Syntax.C1_3MethodInvocation instance GHC.Generics.Constructor Language.Java.Syntax.C1_2MethodInvocation instance GHC.Generics.Constructor Language.Java.Syntax.C1_1MethodInvocation instance GHC.Generics.Constructor Language.Java.Syntax.C1_0MethodInvocation instance GHC.Generics.Datatype Language.Java.Syntax.D1MethodInvocation instance GHC.Generics.Constructor Language.Java.Syntax.C1_26Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_25Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_24Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_23Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_22Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_21Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_20Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_19Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_18Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_17Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_16Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_15Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_14Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_13Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_12Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_11Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_10Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_9Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_8Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_7Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_6Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_5Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_4Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_3Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_2Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Exp instance GHC.Generics.Datatype Language.Java.Syntax.D1Exp instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ArrayInit instance GHC.Generics.Datatype Language.Java.Syntax.D1ArrayInit instance GHC.Generics.Constructor Language.Java.Syntax.C1_1VarInit instance GHC.Generics.Constructor Language.Java.Syntax.C1_0VarInit instance GHC.Generics.Datatype Language.Java.Syntax.D1VarInit instance GHC.Generics.Constructor Language.Java.Syntax.C1_1ElementValue instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ElementValue instance GHC.Generics.Datatype Language.Java.Syntax.D1ElementValue instance GHC.Generics.Selector Language.Java.Syntax.S1_2_0Annotation instance GHC.Generics.Selector Language.Java.Syntax.S1_1_1Annotation instance GHC.Generics.Selector Language.Java.Syntax.S1_1_0Annotation instance GHC.Generics.Selector Language.Java.Syntax.S1_0_1Annotation instance GHC.Generics.Selector Language.Java.Syntax.S1_0_0Annotation instance GHC.Generics.Constructor Language.Java.Syntax.C1_2Annotation instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Annotation instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Annotation instance GHC.Generics.Datatype Language.Java.Syntax.D1Annotation instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Name instance GHC.Generics.Datatype Language.Java.Syntax.D1Name instance GHC.Generics.Constructor Language.Java.Syntax.C1_1VarDeclId instance GHC.Generics.Constructor Language.Java.Syntax.C1_0VarDeclId instance GHC.Generics.Datatype Language.Java.Syntax.D1VarDeclId instance GHC.Generics.Constructor Language.Java.Syntax.C1_0TypeParam instance GHC.Generics.Datatype Language.Java.Syntax.D1TypeParam instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Type instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Type instance GHC.Generics.Datatype Language.Java.Syntax.D1Type instance GHC.Generics.Constructor Language.Java.Syntax.C1_1RefType instance GHC.Generics.Constructor Language.Java.Syntax.C1_0RefType instance GHC.Generics.Datatype Language.Java.Syntax.D1RefType instance GHC.Generics.Constructor Language.Java.Syntax.C1_1WildcardBound instance GHC.Generics.Constructor Language.Java.Syntax.C1_0WildcardBound instance GHC.Generics.Datatype Language.Java.Syntax.D1WildcardBound instance GHC.Generics.Constructor Language.Java.Syntax.C1_1TypeArgument instance GHC.Generics.Constructor Language.Java.Syntax.C1_0TypeArgument instance GHC.Generics.Datatype Language.Java.Syntax.D1TypeArgument instance GHC.Generics.Constructor Language.Java.Syntax.C1_0ClassType instance GHC.Generics.Datatype Language.Java.Syntax.D1ClassType instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Ident instance GHC.Generics.Datatype Language.Java.Syntax.D1Ident instance GHC.Generics.Constructor Language.Java.Syntax.C1_7PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_6PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_5PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_4PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_3PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_2PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_1PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_0PrimType instance GHC.Generics.Datatype Language.Java.Syntax.D1PrimType instance GHC.Generics.Constructor Language.Java.Syntax.C1_11AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_10AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_9AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_8AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_7AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_6AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_5AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_4AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_3AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_2AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_1AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_0AssignOp instance GHC.Generics.Datatype Language.Java.Syntax.D1AssignOp instance GHC.Generics.Constructor Language.Java.Syntax.C1_18Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_17Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_16Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_15Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_14Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_13Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_12Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_11Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_10Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_9Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_8Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_7Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_6Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_5Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_4Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_3Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_2Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Op instance GHC.Generics.Datatype Language.Java.Syntax.D1Op instance GHC.Generics.Constructor Language.Java.Syntax.C1_7Literal instance GHC.Generics.Constructor Language.Java.Syntax.C1_6Literal instance GHC.Generics.Constructor Language.Java.Syntax.C1_5Literal instance GHC.Generics.Constructor Language.Java.Syntax.C1_4Literal instance GHC.Generics.Constructor Language.Java.Syntax.C1_3Literal instance GHC.Generics.Constructor Language.Java.Syntax.C1_2Literal instance GHC.Generics.Constructor Language.Java.Syntax.C1_1Literal instance GHC.Generics.Constructor Language.Java.Syntax.C1_0Literal instance GHC.Generics.Datatype Language.Java.Syntax.D1Literal instance Data.Data.Data Language.Java.Syntax.CompilationUnit instance GHC.Generics.Generic Language.Java.Syntax.CompilationUnit instance GHC.Show.Show Language.Java.Syntax.CompilationUnit instance GHC.Classes.Ord Language.Java.Syntax.CompilationUnit instance GHC.Classes.Eq Language.Java.Syntax.CompilationUnit instance Data.Data.Data Language.Java.Syntax.PackageDecl instance GHC.Generics.Generic Language.Java.Syntax.PackageDecl instance GHC.Show.Show Language.Java.Syntax.PackageDecl instance GHC.Classes.Ord Language.Java.Syntax.PackageDecl instance GHC.Classes.Eq Language.Java.Syntax.PackageDecl instance Data.Data.Data Language.Java.Syntax.ImportDecl instance GHC.Generics.Generic Language.Java.Syntax.ImportDecl instance GHC.Show.Show Language.Java.Syntax.ImportDecl instance GHC.Classes.Ord Language.Java.Syntax.ImportDecl instance GHC.Classes.Eq Language.Java.Syntax.ImportDecl instance Data.Data.Data Language.Java.Syntax.TypeDecl instance GHC.Generics.Generic Language.Java.Syntax.TypeDecl instance GHC.Show.Show Language.Java.Syntax.TypeDecl instance GHC.Classes.Ord Language.Java.Syntax.TypeDecl instance GHC.Classes.Eq Language.Java.Syntax.TypeDecl instance Data.Data.Data Language.Java.Syntax.Lhs instance GHC.Generics.Generic Language.Java.Syntax.Lhs instance GHC.Show.Show Language.Java.Syntax.Lhs instance GHC.Classes.Ord Language.Java.Syntax.Lhs instance GHC.Classes.Eq Language.Java.Syntax.Lhs instance Data.Data.Data Language.Java.Syntax.ArrayIndex instance GHC.Generics.Generic Language.Java.Syntax.ArrayIndex instance GHC.Show.Show Language.Java.Syntax.ArrayIndex instance GHC.Classes.Ord Language.Java.Syntax.ArrayIndex instance GHC.Classes.Eq Language.Java.Syntax.ArrayIndex instance Data.Data.Data Language.Java.Syntax.FieldAccess instance GHC.Generics.Generic Language.Java.Syntax.FieldAccess instance GHC.Show.Show Language.Java.Syntax.FieldAccess instance GHC.Classes.Ord Language.Java.Syntax.FieldAccess instance GHC.Classes.Eq Language.Java.Syntax.FieldAccess instance Data.Data.Data Language.Java.Syntax.LambdaParams instance GHC.Generics.Generic Language.Java.Syntax.LambdaParams instance GHC.Show.Show Language.Java.Syntax.LambdaParams instance GHC.Classes.Ord Language.Java.Syntax.LambdaParams instance GHC.Classes.Eq Language.Java.Syntax.LambdaParams instance Data.Data.Data Language.Java.Syntax.ClassBody instance GHC.Generics.Generic Language.Java.Syntax.ClassBody instance GHC.Show.Show Language.Java.Syntax.ClassBody instance GHC.Classes.Ord Language.Java.Syntax.ClassBody instance GHC.Classes.Eq Language.Java.Syntax.ClassBody instance Data.Data.Data Language.Java.Syntax.EnumConstant instance GHC.Generics.Generic Language.Java.Syntax.EnumConstant instance GHC.Show.Show Language.Java.Syntax.EnumConstant instance GHC.Classes.Ord Language.Java.Syntax.EnumConstant instance GHC.Classes.Eq Language.Java.Syntax.EnumConstant instance Data.Data.Data Language.Java.Syntax.InterfaceBody instance GHC.Generics.Generic Language.Java.Syntax.InterfaceBody instance GHC.Show.Show Language.Java.Syntax.InterfaceBody instance GHC.Classes.Ord Language.Java.Syntax.InterfaceBody instance GHC.Classes.Eq Language.Java.Syntax.InterfaceBody instance Data.Data.Data Language.Java.Syntax.InterfaceDecl instance GHC.Generics.Generic Language.Java.Syntax.InterfaceDecl instance GHC.Show.Show Language.Java.Syntax.InterfaceDecl instance GHC.Classes.Ord Language.Java.Syntax.InterfaceDecl instance GHC.Classes.Eq Language.Java.Syntax.InterfaceDecl instance Data.Data.Data Language.Java.Syntax.MethodBody instance GHC.Generics.Generic Language.Java.Syntax.MethodBody instance GHC.Show.Show Language.Java.Syntax.MethodBody instance GHC.Classes.Ord Language.Java.Syntax.MethodBody instance GHC.Classes.Eq Language.Java.Syntax.MethodBody instance Data.Data.Data Language.Java.Syntax.ExplConstrInv instance GHC.Generics.Generic Language.Java.Syntax.ExplConstrInv instance GHC.Show.Show Language.Java.Syntax.ExplConstrInv instance GHC.Classes.Ord Language.Java.Syntax.ExplConstrInv instance GHC.Classes.Eq Language.Java.Syntax.ExplConstrInv instance Data.Data.Data Language.Java.Syntax.ConstructorBody instance GHC.Generics.Generic Language.Java.Syntax.ConstructorBody instance GHC.Show.Show Language.Java.Syntax.ConstructorBody instance GHC.Classes.Ord Language.Java.Syntax.ConstructorBody instance GHC.Classes.Eq Language.Java.Syntax.ConstructorBody instance Data.Data.Data Language.Java.Syntax.MemberDecl instance GHC.Generics.Generic Language.Java.Syntax.MemberDecl instance GHC.Show.Show Language.Java.Syntax.MemberDecl instance GHC.Classes.Ord Language.Java.Syntax.MemberDecl instance GHC.Classes.Eq Language.Java.Syntax.MemberDecl instance Data.Data.Data Language.Java.Syntax.Decl instance GHC.Generics.Generic Language.Java.Syntax.Decl instance GHC.Show.Show Language.Java.Syntax.Decl instance GHC.Classes.Ord Language.Java.Syntax.Decl instance GHC.Classes.Eq Language.Java.Syntax.Decl instance Data.Data.Data Language.Java.Syntax.EnumBody instance GHC.Generics.Generic Language.Java.Syntax.EnumBody instance GHC.Show.Show Language.Java.Syntax.EnumBody instance GHC.Classes.Ord Language.Java.Syntax.EnumBody instance GHC.Classes.Eq Language.Java.Syntax.EnumBody instance Data.Data.Data Language.Java.Syntax.ClassDecl instance GHC.Generics.Generic Language.Java.Syntax.ClassDecl instance GHC.Show.Show Language.Java.Syntax.ClassDecl instance GHC.Classes.Ord Language.Java.Syntax.ClassDecl instance GHC.Classes.Eq Language.Java.Syntax.ClassDecl instance Data.Data.Data Language.Java.Syntax.FormalParam instance GHC.Generics.Generic Language.Java.Syntax.FormalParam instance GHC.Show.Show Language.Java.Syntax.FormalParam instance GHC.Classes.Ord Language.Java.Syntax.FormalParam instance GHC.Classes.Eq Language.Java.Syntax.FormalParam instance Data.Data.Data Language.Java.Syntax.Catch instance GHC.Generics.Generic Language.Java.Syntax.Catch instance GHC.Show.Show Language.Java.Syntax.Catch instance GHC.Classes.Ord Language.Java.Syntax.Catch instance GHC.Classes.Eq Language.Java.Syntax.Catch instance Data.Data.Data Language.Java.Syntax.SwitchLabel instance GHC.Generics.Generic Language.Java.Syntax.SwitchLabel instance GHC.Show.Show Language.Java.Syntax.SwitchLabel instance GHC.Classes.Ord Language.Java.Syntax.SwitchLabel instance GHC.Classes.Eq Language.Java.Syntax.SwitchLabel instance Data.Data.Data Language.Java.Syntax.SwitchBlock instance GHC.Generics.Generic Language.Java.Syntax.SwitchBlock instance GHC.Show.Show Language.Java.Syntax.SwitchBlock instance GHC.Classes.Ord Language.Java.Syntax.SwitchBlock instance GHC.Classes.Eq Language.Java.Syntax.SwitchBlock instance Data.Data.Data Language.Java.Syntax.VarDecl instance GHC.Generics.Generic Language.Java.Syntax.VarDecl instance GHC.Show.Show Language.Java.Syntax.VarDecl instance GHC.Classes.Ord Language.Java.Syntax.VarDecl instance GHC.Classes.Eq Language.Java.Syntax.VarDecl instance Data.Data.Data Language.Java.Syntax.Modifier instance GHC.Generics.Generic Language.Java.Syntax.Modifier instance GHC.Show.Show Language.Java.Syntax.Modifier instance GHC.Classes.Ord Language.Java.Syntax.Modifier instance GHC.Classes.Eq Language.Java.Syntax.Modifier instance Data.Data.Data Language.Java.Syntax.ForInit instance GHC.Generics.Generic Language.Java.Syntax.ForInit instance GHC.Show.Show Language.Java.Syntax.ForInit instance GHC.Classes.Ord Language.Java.Syntax.ForInit instance GHC.Classes.Eq Language.Java.Syntax.ForInit instance Data.Data.Data Language.Java.Syntax.Stmt instance GHC.Generics.Generic Language.Java.Syntax.Stmt instance GHC.Show.Show Language.Java.Syntax.Stmt instance GHC.Classes.Ord Language.Java.Syntax.Stmt instance GHC.Classes.Eq Language.Java.Syntax.Stmt instance Data.Data.Data Language.Java.Syntax.BlockStmt instance GHC.Generics.Generic Language.Java.Syntax.BlockStmt instance GHC.Show.Show Language.Java.Syntax.BlockStmt instance GHC.Classes.Ord Language.Java.Syntax.BlockStmt instance GHC.Classes.Eq Language.Java.Syntax.BlockStmt instance Data.Data.Data Language.Java.Syntax.Block instance GHC.Generics.Generic Language.Java.Syntax.Block instance GHC.Show.Show Language.Java.Syntax.Block instance GHC.Classes.Ord Language.Java.Syntax.Block instance GHC.Classes.Eq Language.Java.Syntax.Block instance Data.Data.Data Language.Java.Syntax.LambdaExpression instance GHC.Generics.Generic Language.Java.Syntax.LambdaExpression instance GHC.Show.Show Language.Java.Syntax.LambdaExpression instance GHC.Classes.Ord Language.Java.Syntax.LambdaExpression instance GHC.Classes.Eq Language.Java.Syntax.LambdaExpression instance Data.Data.Data Language.Java.Syntax.MethodInvocation instance GHC.Generics.Generic Language.Java.Syntax.MethodInvocation instance GHC.Show.Show Language.Java.Syntax.MethodInvocation instance GHC.Classes.Ord Language.Java.Syntax.MethodInvocation instance GHC.Classes.Eq Language.Java.Syntax.MethodInvocation instance Data.Data.Data Language.Java.Syntax.Exp instance GHC.Generics.Generic Language.Java.Syntax.Exp instance GHC.Show.Show Language.Java.Syntax.Exp instance GHC.Classes.Ord Language.Java.Syntax.Exp instance GHC.Classes.Eq Language.Java.Syntax.Exp instance Data.Data.Data Language.Java.Syntax.ArrayInit instance GHC.Generics.Generic Language.Java.Syntax.ArrayInit instance GHC.Show.Show Language.Java.Syntax.ArrayInit instance GHC.Classes.Ord Language.Java.Syntax.ArrayInit instance GHC.Classes.Eq Language.Java.Syntax.ArrayInit instance Data.Data.Data Language.Java.Syntax.VarInit instance GHC.Generics.Generic Language.Java.Syntax.VarInit instance GHC.Show.Show Language.Java.Syntax.VarInit instance GHC.Classes.Ord Language.Java.Syntax.VarInit instance GHC.Classes.Eq Language.Java.Syntax.VarInit instance Data.Data.Data Language.Java.Syntax.ElementValue instance GHC.Generics.Generic Language.Java.Syntax.ElementValue instance GHC.Show.Show Language.Java.Syntax.ElementValue instance GHC.Classes.Ord Language.Java.Syntax.ElementValue instance GHC.Classes.Eq Language.Java.Syntax.ElementValue instance Data.Data.Data Language.Java.Syntax.Annotation instance GHC.Generics.Generic Language.Java.Syntax.Annotation instance GHC.Show.Show Language.Java.Syntax.Annotation instance GHC.Classes.Ord Language.Java.Syntax.Annotation instance GHC.Classes.Eq Language.Java.Syntax.Annotation instance Data.Data.Data Language.Java.Syntax.Name instance GHC.Generics.Generic Language.Java.Syntax.Name instance GHC.Show.Show Language.Java.Syntax.Name instance GHC.Classes.Ord Language.Java.Syntax.Name instance GHC.Classes.Eq Language.Java.Syntax.Name instance Data.Data.Data Language.Java.Syntax.VarDeclId instance GHC.Generics.Generic Language.Java.Syntax.VarDeclId instance GHC.Show.Show Language.Java.Syntax.VarDeclId instance GHC.Classes.Ord Language.Java.Syntax.VarDeclId instance GHC.Classes.Eq Language.Java.Syntax.VarDeclId instance Data.Data.Data Language.Java.Syntax.TypeParam instance GHC.Generics.Generic Language.Java.Syntax.TypeParam instance GHC.Show.Show Language.Java.Syntax.TypeParam instance GHC.Classes.Ord Language.Java.Syntax.TypeParam instance GHC.Classes.Eq Language.Java.Syntax.TypeParam instance Data.Data.Data Language.Java.Syntax.Type instance GHC.Generics.Generic Language.Java.Syntax.Type instance GHC.Show.Show Language.Java.Syntax.Type instance GHC.Classes.Ord Language.Java.Syntax.Type instance GHC.Classes.Eq Language.Java.Syntax.Type instance Data.Data.Data Language.Java.Syntax.RefType instance GHC.Generics.Generic Language.Java.Syntax.RefType instance GHC.Show.Show Language.Java.Syntax.RefType instance GHC.Classes.Ord Language.Java.Syntax.RefType instance GHC.Classes.Eq Language.Java.Syntax.RefType instance Data.Data.Data Language.Java.Syntax.WildcardBound instance GHC.Generics.Generic Language.Java.Syntax.WildcardBound instance GHC.Show.Show Language.Java.Syntax.WildcardBound instance GHC.Classes.Ord Language.Java.Syntax.WildcardBound instance GHC.Classes.Eq Language.Java.Syntax.WildcardBound instance Data.Data.Data Language.Java.Syntax.TypeArgument instance GHC.Generics.Generic Language.Java.Syntax.TypeArgument instance GHC.Show.Show Language.Java.Syntax.TypeArgument instance GHC.Classes.Ord Language.Java.Syntax.TypeArgument instance GHC.Classes.Eq Language.Java.Syntax.TypeArgument instance Data.Data.Data Language.Java.Syntax.ClassType instance GHC.Generics.Generic Language.Java.Syntax.ClassType instance GHC.Show.Show Language.Java.Syntax.ClassType instance GHC.Classes.Ord Language.Java.Syntax.ClassType instance GHC.Classes.Eq Language.Java.Syntax.ClassType instance Data.Data.Data Language.Java.Syntax.Ident instance GHC.Generics.Generic Language.Java.Syntax.Ident instance GHC.Show.Show Language.Java.Syntax.Ident instance GHC.Classes.Ord Language.Java.Syntax.Ident instance GHC.Classes.Eq Language.Java.Syntax.Ident instance Data.Data.Data Language.Java.Syntax.PrimType instance GHC.Generics.Generic Language.Java.Syntax.PrimType instance GHC.Show.Show Language.Java.Syntax.PrimType instance GHC.Classes.Ord Language.Java.Syntax.PrimType instance GHC.Classes.Eq Language.Java.Syntax.PrimType instance Data.Data.Data Language.Java.Syntax.AssignOp instance GHC.Generics.Generic Language.Java.Syntax.AssignOp instance GHC.Show.Show Language.Java.Syntax.AssignOp instance GHC.Classes.Ord Language.Java.Syntax.AssignOp instance GHC.Classes.Eq Language.Java.Syntax.AssignOp instance Data.Data.Data Language.Java.Syntax.Op instance GHC.Generics.Generic Language.Java.Syntax.Op instance GHC.Show.Show Language.Java.Syntax.Op instance GHC.Classes.Ord Language.Java.Syntax.Op instance GHC.Classes.Eq Language.Java.Syntax.Op instance Data.Data.Data Language.Java.Syntax.Literal instance GHC.Generics.Generic Language.Java.Syntax.Literal instance GHC.Show.Show Language.Java.Syntax.Literal instance GHC.Classes.Ord Language.Java.Syntax.Literal instance GHC.Classes.Eq Language.Java.Syntax.Literal module Language.Java.Pretty prettyPrint :: Pretty a => a -> String parenPrec :: Int -> Int -> Doc -> Doc class Pretty a where pretty = prettyPrec 0 prettyPrec _ = pretty pretty :: Pretty a => a -> Doc prettyPrec :: Pretty a => Int -> a -> Doc ppEVList :: (Pretty a, Pretty a1) => Int -> [(a, a1)] -> Doc ppArgs :: Pretty a => Int -> [a] -> Doc ppTypeParams :: Pretty a => Int -> [a] -> Doc ppImplements :: Int -> [RefType] -> Doc ppExtends :: Int -> [RefType] -> Doc ppThrows :: Int -> [ExceptionType] -> Doc ppResultType :: Int -> Maybe Type -> Doc prettyNestedStmt :: Int -> Stmt -> Doc maybePP :: Pretty a => Int -> Maybe a -> Doc opt :: Bool -> Doc -> Doc braceBlock :: [Doc] -> Doc opPrec :: Num a => Op -> a escapeGeneral :: Char -> String escapeChar :: Char -> String escapeString :: Char -> String instance Language.Java.Pretty.Pretty Language.Java.Syntax.CompilationUnit instance Language.Java.Pretty.Pretty Language.Java.Syntax.PackageDecl instance Language.Java.Pretty.Pretty Language.Java.Syntax.ImportDecl instance Language.Java.Pretty.Pretty Language.Java.Syntax.TypeDecl instance Language.Java.Pretty.Pretty Language.Java.Syntax.ClassDecl instance Language.Java.Pretty.Pretty Language.Java.Syntax.ClassBody instance Language.Java.Pretty.Pretty Language.Java.Syntax.EnumBody instance Language.Java.Pretty.Pretty Language.Java.Syntax.EnumConstant instance Language.Java.Pretty.Pretty Language.Java.Syntax.InterfaceDecl instance Language.Java.Pretty.Pretty Language.Java.Syntax.InterfaceBody instance Language.Java.Pretty.Pretty Language.Java.Syntax.Decl instance Language.Java.Pretty.Pretty Language.Java.Syntax.MemberDecl instance Language.Java.Pretty.Pretty Language.Java.Syntax.VarDecl instance Language.Java.Pretty.Pretty Language.Java.Syntax.VarDeclId instance Language.Java.Pretty.Pretty Language.Java.Syntax.VarInit instance Language.Java.Pretty.Pretty Language.Java.Syntax.FormalParam instance Language.Java.Pretty.Pretty Language.Java.Syntax.MethodBody instance Language.Java.Pretty.Pretty Language.Java.Syntax.ConstructorBody instance Language.Java.Pretty.Pretty Language.Java.Syntax.ExplConstrInv instance Language.Java.Pretty.Pretty Language.Java.Syntax.Modifier instance Language.Java.Pretty.Pretty Language.Java.Syntax.Annotation instance Language.Java.Pretty.Pretty Language.Java.Syntax.ElementValue instance Language.Java.Pretty.Pretty Language.Java.Syntax.Block instance Language.Java.Pretty.Pretty Language.Java.Syntax.BlockStmt instance Language.Java.Pretty.Pretty Language.Java.Syntax.Stmt instance Language.Java.Pretty.Pretty Language.Java.Syntax.Catch instance Language.Java.Pretty.Pretty Language.Java.Syntax.SwitchBlock instance Language.Java.Pretty.Pretty Language.Java.Syntax.SwitchLabel instance Language.Java.Pretty.Pretty Language.Java.Syntax.ForInit instance Language.Java.Pretty.Pretty Language.Java.Syntax.Exp instance Language.Java.Pretty.Pretty Language.Java.Syntax.Literal instance Language.Java.Pretty.Pretty Language.Java.Syntax.Op instance Language.Java.Pretty.Pretty Language.Java.Syntax.AssignOp instance Language.Java.Pretty.Pretty Language.Java.Syntax.Lhs instance Language.Java.Pretty.Pretty Language.Java.Syntax.ArrayIndex instance Language.Java.Pretty.Pretty Language.Java.Syntax.FieldAccess instance Language.Java.Pretty.Pretty Language.Java.Syntax.MethodInvocation instance Language.Java.Pretty.Pretty Language.Java.Syntax.ArrayInit instance Language.Java.Pretty.Pretty Language.Java.Syntax.Type instance Language.Java.Pretty.Pretty Language.Java.Syntax.RefType instance Language.Java.Pretty.Pretty Language.Java.Syntax.ClassType instance Language.Java.Pretty.Pretty Language.Java.Syntax.TypeArgument instance Language.Java.Pretty.Pretty Language.Java.Syntax.WildcardBound instance Language.Java.Pretty.Pretty Language.Java.Syntax.PrimType instance Language.Java.Pretty.Pretty Language.Java.Syntax.TypeParam instance Language.Java.Pretty.Pretty Language.Java.Syntax.Name instance Language.Java.Pretty.Pretty Language.Java.Syntax.Ident module Language.Java.Lexer data L a L :: Pos -> a -> L a data Token KW_Abstract :: Token KW_Assert :: Token KW_Boolean :: Token KW_Break :: Token KW_Byte :: Token KW_Case :: Token KW_Catch :: Token KW_Char :: Token KW_Class :: Token KW_Const :: Token KW_Continue :: Token KW_Default :: Token KW_Do :: Token KW_Double :: Token KW_Else :: Token KW_Enum :: Token KW_Extends :: Token KW_Final :: Token KW_Finally :: Token KW_Float :: Token KW_For :: Token KW_Goto :: Token KW_If :: Token KW_Implements :: Token KW_Import :: Token KW_Instanceof :: Token KW_Int :: Token KW_Interface :: Token KW_Long :: Token KW_Native :: Token KW_New :: Token KW_Package :: Token KW_Private :: Token KW_Protected :: Token KW_Public :: Token KW_Return :: Token KW_Short :: Token KW_Static :: Token KW_Strictfp :: Token KW_Super :: Token KW_Switch :: Token KW_Synchronized :: Token KW_This :: Token KW_Throw :: Token KW_Throws :: Token KW_Transient :: Token KW_Try :: Token KW_Void :: Token KW_Volatile :: Token KW_While :: Token OpenParen :: Token CloseParen :: Token OpenSquare :: Token CloseSquare :: Token OpenCurly :: Token CloseCurly :: Token SemiColon :: Token Comma :: Token Period :: Token LambdaArrow :: Token MethodRefSep :: Token IntTok :: Integer -> Token LongTok :: Integer -> Token DoubleTok :: Double -> Token FloatTok :: Double -> Token CharTok :: Char -> Token StringTok :: String -> Token BoolTok :: Bool -> Token NullTok :: Token IdentTok :: String -> Token Op_Equal :: Token Op_GThan :: Token Op_LThan :: Token Op_Bang :: Token Op_Tilde :: Token Op_Query :: Token Op_Colon :: Token Op_Equals :: Token Op_LThanE :: Token Op_GThanE :: Token Op_BangE :: Token Op_AAnd :: Token Op_OOr :: Token Op_PPlus :: Token Op_MMinus :: Token Op_Plus :: Token Op_Minus :: Token Op_Star :: Token Op_Slash :: Token Op_And :: Token Op_Or :: Token Op_Caret :: Token Op_Percent :: Token Op_LShift :: Token Op_PlusE :: Token Op_MinusE :: Token Op_StarE :: Token Op_SlashE :: Token Op_AndE :: Token Op_OrE :: Token Op_CaretE :: Token Op_PercentE :: Token Op_LShiftE :: Token Op_RShiftE :: Token Op_RRShiftE :: Token Op_AtSign :: Token lexer :: String -> [L Token] instance GHC.Classes.Eq Language.Java.Lexer.Token instance GHC.Show.Show Language.Java.Lexer.Token instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Java.Lexer.L a) instance GHC.Show.Show a => GHC.Show.Show (Language.Java.Lexer.L a) instance GHC.Show.Show Language.Java.Lexer.AlexPosn instance GHC.Classes.Eq Language.Java.Lexer.AlexPosn instance GHC.Base.Functor Language.Java.Lexer.AlexLastAcc module Language.Java.Parser parser :: Parsec [L Token] () a -> String -> Either ParseError a compilationUnit :: P CompilationUnit packageDecl :: P PackageDecl importDecl :: P ImportDecl typeDecl :: P (Maybe TypeDecl) classDecl :: P (Mod ClassDecl) interfaceDecl :: P (Mod InterfaceDecl) memberDecl :: P (Mod MemberDecl) fieldDecl :: P (Mod MemberDecl) methodDecl :: P (Mod MemberDecl) constrDecl :: P (Mod MemberDecl) interfaceMemberDecl :: P (Mod MemberDecl) absMethodDecl :: P (Mod MemberDecl) formalParams :: P [FormalParam] formalParam :: P FormalParam modifier :: P Modifier varDecls :: P [VarDecl] varDecl :: P VarDecl block :: P Block blockStmt :: P BlockStmt stmt :: P Stmt stmtExp :: P Exp exp :: P Exp primary :: P Exp literal :: P Literal ttype :: P Type primType :: P PrimType refType :: P RefType classType :: P ClassType resultType :: P (Maybe Type) lambdaExp :: P Exp methodRef :: P Exp typeParams :: P [TypeParam] typeParam :: P TypeParam name :: P Name ident :: P Ident empty :: P () list :: P a -> P [a] list1 :: P a -> P [a] seplist :: P a -> P sep -> P [a] seplist1 :: P a -> P sep -> P [a] opt :: P a -> P (Maybe a) bopt :: P a -> P Bool lopt :: P [a] -> P [a] comma :: P () semiColon :: P () period :: P () colon :: P ()