-- 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 ()