hydra-java 0.17.7 → 0.18.0
raw patch · 18 files changed
+25707/−25619 lines, 18 filesdep ~hydra-jvmdep ~hydra-kernelPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hydra-jvm, hydra-kernel
API changes (from Hackage documentation)
- Hydra.Dsl.Java.Environment: aliases :: TypedTerm ModuleName -> TypedTerm (Map ModuleName PackageName) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Map Name Name) -> TypedTerm (Set Name) -> TypedTerm (Map Name Name) -> TypedTerm (Set Name) -> TypedTerm (Maybe Type) -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesAliases :: TypedName Aliases
- Hydra.Dsl.Java.Environment: aliasesBranchVars :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesCurrentNamespace :: TypedTerm Aliases -> TypedTerm ModuleName
- Hydra.Dsl.Java.Environment: aliasesInScopeJavaVars :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesInScopeTypeParams :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesLambdaVars :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesMethodCodomain :: TypedTerm Aliases -> TypedTerm (Maybe Type)
- Hydra.Dsl.Java.Environment: aliasesPackages :: TypedTerm Aliases -> TypedTerm (Map ModuleName PackageName)
- Hydra.Dsl.Java.Environment: aliasesPolymorphicLocals :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesRecursiveVars :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesThunkedVars :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesTrustedTypeVars :: TypedTerm Aliases -> TypedTerm (Set Name)
- Hydra.Dsl.Java.Environment: aliasesTypeVarSubst :: TypedTerm Aliases -> TypedTerm (Map Name Name)
- Hydra.Dsl.Java.Environment: aliasesVarRenames :: TypedTerm Aliases -> TypedTerm (Map Name Name)
- Hydra.Dsl.Java.Environment: aliasesWithBranchVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithCurrentNamespace :: TypedTerm Aliases -> TypedTerm ModuleName -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithInScopeJavaVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithInScopeTypeParams :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithLambdaVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithMethodCodomain :: TypedTerm Aliases -> TypedTerm (Maybe Type) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithPackages :: TypedTerm Aliases -> TypedTerm (Map ModuleName PackageName) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithPolymorphicLocals :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithRecursiveVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithThunkedVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithTrustedTypeVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithTypeVarSubst :: TypedTerm Aliases -> TypedTerm (Map Name Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: aliasesWithVarRenames :: TypedTerm Aliases -> TypedTerm (Map Name Name) -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: javaEnvironment :: TypedTerm Aliases -> TypedTerm Graph -> TypedTerm JavaEnvironment
- Hydra.Dsl.Java.Environment: javaEnvironmentAliases :: TypedTerm JavaEnvironment -> TypedTerm Aliases
- Hydra.Dsl.Java.Environment: javaEnvironmentGraph :: TypedTerm JavaEnvironment -> TypedTerm Graph
- Hydra.Dsl.Java.Environment: javaEnvironmentJavaEnvironment :: TypedName JavaEnvironment
- Hydra.Dsl.Java.Environment: javaEnvironmentWithAliases :: TypedTerm JavaEnvironment -> TypedTerm Aliases -> TypedTerm JavaEnvironment
- Hydra.Dsl.Java.Environment: javaEnvironmentWithGraph :: TypedTerm JavaEnvironment -> TypedTerm Graph -> TypedTerm JavaEnvironment
- Hydra.Dsl.Java.Environment: javaFeatures :: TypedTerm Bool -> TypedTerm JavaFeatures
- Hydra.Dsl.Java.Environment: javaFeaturesJavaFeatures :: TypedName JavaFeatures
- Hydra.Dsl.Java.Environment: javaFeaturesSupportsDiamondOperator :: TypedTerm JavaFeatures -> TypedTerm Bool
- Hydra.Dsl.Java.Environment: javaFeaturesWithSupportsDiamondOperator :: TypedTerm JavaFeatures -> TypedTerm Bool -> TypedTerm JavaFeatures
- Hydra.Dsl.Java.Environment: javaSymbolClassConstant :: TypedTerm JavaSymbolClass
- Hydra.Dsl.Java.Environment: javaSymbolClassHoistedLambda :: TypedTerm Int -> TypedTerm JavaSymbolClass
- Hydra.Dsl.Java.Environment: javaSymbolClassJavaSymbolClass :: TypedName JavaSymbolClass
- Hydra.Dsl.Java.Environment: javaSymbolClassLocalVariable :: TypedTerm JavaSymbolClass
- Hydra.Dsl.Java.Environment: javaSymbolClassNullaryFunction :: TypedTerm JavaSymbolClass
- Hydra.Dsl.Java.Environment: javaSymbolClassUnaryFunction :: TypedTerm JavaSymbolClass
- Hydra.Dsl.Java.Language: javaLanguage :: TypedTerm Language
- Hydra.Dsl.Java.Language: javaMaxTupleLength :: TypedTerm Int
- Hydra.Dsl.Java.Language: reservedWords :: TypedTerm (Set String)
- Hydra.Dsl.Java.Syntax: additionalBound :: TypedTerm InterfaceType -> TypedTerm AdditionalBound
- Hydra.Dsl.Java.Syntax: additionalBoundAdditionalBound :: TypedName AdditionalBound
- Hydra.Dsl.Java.Syntax: additiveExpressionAdditiveExpression :: TypedName AdditiveExpression
- Hydra.Dsl.Java.Syntax: additiveExpressionMinus :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression
- Hydra.Dsl.Java.Syntax: additiveExpressionPlus :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression
- Hydra.Dsl.Java.Syntax: additiveExpressionUnary :: TypedTerm MultiplicativeExpression -> TypedTerm AdditiveExpression
- Hydra.Dsl.Java.Syntax: additiveExpression_Binary :: TypedTerm AdditiveExpression -> TypedTerm MultiplicativeExpression -> TypedTerm AdditiveExpression_Binary
- Hydra.Dsl.Java.Syntax: additiveExpression_BinaryAdditiveExpression_Binary :: TypedName AdditiveExpression_Binary
- Hydra.Dsl.Java.Syntax: additiveExpression_BinaryLhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression
- Hydra.Dsl.Java.Syntax: additiveExpression_BinaryRhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm MultiplicativeExpression
- Hydra.Dsl.Java.Syntax: additiveExpression_BinaryWithLhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression -> TypedTerm AdditiveExpression_Binary
- Hydra.Dsl.Java.Syntax: additiveExpression_BinaryWithRhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm MultiplicativeExpression -> TypedTerm AdditiveExpression_Binary
- Hydra.Dsl.Java.Syntax: ambiguousName :: TypedTerm [Identifier] -> TypedTerm AmbiguousName
- Hydra.Dsl.Java.Syntax: ambiguousNameAmbiguousName :: TypedName AmbiguousName
- Hydra.Dsl.Java.Syntax: andExpression :: TypedTerm [EqualityExpression] -> TypedTerm AndExpression
- Hydra.Dsl.Java.Syntax: andExpressionAndExpression :: TypedName AndExpression
- Hydra.Dsl.Java.Syntax: annotatedIdentifier :: TypedTerm [Annotation] -> TypedTerm Identifier -> TypedTerm AnnotatedIdentifier
- Hydra.Dsl.Java.Syntax: annotatedIdentifierAnnotatedIdentifier :: TypedName AnnotatedIdentifier
- Hydra.Dsl.Java.Syntax: annotatedIdentifierAnnotations :: TypedTerm AnnotatedIdentifier -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: annotatedIdentifierIdentifier :: TypedTerm AnnotatedIdentifier -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: annotatedIdentifierWithAnnotations :: TypedTerm AnnotatedIdentifier -> TypedTerm [Annotation] -> TypedTerm AnnotatedIdentifier
- Hydra.Dsl.Java.Syntax: annotatedIdentifierWithIdentifier :: TypedTerm AnnotatedIdentifier -> TypedTerm Identifier -> TypedTerm AnnotatedIdentifier
- Hydra.Dsl.Java.Syntax: annotationAnnotation :: TypedName Annotation
- Hydra.Dsl.Java.Syntax: annotationInterfaceBody :: TypedTerm [AnnotationInterfaceMemberDeclaration] -> TypedTerm AnnotationInterfaceBody
- Hydra.Dsl.Java.Syntax: annotationInterfaceBodyAnnotationInterfaceBody :: TypedName AnnotationInterfaceBody
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclaration :: TypedTerm [InterfaceModifier] -> TypedTerm TypeIdentifier -> TypedTerm AnnotationInterfaceBody -> TypedTerm AnnotationInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationAnnotationInterfaceDeclaration :: TypedName AnnotationInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationBody :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm AnnotationInterfaceBody
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationIdentifier :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationModifiers :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm [InterfaceModifier]
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationWithBody :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm AnnotationInterfaceBody -> TypedTerm AnnotationInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationWithIdentifier :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm TypeIdentifier -> TypedTerm AnnotationInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationWithModifiers :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm [InterfaceModifier] -> TypedTerm AnnotationInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclaration :: TypedTerm [AnnotationInterfaceElementModifier] -> TypedTerm UnannType -> TypedTerm Identifier -> TypedTerm (Maybe Dims) -> TypedTerm (Maybe DefaultValue) -> TypedTerm AnnotationInterfaceElementDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationAnnotationInterfaceElementDeclaration :: TypedName AnnotationInterfaceElementDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationDefault :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe DefaultValue)
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationDims :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe Dims)
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationIdentifier :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationModifiers :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm [AnnotationInterfaceElementModifier]
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationType :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationWithDefault :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe DefaultValue) -> TypedTerm AnnotationInterfaceElementDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationWithDims :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe Dims) -> TypedTerm AnnotationInterfaceElementDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationWithIdentifier :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm Identifier -> TypedTerm AnnotationInterfaceElementDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationWithModifiers :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm [AnnotationInterfaceElementModifier] -> TypedTerm AnnotationInterfaceElementDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationWithType :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm UnannType -> TypedTerm AnnotationInterfaceElementDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementModifierAbstract :: TypedTerm AnnotationInterfaceElementModifier
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementModifierAnnotation :: TypedTerm Annotation -> TypedTerm AnnotationInterfaceElementModifier
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementModifierAnnotationInterfaceElementModifier :: TypedName AnnotationInterfaceElementModifier
- Hydra.Dsl.Java.Syntax: annotationInterfaceElementModifierPublic :: TypedTerm AnnotationInterfaceElementModifier
- Hydra.Dsl.Java.Syntax: annotationInterfaceMemberDeclarationAnnotationInterface :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceMemberDeclarationAnnotationInterfaceMemberDeclaration :: TypedName AnnotationInterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceMemberDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceMemberDeclarationConstant :: TypedTerm ConstantDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: annotationInterfaceMemberDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: annotationMarker :: TypedTerm MarkerAnnotation -> TypedTerm Annotation
- Hydra.Dsl.Java.Syntax: annotationNormal :: TypedTerm NormalAnnotation -> TypedTerm Annotation
- Hydra.Dsl.Java.Syntax: annotationSingleElement :: TypedTerm SingleElementAnnotation -> TypedTerm Annotation
- Hydra.Dsl.Java.Syntax: arrayAccess :: TypedTerm (Maybe Expression) -> TypedTerm ArrayAccess_Variant -> TypedTerm ArrayAccess
- Hydra.Dsl.Java.Syntax: arrayAccessArrayAccess :: TypedName ArrayAccess
- Hydra.Dsl.Java.Syntax: arrayAccessExpression :: TypedTerm ArrayAccess -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: arrayAccessVariant :: TypedTerm ArrayAccess -> TypedTerm ArrayAccess_Variant
- Hydra.Dsl.Java.Syntax: arrayAccessWithExpression :: TypedTerm ArrayAccess -> TypedTerm (Maybe Expression) -> TypedTerm ArrayAccess
- Hydra.Dsl.Java.Syntax: arrayAccessWithVariant :: TypedTerm ArrayAccess -> TypedTerm ArrayAccess_Variant -> TypedTerm ArrayAccess
- Hydra.Dsl.Java.Syntax: arrayAccess_VariantArrayAccess_Variant :: TypedName ArrayAccess_Variant
- Hydra.Dsl.Java.Syntax: arrayAccess_VariantArrayCreationWithInitializer :: TypedTerm ArrayCreationExpressionWithInitializer -> TypedTerm ArrayAccess_Variant
- Hydra.Dsl.Java.Syntax: arrayAccess_VariantName :: TypedTerm ExpressionName -> TypedTerm ArrayAccess_Variant
- Hydra.Dsl.Java.Syntax: arrayAccess_VariantPrimary :: TypedTerm PrimaryNoNewArrayExpression -> TypedTerm ArrayAccess_Variant
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionArrayCreationExpression :: TypedName ArrayCreationExpression
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionNoInit :: TypedTerm ArrayCreationExpressionWithoutInitializer -> TypedTerm ArrayCreationExpression
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInit :: TypedTerm ArrayCreationExpressionWithInitializer -> TypedTerm ArrayCreationExpression
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializerArrayCreationExpressionWithInitializer :: TypedName ArrayCreationExpressionWithInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializerClassOrInterface :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ArrayCreationExpressionWithInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializerPrimitive :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm ArrayCreationExpressionWithInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm [Dims] -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceArray :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ArrayInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceArrayCreationExpressionWithInitializer_ClassOrInterface :: TypedName ArrayCreationExpressionWithInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceDims :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm [Dims]
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceType :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceWithArray :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceWithDims :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm [Dims] -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceWithType :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_Primitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [Dims] -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveArray :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm ArrayInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveArrayCreationExpressionWithInitializer_Primitive :: TypedName ArrayCreationExpressionWithInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveDims :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm [Dims]
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveType :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveWithArray :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveWithDims :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm [Dims] -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveWithType :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializerArrayCreationExpressionWithoutInitializer :: TypedName ArrayCreationExpressionWithoutInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializerClassOrInterface :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm ArrayCreationExpressionWithoutInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializerPrimitive :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm ArrayCreationExpressionWithoutInitializer
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm [DimExpr] -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceArrayCreationExpressionWithoutInitializer_ClassOrInterface :: TypedName ArrayCreationExpressionWithoutInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm [DimExpr]
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm (Maybe Dims)
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm [DimExpr] -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithType :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_Primitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [DimExpr] -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveArrayCreationExpressionWithoutInitializer_Primitive :: TypedName ArrayCreationExpressionWithoutInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm [DimExpr]
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm (Maybe Dims)
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveType :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveWithDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm [DimExpr] -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveWithDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveWithType :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
- Hydra.Dsl.Java.Syntax: arrayInitializer :: TypedTerm [[VariableInitializer]] -> TypedTerm ArrayInitializer
- Hydra.Dsl.Java.Syntax: arrayInitializerArrayInitializer :: TypedName ArrayInitializer
- Hydra.Dsl.Java.Syntax: arrayType :: TypedTerm Dims -> TypedTerm ArrayType_Variant -> TypedTerm ArrayType
- Hydra.Dsl.Java.Syntax: arrayTypeArrayType :: TypedName ArrayType
- Hydra.Dsl.Java.Syntax: arrayTypeDims :: TypedTerm ArrayType -> TypedTerm Dims
- Hydra.Dsl.Java.Syntax: arrayTypeVariant :: TypedTerm ArrayType -> TypedTerm ArrayType_Variant
- Hydra.Dsl.Java.Syntax: arrayTypeWithDims :: TypedTerm ArrayType -> TypedTerm Dims -> TypedTerm ArrayType
- Hydra.Dsl.Java.Syntax: arrayTypeWithVariant :: TypedTerm ArrayType -> TypedTerm ArrayType_Variant -> TypedTerm ArrayType
- Hydra.Dsl.Java.Syntax: arrayType_VariantArrayType_Variant :: TypedName ArrayType_Variant
- Hydra.Dsl.Java.Syntax: arrayType_VariantClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm ArrayType_Variant
- Hydra.Dsl.Java.Syntax: arrayType_VariantPrimitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm ArrayType_Variant
- Hydra.Dsl.Java.Syntax: arrayType_VariantVariable :: TypedTerm TypeVariable -> TypedTerm ArrayType_Variant
- Hydra.Dsl.Java.Syntax: assertStatementAssertStatement :: TypedName AssertStatement
- Hydra.Dsl.Java.Syntax: assertStatementPair :: TypedTerm AssertStatement_Pair -> TypedTerm AssertStatement
- Hydra.Dsl.Java.Syntax: assertStatementSingle :: TypedTerm Expression -> TypedTerm AssertStatement
- Hydra.Dsl.Java.Syntax: assertStatement_Pair :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm AssertStatement_Pair
- Hydra.Dsl.Java.Syntax: assertStatement_PairAssertStatement_Pair :: TypedName AssertStatement_Pair
- Hydra.Dsl.Java.Syntax: assertStatement_PairFirst :: TypedTerm AssertStatement_Pair -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: assertStatement_PairSecond :: TypedTerm AssertStatement_Pair -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: assertStatement_PairWithFirst :: TypedTerm AssertStatement_Pair -> TypedTerm Expression -> TypedTerm AssertStatement_Pair
- Hydra.Dsl.Java.Syntax: assertStatement_PairWithSecond :: TypedTerm AssertStatement_Pair -> TypedTerm Expression -> TypedTerm AssertStatement_Pair
- Hydra.Dsl.Java.Syntax: assignment :: TypedTerm LeftHandSide -> TypedTerm AssignmentOperator -> TypedTerm Expression -> TypedTerm Assignment
- Hydra.Dsl.Java.Syntax: assignmentAssignment :: TypedName Assignment
- Hydra.Dsl.Java.Syntax: assignmentExpression :: TypedTerm Assignment -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: assignmentExpressionAssignment :: TypedTerm Assignment -> TypedTerm AssignmentExpression
- Hydra.Dsl.Java.Syntax: assignmentExpressionAssignmentExpression :: TypedName AssignmentExpression
- Hydra.Dsl.Java.Syntax: assignmentExpressionConditional :: TypedTerm ConditionalExpression -> TypedTerm AssignmentExpression
- Hydra.Dsl.Java.Syntax: assignmentLhs :: TypedTerm Assignment -> TypedTerm LeftHandSide
- Hydra.Dsl.Java.Syntax: assignmentOp :: TypedTerm Assignment -> TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorAnd :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorAssignmentOperator :: TypedName AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorDiv :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorMinus :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorMod :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorOr :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorPlus :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorShiftLeft :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorShiftRight :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorShiftRightZeroFill :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorSimple :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorTimes :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentOperatorXor :: TypedTerm AssignmentOperator
- Hydra.Dsl.Java.Syntax: assignmentWithExpression :: TypedTerm Assignment -> TypedTerm Expression -> TypedTerm Assignment
- Hydra.Dsl.Java.Syntax: assignmentWithLhs :: TypedTerm Assignment -> TypedTerm LeftHandSide -> TypedTerm Assignment
- Hydra.Dsl.Java.Syntax: assignmentWithOp :: TypedTerm Assignment -> TypedTerm AssignmentOperator -> TypedTerm Assignment
- Hydra.Dsl.Java.Syntax: basicForStatement :: TypedTerm ForCond -> TypedTerm Statement -> TypedTerm BasicForStatement
- Hydra.Dsl.Java.Syntax: basicForStatementBasicForStatement :: TypedName BasicForStatement
- Hydra.Dsl.Java.Syntax: basicForStatementBody :: TypedTerm BasicForStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: basicForStatementCond :: TypedTerm BasicForStatement -> TypedTerm ForCond
- Hydra.Dsl.Java.Syntax: basicForStatementNoShortIf :: TypedTerm ForCond -> TypedTerm StatementNoShortIf -> TypedTerm BasicForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: basicForStatementNoShortIfBasicForStatementNoShortIf :: TypedName BasicForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: basicForStatementNoShortIfBody :: TypedTerm BasicForStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: basicForStatementNoShortIfCond :: TypedTerm BasicForStatementNoShortIf -> TypedTerm ForCond
- Hydra.Dsl.Java.Syntax: basicForStatementNoShortIfWithBody :: TypedTerm BasicForStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm BasicForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: basicForStatementNoShortIfWithCond :: TypedTerm BasicForStatementNoShortIf -> TypedTerm ForCond -> TypedTerm BasicForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: basicForStatementWithBody :: TypedTerm BasicForStatement -> TypedTerm Statement -> TypedTerm BasicForStatement
- Hydra.Dsl.Java.Syntax: basicForStatementWithCond :: TypedTerm BasicForStatement -> TypedTerm ForCond -> TypedTerm BasicForStatement
- Hydra.Dsl.Java.Syntax: block :: TypedTerm [BlockStatement] -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: blockBlock :: TypedName Block
- Hydra.Dsl.Java.Syntax: blockStatementBlockStatement :: TypedName BlockStatement
- Hydra.Dsl.Java.Syntax: blockStatementLocalClassOrInterface :: TypedTerm LocalClassOrInterfaceDeclaration -> TypedTerm BlockStatement
- Hydra.Dsl.Java.Syntax: blockStatementLocalVariableDeclaration :: TypedTerm LocalVariableDeclarationStatement -> TypedTerm BlockStatement
- Hydra.Dsl.Java.Syntax: blockStatementStatement :: TypedTerm Statement -> TypedTerm BlockStatement
- Hydra.Dsl.Java.Syntax: booleanArrayArray :: TypedTerm BooleanArray -> TypedTerm BooleanArray
- Hydra.Dsl.Java.Syntax: booleanArrayBooleanArray :: TypedName BooleanArray
- Hydra.Dsl.Java.Syntax: booleanArraySimple :: TypedTerm BooleanArray
- Hydra.Dsl.Java.Syntax: breakStatement :: TypedTerm (Maybe Identifier) -> TypedTerm BreakStatement
- Hydra.Dsl.Java.Syntax: breakStatementBreakStatement :: TypedName BreakStatement
- Hydra.Dsl.Java.Syntax: caseConstant :: TypedTerm ConditionalExpression -> TypedTerm CaseConstant
- Hydra.Dsl.Java.Syntax: caseConstantCaseConstant :: TypedName CaseConstant
- Hydra.Dsl.Java.Syntax: casePattern :: TypedTerm Pattern -> TypedTerm (Maybe Guard) -> TypedTerm CasePattern
- Hydra.Dsl.Java.Syntax: casePatternCasePattern :: TypedName CasePattern
- Hydra.Dsl.Java.Syntax: casePatternGuard :: TypedTerm CasePattern -> TypedTerm (Maybe Guard)
- Hydra.Dsl.Java.Syntax: casePatternPattern :: TypedTerm CasePattern -> TypedTerm Pattern
- Hydra.Dsl.Java.Syntax: casePatternWithGuard :: TypedTerm CasePattern -> TypedTerm (Maybe Guard) -> TypedTerm CasePattern
- Hydra.Dsl.Java.Syntax: casePatternWithPattern :: TypedTerm CasePattern -> TypedTerm Pattern -> TypedTerm CasePattern
- Hydra.Dsl.Java.Syntax: castExpressionCastExpression :: TypedName CastExpression
- Hydra.Dsl.Java.Syntax: castExpressionLambda :: TypedTerm CastExpression_Lambda -> TypedTerm CastExpression
- Hydra.Dsl.Java.Syntax: castExpressionNotPlusMinus :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm CastExpression
- Hydra.Dsl.Java.Syntax: castExpressionPrimitive :: TypedTerm CastExpression_Primitive -> TypedTerm CastExpression
- Hydra.Dsl.Java.Syntax: castExpression_Lambda :: TypedTerm CastExpression_RefAndBounds -> TypedTerm LambdaExpression -> TypedTerm CastExpression_Lambda
- Hydra.Dsl.Java.Syntax: castExpression_LambdaCastExpression_Lambda :: TypedName CastExpression_Lambda
- Hydra.Dsl.Java.Syntax: castExpression_LambdaExpression :: TypedTerm CastExpression_Lambda -> TypedTerm LambdaExpression
- Hydra.Dsl.Java.Syntax: castExpression_LambdaRefAndBounds :: TypedTerm CastExpression_Lambda -> TypedTerm CastExpression_RefAndBounds
- Hydra.Dsl.Java.Syntax: castExpression_LambdaWithExpression :: TypedTerm CastExpression_Lambda -> TypedTerm LambdaExpression -> TypedTerm CastExpression_Lambda
- Hydra.Dsl.Java.Syntax: castExpression_LambdaWithRefAndBounds :: TypedTerm CastExpression_Lambda -> TypedTerm CastExpression_RefAndBounds -> TypedTerm CastExpression_Lambda
- Hydra.Dsl.Java.Syntax: castExpression_NotPlusMinus :: TypedTerm CastExpression_RefAndBounds -> TypedTerm UnaryExpression -> TypedTerm CastExpression_NotPlusMinus
- Hydra.Dsl.Java.Syntax: castExpression_NotPlusMinusCastExpression_NotPlusMinus :: TypedName CastExpression_NotPlusMinus
- Hydra.Dsl.Java.Syntax: castExpression_NotPlusMinusExpression :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: castExpression_NotPlusMinusRefAndBounds :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm CastExpression_RefAndBounds
- Hydra.Dsl.Java.Syntax: castExpression_NotPlusMinusWithExpression :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm UnaryExpression -> TypedTerm CastExpression_NotPlusMinus
- Hydra.Dsl.Java.Syntax: castExpression_NotPlusMinusWithRefAndBounds :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm CastExpression_RefAndBounds -> TypedTerm CastExpression_NotPlusMinus
- Hydra.Dsl.Java.Syntax: castExpression_Primitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm UnaryExpression -> TypedTerm CastExpression_Primitive
- Hydra.Dsl.Java.Syntax: castExpression_PrimitiveCastExpression_Primitive :: TypedName CastExpression_Primitive
- Hydra.Dsl.Java.Syntax: castExpression_PrimitiveExpression :: TypedTerm CastExpression_Primitive -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: castExpression_PrimitiveType :: TypedTerm CastExpression_Primitive -> TypedTerm PrimitiveTypeWithAnnotations
- Hydra.Dsl.Java.Syntax: castExpression_PrimitiveWithExpression :: TypedTerm CastExpression_Primitive -> TypedTerm UnaryExpression -> TypedTerm CastExpression_Primitive
- Hydra.Dsl.Java.Syntax: castExpression_PrimitiveWithType :: TypedTerm CastExpression_Primitive -> TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm CastExpression_Primitive
- Hydra.Dsl.Java.Syntax: castExpression_RefAndBounds :: TypedTerm ReferenceType -> TypedTerm [AdditionalBound] -> TypedTerm CastExpression_RefAndBounds
- Hydra.Dsl.Java.Syntax: castExpression_RefAndBoundsBounds :: TypedTerm CastExpression_RefAndBounds -> TypedTerm [AdditionalBound]
- Hydra.Dsl.Java.Syntax: castExpression_RefAndBoundsCastExpression_RefAndBounds :: TypedName CastExpression_RefAndBounds
- Hydra.Dsl.Java.Syntax: castExpression_RefAndBoundsType :: TypedTerm CastExpression_RefAndBounds -> TypedTerm ReferenceType
- Hydra.Dsl.Java.Syntax: castExpression_RefAndBoundsWithBounds :: TypedTerm CastExpression_RefAndBounds -> TypedTerm [AdditionalBound] -> TypedTerm CastExpression_RefAndBounds
- Hydra.Dsl.Java.Syntax: castExpression_RefAndBoundsWithType :: TypedTerm CastExpression_RefAndBounds -> TypedTerm ReferenceType -> TypedTerm CastExpression_RefAndBounds
- Hydra.Dsl.Java.Syntax: catchClause :: TypedTerm (Maybe CatchFormalParameter) -> TypedTerm Block -> TypedTerm CatchClause
- Hydra.Dsl.Java.Syntax: catchClauseBlock :: TypedTerm CatchClause -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: catchClauseCatchClause :: TypedName CatchClause
- Hydra.Dsl.Java.Syntax: catchClauseParameter :: TypedTerm CatchClause -> TypedTerm (Maybe CatchFormalParameter)
- Hydra.Dsl.Java.Syntax: catchClauseWithBlock :: TypedTerm CatchClause -> TypedTerm Block -> TypedTerm CatchClause
- Hydra.Dsl.Java.Syntax: catchClauseWithParameter :: TypedTerm CatchClause -> TypedTerm (Maybe CatchFormalParameter) -> TypedTerm CatchClause
- Hydra.Dsl.Java.Syntax: catchFormalParameter :: TypedTerm [VariableModifier] -> TypedTerm CatchType -> TypedTerm VariableDeclaratorId -> TypedTerm CatchFormalParameter
- Hydra.Dsl.Java.Syntax: catchFormalParameterCatchFormalParameter :: TypedName CatchFormalParameter
- Hydra.Dsl.Java.Syntax: catchFormalParameterId :: TypedTerm CatchFormalParameter -> TypedTerm VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: catchFormalParameterModifiers :: TypedTerm CatchFormalParameter -> TypedTerm [VariableModifier]
- Hydra.Dsl.Java.Syntax: catchFormalParameterType :: TypedTerm CatchFormalParameter -> TypedTerm CatchType
- Hydra.Dsl.Java.Syntax: catchFormalParameterWithId :: TypedTerm CatchFormalParameter -> TypedTerm VariableDeclaratorId -> TypedTerm CatchFormalParameter
- Hydra.Dsl.Java.Syntax: catchFormalParameterWithModifiers :: TypedTerm CatchFormalParameter -> TypedTerm [VariableModifier] -> TypedTerm CatchFormalParameter
- Hydra.Dsl.Java.Syntax: catchFormalParameterWithType :: TypedTerm CatchFormalParameter -> TypedTerm CatchType -> TypedTerm CatchFormalParameter
- Hydra.Dsl.Java.Syntax: catchType :: TypedTerm UnannClassType -> TypedTerm [ClassType] -> TypedTerm CatchType
- Hydra.Dsl.Java.Syntax: catchTypeCatchType :: TypedName CatchType
- Hydra.Dsl.Java.Syntax: catchTypeType :: TypedTerm CatchType -> TypedTerm UnannClassType
- Hydra.Dsl.Java.Syntax: catchTypeTypes :: TypedTerm CatchType -> TypedTerm [ClassType]
- Hydra.Dsl.Java.Syntax: catchTypeWithType :: TypedTerm CatchType -> TypedTerm UnannClassType -> TypedTerm CatchType
- Hydra.Dsl.Java.Syntax: catchTypeWithTypes :: TypedTerm CatchType -> TypedTerm [ClassType] -> TypedTerm CatchType
- Hydra.Dsl.Java.Syntax: catches :: TypedTerm [CatchClause] -> TypedTerm Catches
- Hydra.Dsl.Java.Syntax: catchesCatches :: TypedName Catches
- Hydra.Dsl.Java.Syntax: classBody :: TypedTerm [ClassBodyDeclarationWithComments] -> TypedTerm ClassBody
- Hydra.Dsl.Java.Syntax: classBodyClassBody :: TypedName ClassBody
- Hydra.Dsl.Java.Syntax: classBodyDeclarationClassBodyDeclaration :: TypedName ClassBodyDeclaration
- Hydra.Dsl.Java.Syntax: classBodyDeclarationClassMember :: TypedTerm ClassMemberDeclaration -> TypedTerm ClassBodyDeclaration
- Hydra.Dsl.Java.Syntax: classBodyDeclarationConstructorDeclaration :: TypedTerm ConstructorDeclaration -> TypedTerm ClassBodyDeclaration
- Hydra.Dsl.Java.Syntax: classBodyDeclarationInstanceInitializer :: TypedTerm InstanceInitializer -> TypedTerm ClassBodyDeclaration
- Hydra.Dsl.Java.Syntax: classBodyDeclarationStaticInitializer :: TypedTerm StaticInitializer -> TypedTerm ClassBodyDeclaration
- Hydra.Dsl.Java.Syntax: classBodyDeclarationWithComments :: TypedTerm ClassBodyDeclaration -> TypedTerm (Maybe String) -> TypedTerm ClassBodyDeclarationWithComments
- Hydra.Dsl.Java.Syntax: classBodyDeclarationWithCommentsClassBodyDeclarationWithComments :: TypedName ClassBodyDeclarationWithComments
- Hydra.Dsl.Java.Syntax: classBodyDeclarationWithCommentsComments :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm (Maybe String)
- Hydra.Dsl.Java.Syntax: classBodyDeclarationWithCommentsValue :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm ClassBodyDeclaration
- Hydra.Dsl.Java.Syntax: classBodyDeclarationWithCommentsWithComments :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm (Maybe String) -> TypedTerm ClassBodyDeclarationWithComments
- Hydra.Dsl.Java.Syntax: classBodyDeclarationWithCommentsWithValue :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm ClassBodyDeclaration -> TypedTerm ClassBodyDeclarationWithComments
- Hydra.Dsl.Java.Syntax: classDeclarationClassDeclaration :: TypedName ClassDeclaration
- Hydra.Dsl.Java.Syntax: classDeclarationEnum :: TypedTerm EnumDeclaration -> TypedTerm ClassDeclaration
- Hydra.Dsl.Java.Syntax: classDeclarationNormal :: TypedTerm NormalClassDeclaration -> TypedTerm ClassDeclaration
- Hydra.Dsl.Java.Syntax: classDeclarationRecord :: TypedTerm RecordDeclaration -> TypedTerm ClassDeclaration
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpression :: TypedTerm (Maybe ClassInstanceCreationExpression_Qualifier) -> TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpressionClassInstanceCreationExpression :: TypedName ClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpressionExpression :: TypedTerm ClassInstanceCreationExpression -> TypedTerm UnqualifiedClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpressionQualifier :: TypedTerm ClassInstanceCreationExpression -> TypedTerm (Maybe ClassInstanceCreationExpression_Qualifier)
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpressionWithExpression :: TypedTerm ClassInstanceCreationExpression -> TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpressionWithQualifier :: TypedTerm ClassInstanceCreationExpression -> TypedTerm (Maybe ClassInstanceCreationExpression_Qualifier) -> TypedTerm ClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpression_QualifierClassInstanceCreationExpression_Qualifier :: TypedName ClassInstanceCreationExpression_Qualifier
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpression_QualifierExpression :: TypedTerm ExpressionName -> TypedTerm ClassInstanceCreationExpression_Qualifier
- Hydra.Dsl.Java.Syntax: classInstanceCreationExpression_QualifierPrimary :: TypedTerm Primary -> TypedTerm ClassInstanceCreationExpression_Qualifier
- Hydra.Dsl.Java.Syntax: classLiteralBoolean :: TypedTerm BooleanArray -> TypedTerm ClassLiteral
- Hydra.Dsl.Java.Syntax: classLiteralClassLiteral :: TypedName ClassLiteral
- Hydra.Dsl.Java.Syntax: classLiteralNumericType :: TypedTerm NumericTypeArray -> TypedTerm ClassLiteral
- Hydra.Dsl.Java.Syntax: classLiteralType :: TypedTerm TypeNameArray -> TypedTerm ClassLiteral
- Hydra.Dsl.Java.Syntax: classLiteralVoid :: TypedTerm ClassLiteral
- Hydra.Dsl.Java.Syntax: classMemberDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm ClassMemberDeclaration
- Hydra.Dsl.Java.Syntax: classMemberDeclarationClassMemberDeclaration :: TypedName ClassMemberDeclaration
- Hydra.Dsl.Java.Syntax: classMemberDeclarationField :: TypedTerm FieldDeclaration -> TypedTerm ClassMemberDeclaration
- Hydra.Dsl.Java.Syntax: classMemberDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm ClassMemberDeclaration
- Hydra.Dsl.Java.Syntax: classMemberDeclarationMethod :: TypedTerm MethodDeclaration -> TypedTerm ClassMemberDeclaration
- Hydra.Dsl.Java.Syntax: classMemberDeclarationNone :: TypedTerm ClassMemberDeclaration
- Hydra.Dsl.Java.Syntax: classModifierAbstract :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierAnnotation :: TypedTerm Annotation -> TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierClassModifier :: TypedName ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierFinal :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierNonSealed :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierPrivate :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierProtected :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierPublic :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierSealed :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierStatic :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classModifierStrictfp :: TypedTerm ClassModifier
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeClass :: TypedTerm ClassType -> TypedTerm ClassOrInterfaceType
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeClassOrInterfaceType :: TypedName ClassOrInterfaceType
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeInterface :: TypedTerm InterfaceType -> TypedTerm ClassOrInterfaceType
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeToInstantiate :: TypedTerm [AnnotatedIdentifier] -> TypedTerm (Maybe TypeArgumentsOrDiamond) -> TypedTerm ClassOrInterfaceTypeToInstantiate
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeToInstantiateClassOrInterfaceTypeToInstantiate :: TypedName ClassOrInterfaceTypeToInstantiate
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeToInstantiateIdentifiers :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm [AnnotatedIdentifier]
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeToInstantiateTypeArguments :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm (Maybe TypeArgumentsOrDiamond)
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeToInstantiateWithIdentifiers :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm [AnnotatedIdentifier] -> TypedTerm ClassOrInterfaceTypeToInstantiate
- Hydra.Dsl.Java.Syntax: classOrInterfaceTypeToInstantiateWithTypeArguments :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm (Maybe TypeArgumentsOrDiamond) -> TypedTerm ClassOrInterfaceTypeToInstantiate
- Hydra.Dsl.Java.Syntax: classType :: TypedTerm [Annotation] -> TypedTerm ClassTypeQualifier -> TypedTerm TypeIdentifier -> TypedTerm [TypeArgument] -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: classTypeAnnotations :: TypedTerm ClassType -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: classTypeArguments :: TypedTerm ClassType -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: classTypeClassType :: TypedName ClassType
- Hydra.Dsl.Java.Syntax: classTypeIdentifier :: TypedTerm ClassType -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: classTypeQualifier :: TypedTerm ClassType -> TypedTerm ClassTypeQualifier
- Hydra.Dsl.Java.Syntax: classTypeQualifierClassTypeQualifier :: TypedName ClassTypeQualifier
- Hydra.Dsl.Java.Syntax: classTypeQualifierNone :: TypedTerm ClassTypeQualifier
- Hydra.Dsl.Java.Syntax: classTypeQualifierPackage :: TypedTerm PackageName -> TypedTerm ClassTypeQualifier
- Hydra.Dsl.Java.Syntax: classTypeQualifierParent :: TypedTerm ClassOrInterfaceType -> TypedTerm ClassTypeQualifier
- Hydra.Dsl.Java.Syntax: classTypeWithAnnotations :: TypedTerm ClassType -> TypedTerm [Annotation] -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: classTypeWithArguments :: TypedTerm ClassType -> TypedTerm [TypeArgument] -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: classTypeWithIdentifier :: TypedTerm ClassType -> TypedTerm TypeIdentifier -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: classTypeWithQualifier :: TypedTerm ClassType -> TypedTerm ClassTypeQualifier -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: compactConstructorDeclaration :: TypedTerm [ConstructorModifier] -> TypedTerm SimpleTypeName -> TypedTerm ConstructorBody -> TypedTerm CompactConstructorDeclaration
- Hydra.Dsl.Java.Syntax: compactConstructorDeclarationBody :: TypedTerm CompactConstructorDeclaration -> TypedTerm ConstructorBody
- Hydra.Dsl.Java.Syntax: compactConstructorDeclarationCompactConstructorDeclaration :: TypedName CompactConstructorDeclaration
- Hydra.Dsl.Java.Syntax: compactConstructorDeclarationModifiers :: TypedTerm CompactConstructorDeclaration -> TypedTerm [ConstructorModifier]
- Hydra.Dsl.Java.Syntax: compactConstructorDeclarationName :: TypedTerm CompactConstructorDeclaration -> TypedTerm SimpleTypeName
- Hydra.Dsl.Java.Syntax: compactConstructorDeclarationWithBody :: TypedTerm CompactConstructorDeclaration -> TypedTerm ConstructorBody -> TypedTerm CompactConstructorDeclaration
- Hydra.Dsl.Java.Syntax: compactConstructorDeclarationWithModifiers :: TypedTerm CompactConstructorDeclaration -> TypedTerm [ConstructorModifier] -> TypedTerm CompactConstructorDeclaration
- Hydra.Dsl.Java.Syntax: compactConstructorDeclarationWithName :: TypedTerm CompactConstructorDeclaration -> TypedTerm SimpleTypeName -> TypedTerm CompactConstructorDeclaration
- Hydra.Dsl.Java.Syntax: compilationUnitCompilationUnit :: TypedName CompilationUnit
- Hydra.Dsl.Java.Syntax: compilationUnitModular :: TypedTerm ModularCompilationUnit -> TypedTerm CompilationUnit
- Hydra.Dsl.Java.Syntax: compilationUnitOrdinary :: TypedTerm OrdinaryCompilationUnit -> TypedTerm CompilationUnit
- Hydra.Dsl.Java.Syntax: conditionalAndExpression :: TypedTerm [InclusiveOrExpression] -> TypedTerm ConditionalAndExpression
- Hydra.Dsl.Java.Syntax: conditionalAndExpressionConditionalAndExpression :: TypedName ConditionalAndExpression
- Hydra.Dsl.Java.Syntax: conditionalExpressionConditionalExpression :: TypedName ConditionalExpression
- Hydra.Dsl.Java.Syntax: conditionalExpressionSimple :: TypedTerm ConditionalOrExpression -> TypedTerm ConditionalExpression
- Hydra.Dsl.Java.Syntax: conditionalExpressionTernaryCond :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalExpression
- Hydra.Dsl.Java.Syntax: conditionalExpressionTernaryLambda :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm ConditionalExpression
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCond :: TypedTerm ConditionalOrExpression -> TypedTerm Expression -> TypedTerm ConditionalExpression -> TypedTerm ConditionalExpression_TernaryCond
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondCond :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalOrExpression
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondConditionalExpression_TernaryCond :: TypedName ConditionalExpression_TernaryCond
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondIfFalse :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalExpression
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondIfTrue :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondWithCond :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalOrExpression -> TypedTerm ConditionalExpression_TernaryCond
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondWithIfFalse :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalExpression -> TypedTerm ConditionalExpression_TernaryCond
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondWithIfTrue :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm Expression -> TypedTerm ConditionalExpression_TernaryCond
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambda :: TypedTerm ConditionalOrExpression -> TypedTerm Expression -> TypedTerm LambdaExpression -> TypedTerm ConditionalExpression_TernaryLambda
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaCond :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm ConditionalOrExpression
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaConditionalExpression_TernaryLambda :: TypedName ConditionalExpression_TernaryLambda
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaIfFalse :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm LambdaExpression
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaIfTrue :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaWithCond :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm ConditionalOrExpression -> TypedTerm ConditionalExpression_TernaryLambda
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaWithIfFalse :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm LambdaExpression -> TypedTerm ConditionalExpression_TernaryLambda
- Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaWithIfTrue :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm Expression -> TypedTerm ConditionalExpression_TernaryLambda
- Hydra.Dsl.Java.Syntax: conditionalOrExpression :: TypedTerm [ConditionalAndExpression] -> TypedTerm ConditionalOrExpression
- Hydra.Dsl.Java.Syntax: conditionalOrExpressionConditionalOrExpression :: TypedName ConditionalOrExpression
- Hydra.Dsl.Java.Syntax: constantDeclaration :: TypedTerm [ConstantModifier] -> TypedTerm UnannType -> TypedTerm [VariableDeclarator] -> TypedTerm ConstantDeclaration
- Hydra.Dsl.Java.Syntax: constantDeclarationConstantDeclaration :: TypedName ConstantDeclaration
- Hydra.Dsl.Java.Syntax: constantDeclarationModifiers :: TypedTerm ConstantDeclaration -> TypedTerm [ConstantModifier]
- Hydra.Dsl.Java.Syntax: constantDeclarationType :: TypedTerm ConstantDeclaration -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: constantDeclarationVariables :: TypedTerm ConstantDeclaration -> TypedTerm [VariableDeclarator]
- Hydra.Dsl.Java.Syntax: constantDeclarationWithModifiers :: TypedTerm ConstantDeclaration -> TypedTerm [ConstantModifier] -> TypedTerm ConstantDeclaration
- Hydra.Dsl.Java.Syntax: constantDeclarationWithType :: TypedTerm ConstantDeclaration -> TypedTerm UnannType -> TypedTerm ConstantDeclaration
- Hydra.Dsl.Java.Syntax: constantDeclarationWithVariables :: TypedTerm ConstantDeclaration -> TypedTerm [VariableDeclarator] -> TypedTerm ConstantDeclaration
- Hydra.Dsl.Java.Syntax: constantExpression :: TypedTerm Expression -> TypedTerm ConstantExpression
- Hydra.Dsl.Java.Syntax: constantExpressionConstantExpression :: TypedName ConstantExpression
- Hydra.Dsl.Java.Syntax: constantModifierAnnotation :: TypedTerm Annotation -> TypedTerm ConstantModifier
- Hydra.Dsl.Java.Syntax: constantModifierConstantModifier :: TypedName ConstantModifier
- Hydra.Dsl.Java.Syntax: constantModifierFinal :: TypedTerm ConstantModifier
- Hydra.Dsl.Java.Syntax: constantModifierPublic :: TypedTerm ConstantModifier
- Hydra.Dsl.Java.Syntax: constantModifierStatic :: TypedTerm ConstantModifier
- Hydra.Dsl.Java.Syntax: constructorBody :: TypedTerm (Maybe ExplicitConstructorInvocation) -> TypedTerm [BlockStatement] -> TypedTerm ConstructorBody
- Hydra.Dsl.Java.Syntax: constructorBodyConstructorBody :: TypedName ConstructorBody
- Hydra.Dsl.Java.Syntax: constructorBodyInvocation :: TypedTerm ConstructorBody -> TypedTerm (Maybe ExplicitConstructorInvocation)
- Hydra.Dsl.Java.Syntax: constructorBodyStatements :: TypedTerm ConstructorBody -> TypedTerm [BlockStatement]
- Hydra.Dsl.Java.Syntax: constructorBodyWithInvocation :: TypedTerm ConstructorBody -> TypedTerm (Maybe ExplicitConstructorInvocation) -> TypedTerm ConstructorBody
- Hydra.Dsl.Java.Syntax: constructorBodyWithStatements :: TypedTerm ConstructorBody -> TypedTerm [BlockStatement] -> TypedTerm ConstructorBody
- Hydra.Dsl.Java.Syntax: constructorDeclaration :: TypedTerm [ConstructorModifier] -> TypedTerm ConstructorDeclarator -> TypedTerm (Maybe Throws) -> TypedTerm ConstructorBody -> TypedTerm ConstructorDeclaration
- Hydra.Dsl.Java.Syntax: constructorDeclarationBody :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorBody
- Hydra.Dsl.Java.Syntax: constructorDeclarationConstructor :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorDeclarator
- Hydra.Dsl.Java.Syntax: constructorDeclarationConstructorDeclaration :: TypedName ConstructorDeclaration
- Hydra.Dsl.Java.Syntax: constructorDeclarationModifiers :: TypedTerm ConstructorDeclaration -> TypedTerm [ConstructorModifier]
- Hydra.Dsl.Java.Syntax: constructorDeclarationThrows :: TypedTerm ConstructorDeclaration -> TypedTerm (Maybe Throws)
- Hydra.Dsl.Java.Syntax: constructorDeclarationWithBody :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorBody -> TypedTerm ConstructorDeclaration
- Hydra.Dsl.Java.Syntax: constructorDeclarationWithConstructor :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorDeclarator -> TypedTerm ConstructorDeclaration
- Hydra.Dsl.Java.Syntax: constructorDeclarationWithModifiers :: TypedTerm ConstructorDeclaration -> TypedTerm [ConstructorModifier] -> TypedTerm ConstructorDeclaration
- Hydra.Dsl.Java.Syntax: constructorDeclarationWithThrows :: TypedTerm ConstructorDeclaration -> TypedTerm (Maybe Throws) -> TypedTerm ConstructorDeclaration
- Hydra.Dsl.Java.Syntax: constructorDeclarator :: TypedTerm [TypeParameter] -> TypedTerm SimpleTypeName -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm [FormalParameter] -> TypedTerm ConstructorDeclarator
- Hydra.Dsl.Java.Syntax: constructorDeclaratorConstructorDeclarator :: TypedName ConstructorDeclarator
- Hydra.Dsl.Java.Syntax: constructorDeclaratorFormalParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [FormalParameter]
- Hydra.Dsl.Java.Syntax: constructorDeclaratorName :: TypedTerm ConstructorDeclarator -> TypedTerm SimpleTypeName
- Hydra.Dsl.Java.Syntax: constructorDeclaratorParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [TypeParameter]
- Hydra.Dsl.Java.Syntax: constructorDeclaratorReceiverParameter :: TypedTerm ConstructorDeclarator -> TypedTerm (Maybe ReceiverParameter)
- Hydra.Dsl.Java.Syntax: constructorDeclaratorWithFormalParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [FormalParameter] -> TypedTerm ConstructorDeclarator
- Hydra.Dsl.Java.Syntax: constructorDeclaratorWithName :: TypedTerm ConstructorDeclarator -> TypedTerm SimpleTypeName -> TypedTerm ConstructorDeclarator
- Hydra.Dsl.Java.Syntax: constructorDeclaratorWithParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [TypeParameter] -> TypedTerm ConstructorDeclarator
- Hydra.Dsl.Java.Syntax: constructorDeclaratorWithReceiverParameter :: TypedTerm ConstructorDeclarator -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm ConstructorDeclarator
- Hydra.Dsl.Java.Syntax: constructorModifierAnnotation :: TypedTerm Annotation -> TypedTerm ConstructorModifier
- Hydra.Dsl.Java.Syntax: constructorModifierConstructorModifier :: TypedName ConstructorModifier
- Hydra.Dsl.Java.Syntax: constructorModifierPrivate :: TypedTerm ConstructorModifier
- Hydra.Dsl.Java.Syntax: constructorModifierProtected :: TypedTerm ConstructorModifier
- Hydra.Dsl.Java.Syntax: constructorModifierPublic :: TypedTerm ConstructorModifier
- Hydra.Dsl.Java.Syntax: continueStatement :: TypedTerm (Maybe Identifier) -> TypedTerm ContinueStatement
- Hydra.Dsl.Java.Syntax: continueStatementContinueStatement :: TypedName ContinueStatement
- Hydra.Dsl.Java.Syntax: defaultValue :: TypedTerm ElementValue -> TypedTerm DefaultValue
- Hydra.Dsl.Java.Syntax: defaultValueDefaultValue :: TypedName DefaultValue
- Hydra.Dsl.Java.Syntax: dimExpr :: TypedTerm [Annotation] -> TypedTerm (Maybe Expression) -> TypedTerm DimExpr
- Hydra.Dsl.Java.Syntax: dimExprAnnotations :: TypedTerm DimExpr -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: dimExprDimExpr :: TypedName DimExpr
- Hydra.Dsl.Java.Syntax: dimExprExpression :: TypedTerm DimExpr -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: dimExprWithAnnotations :: TypedTerm DimExpr -> TypedTerm [Annotation] -> TypedTerm DimExpr
- Hydra.Dsl.Java.Syntax: dimExprWithExpression :: TypedTerm DimExpr -> TypedTerm (Maybe Expression) -> TypedTerm DimExpr
- Hydra.Dsl.Java.Syntax: dims :: TypedTerm [[Annotation]] -> TypedTerm Dims
- Hydra.Dsl.Java.Syntax: dimsDims :: TypedName Dims
- Hydra.Dsl.Java.Syntax: doStatement :: TypedTerm Statement -> TypedTerm Expression -> TypedTerm DoStatement
- Hydra.Dsl.Java.Syntax: doStatementBody :: TypedTerm DoStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: doStatementCond :: TypedTerm DoStatement -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: doStatementDoStatement :: TypedName DoStatement
- Hydra.Dsl.Java.Syntax: doStatementWithBody :: TypedTerm DoStatement -> TypedTerm Statement -> TypedTerm DoStatement
- Hydra.Dsl.Java.Syntax: doStatementWithCond :: TypedTerm DoStatement -> TypedTerm Expression -> TypedTerm DoStatement
- Hydra.Dsl.Java.Syntax: elementValueAnnotation :: TypedTerm Annotation -> TypedTerm ElementValue
- Hydra.Dsl.Java.Syntax: elementValueArrayInitializer :: TypedTerm [ElementValue] -> TypedTerm ElementValueArrayInitializer
- Hydra.Dsl.Java.Syntax: elementValueArrayInitializerElementValueArrayInitializer :: TypedName ElementValueArrayInitializer
- Hydra.Dsl.Java.Syntax: elementValueConditionalExpression :: TypedTerm ConditionalExpression -> TypedTerm ElementValue
- Hydra.Dsl.Java.Syntax: elementValueElementValue :: TypedName ElementValue
- Hydra.Dsl.Java.Syntax: elementValueElementValueArrayInitializer :: TypedTerm ElementValueArrayInitializer -> TypedTerm ElementValue
- Hydra.Dsl.Java.Syntax: elementValuePair :: TypedTerm Identifier -> TypedTerm ElementValue -> TypedTerm ElementValuePair
- Hydra.Dsl.Java.Syntax: elementValuePairElementValuePair :: TypedName ElementValuePair
- Hydra.Dsl.Java.Syntax: elementValuePairKey :: TypedTerm ElementValuePair -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: elementValuePairValue :: TypedTerm ElementValuePair -> TypedTerm ElementValue
- Hydra.Dsl.Java.Syntax: elementValuePairWithKey :: TypedTerm ElementValuePair -> TypedTerm Identifier -> TypedTerm ElementValuePair
- Hydra.Dsl.Java.Syntax: elementValuePairWithValue :: TypedTerm ElementValuePair -> TypedTerm ElementValue -> TypedTerm ElementValuePair
- Hydra.Dsl.Java.Syntax: enhancedForCond :: TypedTerm LocalVariableDeclaration -> TypedTerm Expression -> TypedTerm EnhancedForCond
- Hydra.Dsl.Java.Syntax: enhancedForCondDeclaration :: TypedTerm EnhancedForCond -> TypedTerm LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: enhancedForCondEnhancedForCond :: TypedName EnhancedForCond
- Hydra.Dsl.Java.Syntax: enhancedForCondExpression :: TypedTerm EnhancedForCond -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: enhancedForCondWithDeclaration :: TypedTerm EnhancedForCond -> TypedTerm LocalVariableDeclaration -> TypedTerm EnhancedForCond
- Hydra.Dsl.Java.Syntax: enhancedForCondWithExpression :: TypedTerm EnhancedForCond -> TypedTerm Expression -> TypedTerm EnhancedForCond
- Hydra.Dsl.Java.Syntax: enhancedForStatement :: TypedTerm EnhancedForCond -> TypedTerm Statement -> TypedTerm EnhancedForStatement
- Hydra.Dsl.Java.Syntax: enhancedForStatementBody :: TypedTerm EnhancedForStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: enhancedForStatementCond :: TypedTerm EnhancedForStatement -> TypedTerm EnhancedForCond
- Hydra.Dsl.Java.Syntax: enhancedForStatementEnhancedForStatement :: TypedName EnhancedForStatement
- Hydra.Dsl.Java.Syntax: enhancedForStatementNoShortIf :: TypedTerm EnhancedForCond -> TypedTerm StatementNoShortIf -> TypedTerm EnhancedForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: enhancedForStatementNoShortIfBody :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: enhancedForStatementNoShortIfCond :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm EnhancedForCond
- Hydra.Dsl.Java.Syntax: enhancedForStatementNoShortIfEnhancedForStatementNoShortIf :: TypedName EnhancedForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: enhancedForStatementNoShortIfWithBody :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm EnhancedForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: enhancedForStatementNoShortIfWithCond :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm EnhancedForCond -> TypedTerm EnhancedForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: enhancedForStatementWithBody :: TypedTerm EnhancedForStatement -> TypedTerm Statement -> TypedTerm EnhancedForStatement
- Hydra.Dsl.Java.Syntax: enhancedForStatementWithCond :: TypedTerm EnhancedForStatement -> TypedTerm EnhancedForCond -> TypedTerm EnhancedForStatement
- Hydra.Dsl.Java.Syntax: enumBody :: TypedTerm [EnumBody_Element] -> TypedTerm EnumBody
- Hydra.Dsl.Java.Syntax: enumBodyEnumBody :: TypedName EnumBody
- Hydra.Dsl.Java.Syntax: enumBody_Element :: TypedTerm [EnumConstant] -> TypedTerm [ClassBodyDeclaration] -> TypedTerm EnumBody_Element
- Hydra.Dsl.Java.Syntax: enumBody_ElementBodyDeclarations :: TypedTerm EnumBody_Element -> TypedTerm [ClassBodyDeclaration]
- Hydra.Dsl.Java.Syntax: enumBody_ElementConstants :: TypedTerm EnumBody_Element -> TypedTerm [EnumConstant]
- Hydra.Dsl.Java.Syntax: enumBody_ElementEnumBody_Element :: TypedName EnumBody_Element
- Hydra.Dsl.Java.Syntax: enumBody_ElementWithBodyDeclarations :: TypedTerm EnumBody_Element -> TypedTerm [ClassBodyDeclaration] -> TypedTerm EnumBody_Element
- Hydra.Dsl.Java.Syntax: enumBody_ElementWithConstants :: TypedTerm EnumBody_Element -> TypedTerm [EnumConstant] -> TypedTerm EnumBody_Element
- Hydra.Dsl.Java.Syntax: enumConstant :: TypedTerm [EnumConstantModifier] -> TypedTerm Identifier -> TypedTerm (Maybe [Expression]) -> TypedTerm (Maybe ClassBody) -> TypedTerm EnumConstant
- Hydra.Dsl.Java.Syntax: enumConstantArguments :: TypedTerm EnumConstant -> TypedTerm (Maybe [Expression])
- Hydra.Dsl.Java.Syntax: enumConstantBody :: TypedTerm EnumConstant -> TypedTerm (Maybe ClassBody)
- Hydra.Dsl.Java.Syntax: enumConstantEnumConstant :: TypedName EnumConstant
- Hydra.Dsl.Java.Syntax: enumConstantIdentifier :: TypedTerm EnumConstant -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: enumConstantModifier :: TypedTerm Annotation -> TypedTerm EnumConstantModifier
- Hydra.Dsl.Java.Syntax: enumConstantModifierEnumConstantModifier :: TypedName EnumConstantModifier
- Hydra.Dsl.Java.Syntax: enumConstantModifiers :: TypedTerm EnumConstant -> TypedTerm [EnumConstantModifier]
- Hydra.Dsl.Java.Syntax: enumConstantWithArguments :: TypedTerm EnumConstant -> TypedTerm (Maybe [Expression]) -> TypedTerm EnumConstant
- Hydra.Dsl.Java.Syntax: enumConstantWithBody :: TypedTerm EnumConstant -> TypedTerm (Maybe ClassBody) -> TypedTerm EnumConstant
- Hydra.Dsl.Java.Syntax: enumConstantWithIdentifier :: TypedTerm EnumConstant -> TypedTerm Identifier -> TypedTerm EnumConstant
- Hydra.Dsl.Java.Syntax: enumConstantWithModifiers :: TypedTerm EnumConstant -> TypedTerm [EnumConstantModifier] -> TypedTerm EnumConstant
- Hydra.Dsl.Java.Syntax: enumDeclaration :: TypedTerm [ClassModifier] -> TypedTerm TypeIdentifier -> TypedTerm [InterfaceType] -> TypedTerm EnumBody -> TypedTerm EnumDeclaration
- Hydra.Dsl.Java.Syntax: enumDeclarationBody :: TypedTerm EnumDeclaration -> TypedTerm EnumBody
- Hydra.Dsl.Java.Syntax: enumDeclarationEnumDeclaration :: TypedName EnumDeclaration
- Hydra.Dsl.Java.Syntax: enumDeclarationIdentifier :: TypedTerm EnumDeclaration -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: enumDeclarationImplements :: TypedTerm EnumDeclaration -> TypedTerm [InterfaceType]
- Hydra.Dsl.Java.Syntax: enumDeclarationModifiers :: TypedTerm EnumDeclaration -> TypedTerm [ClassModifier]
- Hydra.Dsl.Java.Syntax: enumDeclarationWithBody :: TypedTerm EnumDeclaration -> TypedTerm EnumBody -> TypedTerm EnumDeclaration
- Hydra.Dsl.Java.Syntax: enumDeclarationWithIdentifier :: TypedTerm EnumDeclaration -> TypedTerm TypeIdentifier -> TypedTerm EnumDeclaration
- Hydra.Dsl.Java.Syntax: enumDeclarationWithImplements :: TypedTerm EnumDeclaration -> TypedTerm [InterfaceType] -> TypedTerm EnumDeclaration
- Hydra.Dsl.Java.Syntax: enumDeclarationWithModifiers :: TypedTerm EnumDeclaration -> TypedTerm [ClassModifier] -> TypedTerm EnumDeclaration
- Hydra.Dsl.Java.Syntax: equalityExpressionEqual :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression
- Hydra.Dsl.Java.Syntax: equalityExpressionEqualityExpression :: TypedName EqualityExpression
- Hydra.Dsl.Java.Syntax: equalityExpressionNotEqual :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression
- Hydra.Dsl.Java.Syntax: equalityExpressionUnary :: TypedTerm RelationalExpression -> TypedTerm EqualityExpression
- Hydra.Dsl.Java.Syntax: equalityExpression_Binary :: TypedTerm EqualityExpression -> TypedTerm RelationalExpression -> TypedTerm EqualityExpression_Binary
- Hydra.Dsl.Java.Syntax: equalityExpression_BinaryEqualityExpression_Binary :: TypedName EqualityExpression_Binary
- Hydra.Dsl.Java.Syntax: equalityExpression_BinaryLhs :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression
- Hydra.Dsl.Java.Syntax: equalityExpression_BinaryRhs :: TypedTerm EqualityExpression_Binary -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: equalityExpression_BinaryWithLhs :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression -> TypedTerm EqualityExpression_Binary
- Hydra.Dsl.Java.Syntax: equalityExpression_BinaryWithRhs :: TypedTerm EqualityExpression_Binary -> TypedTerm RelationalExpression -> TypedTerm EqualityExpression_Binary
- Hydra.Dsl.Java.Syntax: exceptionTypeClass :: TypedTerm ClassType -> TypedTerm ExceptionType
- Hydra.Dsl.Java.Syntax: exceptionTypeExceptionType :: TypedName ExceptionType
- Hydra.Dsl.Java.Syntax: exceptionTypeVariable :: TypedTerm TypeVariable -> TypedTerm ExceptionType
- Hydra.Dsl.Java.Syntax: exclusiveOrExpression :: TypedTerm [AndExpression] -> TypedTerm ExclusiveOrExpression
- Hydra.Dsl.Java.Syntax: exclusiveOrExpressionExclusiveOrExpression :: TypedName ExclusiveOrExpression
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocation :: TypedTerm [TypeArgument] -> TypedTerm [Expression] -> TypedTerm ExplicitConstructorInvocation_Variant -> TypedTerm ExplicitConstructorInvocation
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocationArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [Expression]
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocationExplicitConstructorInvocation :: TypedName ExplicitConstructorInvocation
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocationTypeArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocationVariant :: TypedTerm ExplicitConstructorInvocation -> TypedTerm ExplicitConstructorInvocation_Variant
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocationWithArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [Expression] -> TypedTerm ExplicitConstructorInvocation
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocationWithTypeArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [TypeArgument] -> TypedTerm ExplicitConstructorInvocation
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocationWithVariant :: TypedTerm ExplicitConstructorInvocation -> TypedTerm ExplicitConstructorInvocation_Variant -> TypedTerm ExplicitConstructorInvocation
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocation_VariantExplicitConstructorInvocation_Variant :: TypedName ExplicitConstructorInvocation_Variant
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocation_VariantPrimary :: TypedTerm Primary -> TypedTerm ExplicitConstructorInvocation_Variant
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocation_VariantSuper :: TypedTerm (Maybe ExpressionName) -> TypedTerm ExplicitConstructorInvocation_Variant
- Hydra.Dsl.Java.Syntax: explicitConstructorInvocation_VariantThis :: TypedTerm ExplicitConstructorInvocation_Variant
- Hydra.Dsl.Java.Syntax: expressionAssignment :: TypedTerm AssignmentExpression -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: expressionExpression :: TypedName Expression
- Hydra.Dsl.Java.Syntax: expressionLambda :: TypedTerm LambdaExpression -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: expressionName :: TypedTerm (Maybe AmbiguousName) -> TypedTerm Identifier -> TypedTerm ExpressionName
- Hydra.Dsl.Java.Syntax: expressionNameExpressionName :: TypedName ExpressionName
- Hydra.Dsl.Java.Syntax: expressionNameIdentifier :: TypedTerm ExpressionName -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: expressionNameQualifier :: TypedTerm ExpressionName -> TypedTerm (Maybe AmbiguousName)
- Hydra.Dsl.Java.Syntax: expressionNameWithIdentifier :: TypedTerm ExpressionName -> TypedTerm Identifier -> TypedTerm ExpressionName
- Hydra.Dsl.Java.Syntax: expressionNameWithQualifier :: TypedTerm ExpressionName -> TypedTerm (Maybe AmbiguousName) -> TypedTerm ExpressionName
- Hydra.Dsl.Java.Syntax: expressionStatement :: TypedTerm StatementExpression -> TypedTerm ExpressionStatement
- Hydra.Dsl.Java.Syntax: expressionStatementExpressionStatement :: TypedName ExpressionStatement
- Hydra.Dsl.Java.Syntax: fieldAccess :: TypedTerm FieldAccess_Qualifier -> TypedTerm Identifier -> TypedTerm FieldAccess
- Hydra.Dsl.Java.Syntax: fieldAccessFieldAccess :: TypedName FieldAccess
- Hydra.Dsl.Java.Syntax: fieldAccessIdentifier :: TypedTerm FieldAccess -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: fieldAccessQualifier :: TypedTerm FieldAccess -> TypedTerm FieldAccess_Qualifier
- Hydra.Dsl.Java.Syntax: fieldAccessWithIdentifier :: TypedTerm FieldAccess -> TypedTerm Identifier -> TypedTerm FieldAccess
- Hydra.Dsl.Java.Syntax: fieldAccessWithQualifier :: TypedTerm FieldAccess -> TypedTerm FieldAccess_Qualifier -> TypedTerm FieldAccess
- Hydra.Dsl.Java.Syntax: fieldAccess_QualifierFieldAccess_Qualifier :: TypedName FieldAccess_Qualifier
- Hydra.Dsl.Java.Syntax: fieldAccess_QualifierPrimary :: TypedTerm Primary -> TypedTerm FieldAccess_Qualifier
- Hydra.Dsl.Java.Syntax: fieldAccess_QualifierSuper :: TypedTerm FieldAccess_Qualifier
- Hydra.Dsl.Java.Syntax: fieldAccess_QualifierTyped :: TypedTerm TypeName -> TypedTerm FieldAccess_Qualifier
- Hydra.Dsl.Java.Syntax: fieldDeclaration :: TypedTerm [FieldModifier] -> TypedTerm UnannType -> TypedTerm [VariableDeclarator] -> TypedTerm FieldDeclaration
- Hydra.Dsl.Java.Syntax: fieldDeclarationFieldDeclaration :: TypedName FieldDeclaration
- Hydra.Dsl.Java.Syntax: fieldDeclarationModifiers :: TypedTerm FieldDeclaration -> TypedTerm [FieldModifier]
- Hydra.Dsl.Java.Syntax: fieldDeclarationUnannType :: TypedTerm FieldDeclaration -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: fieldDeclarationVariableDeclarators :: TypedTerm FieldDeclaration -> TypedTerm [VariableDeclarator]
- Hydra.Dsl.Java.Syntax: fieldDeclarationWithModifiers :: TypedTerm FieldDeclaration -> TypedTerm [FieldModifier] -> TypedTerm FieldDeclaration
- Hydra.Dsl.Java.Syntax: fieldDeclarationWithUnannType :: TypedTerm FieldDeclaration -> TypedTerm UnannType -> TypedTerm FieldDeclaration
- Hydra.Dsl.Java.Syntax: fieldDeclarationWithVariableDeclarators :: TypedTerm FieldDeclaration -> TypedTerm [VariableDeclarator] -> TypedTerm FieldDeclaration
- Hydra.Dsl.Java.Syntax: fieldModifierAnnotation :: TypedTerm Annotation -> TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierFieldModifier :: TypedName FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierFinal :: TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierPrivate :: TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierProtected :: TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierPublic :: TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierStatic :: TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierTransient :: TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: fieldModifierVolatile :: TypedTerm FieldModifier
- Hydra.Dsl.Java.Syntax: finally :: TypedTerm Block -> TypedTerm Finally
- Hydra.Dsl.Java.Syntax: finallyFinally :: TypedName Finally
- Hydra.Dsl.Java.Syntax: floatingPointLiteral :: TypedTerm Double -> TypedTerm FloatingPointLiteral
- Hydra.Dsl.Java.Syntax: floatingPointLiteralFloatingPointLiteral :: TypedName FloatingPointLiteral
- Hydra.Dsl.Java.Syntax: floatingPointTypeDouble :: TypedTerm FloatingPointType
- Hydra.Dsl.Java.Syntax: floatingPointTypeFloat :: TypedTerm FloatingPointType
- Hydra.Dsl.Java.Syntax: floatingPointTypeFloatingPointType :: TypedName FloatingPointType
- Hydra.Dsl.Java.Syntax: forCond :: TypedTerm (Maybe ForInit) -> TypedTerm (Maybe Expression) -> TypedTerm (Maybe ForUpdate) -> TypedTerm ForCond
- Hydra.Dsl.Java.Syntax: forCondCond :: TypedTerm ForCond -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: forCondForCond :: TypedName ForCond
- Hydra.Dsl.Java.Syntax: forCondInit :: TypedTerm ForCond -> TypedTerm (Maybe ForInit)
- Hydra.Dsl.Java.Syntax: forCondUpdate :: TypedTerm ForCond -> TypedTerm (Maybe ForUpdate)
- Hydra.Dsl.Java.Syntax: forCondWithCond :: TypedTerm ForCond -> TypedTerm (Maybe Expression) -> TypedTerm ForCond
- Hydra.Dsl.Java.Syntax: forCondWithInit :: TypedTerm ForCond -> TypedTerm (Maybe ForInit) -> TypedTerm ForCond
- Hydra.Dsl.Java.Syntax: forCondWithUpdate :: TypedTerm ForCond -> TypedTerm (Maybe ForUpdate) -> TypedTerm ForCond
- Hydra.Dsl.Java.Syntax: forInitForInit :: TypedName ForInit
- Hydra.Dsl.Java.Syntax: forInitLocalVariable :: TypedTerm LocalVariableDeclaration -> TypedTerm ForInit
- Hydra.Dsl.Java.Syntax: forInitStatements :: TypedTerm [StatementExpression] -> TypedTerm ForInit
- Hydra.Dsl.Java.Syntax: forStatementBasic :: TypedTerm BasicForStatement -> TypedTerm ForStatement
- Hydra.Dsl.Java.Syntax: forStatementEnhanced :: TypedTerm EnhancedForStatement -> TypedTerm ForStatement
- Hydra.Dsl.Java.Syntax: forStatementForStatement :: TypedName ForStatement
- Hydra.Dsl.Java.Syntax: forStatementNoShortIfBasic :: TypedTerm BasicForStatementNoShortIf -> TypedTerm ForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: forStatementNoShortIfEnhanced :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm ForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: forStatementNoShortIfForStatementNoShortIf :: TypedName ForStatementNoShortIf
- Hydra.Dsl.Java.Syntax: forUpdate :: TypedTerm [StatementExpression] -> TypedTerm ForUpdate
- Hydra.Dsl.Java.Syntax: forUpdateForUpdate :: TypedName ForUpdate
- Hydra.Dsl.Java.Syntax: formalParameterFormalParameter :: TypedName FormalParameter
- Hydra.Dsl.Java.Syntax: formalParameterSimple :: TypedTerm FormalParameter_Simple -> TypedTerm FormalParameter
- Hydra.Dsl.Java.Syntax: formalParameterVariableArity :: TypedTerm VariableArityParameter -> TypedTerm FormalParameter
- Hydra.Dsl.Java.Syntax: formalParameter_Simple :: TypedTerm [VariableModifier] -> TypedTerm UnannType -> TypedTerm VariableDeclaratorId -> TypedTerm FormalParameter_Simple
- Hydra.Dsl.Java.Syntax: formalParameter_SimpleFormalParameter_Simple :: TypedName FormalParameter_Simple
- Hydra.Dsl.Java.Syntax: formalParameter_SimpleId :: TypedTerm FormalParameter_Simple -> TypedTerm VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: formalParameter_SimpleModifiers :: TypedTerm FormalParameter_Simple -> TypedTerm [VariableModifier]
- Hydra.Dsl.Java.Syntax: formalParameter_SimpleType :: TypedTerm FormalParameter_Simple -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: formalParameter_SimpleWithId :: TypedTerm FormalParameter_Simple -> TypedTerm VariableDeclaratorId -> TypedTerm FormalParameter_Simple
- Hydra.Dsl.Java.Syntax: formalParameter_SimpleWithModifiers :: TypedTerm FormalParameter_Simple -> TypedTerm [VariableModifier] -> TypedTerm FormalParameter_Simple
- Hydra.Dsl.Java.Syntax: formalParameter_SimpleWithType :: TypedTerm FormalParameter_Simple -> TypedTerm UnannType -> TypedTerm FormalParameter_Simple
- Hydra.Dsl.Java.Syntax: guard :: TypedTerm Expression -> TypedTerm Guard
- Hydra.Dsl.Java.Syntax: guardGuard :: TypedName Guard
- Hydra.Dsl.Java.Syntax: identifier :: TypedTerm String -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: identifierIdentifier :: TypedName Identifier
- Hydra.Dsl.Java.Syntax: ifThenElseStatement :: TypedTerm (Maybe Expression) -> TypedTerm StatementNoShortIf -> TypedTerm Statement -> TypedTerm IfThenElseStatement
- Hydra.Dsl.Java.Syntax: ifThenElseStatementCond :: TypedTerm IfThenElseStatement -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: ifThenElseStatementElse :: TypedTerm IfThenElseStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: ifThenElseStatementIfThenElseStatement :: TypedName IfThenElseStatement
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIf :: TypedTerm (Maybe Expression) -> TypedTerm StatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfCond :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfElse :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfIfThenElseStatementNoShortIf :: TypedName IfThenElseStatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfThen :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfWithCond :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm (Maybe Expression) -> TypedTerm IfThenElseStatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfWithElse :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfWithThen :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementThen :: TypedTerm IfThenElseStatement -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: ifThenElseStatementWithCond :: TypedTerm IfThenElseStatement -> TypedTerm (Maybe Expression) -> TypedTerm IfThenElseStatement
- Hydra.Dsl.Java.Syntax: ifThenElseStatementWithElse :: TypedTerm IfThenElseStatement -> TypedTerm Statement -> TypedTerm IfThenElseStatement
- Hydra.Dsl.Java.Syntax: ifThenElseStatementWithThen :: TypedTerm IfThenElseStatement -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatement
- Hydra.Dsl.Java.Syntax: ifThenStatement :: TypedTerm Expression -> TypedTerm Statement -> TypedTerm IfThenStatement
- Hydra.Dsl.Java.Syntax: ifThenStatementExpression :: TypedTerm IfThenStatement -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: ifThenStatementIfThenStatement :: TypedName IfThenStatement
- Hydra.Dsl.Java.Syntax: ifThenStatementStatement :: TypedTerm IfThenStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: ifThenStatementWithExpression :: TypedTerm IfThenStatement -> TypedTerm Expression -> TypedTerm IfThenStatement
- Hydra.Dsl.Java.Syntax: ifThenStatementWithStatement :: TypedTerm IfThenStatement -> TypedTerm Statement -> TypedTerm IfThenStatement
- Hydra.Dsl.Java.Syntax: importDeclarationImportDeclaration :: TypedName ImportDeclaration
- Hydra.Dsl.Java.Syntax: importDeclarationSingleStaticImport :: TypedTerm SingleStaticImportDeclaration -> TypedTerm ImportDeclaration
- Hydra.Dsl.Java.Syntax: importDeclarationSingleType :: TypedTerm SingleTypeImportDeclaration -> TypedTerm ImportDeclaration
- Hydra.Dsl.Java.Syntax: importDeclarationStaticImportOnDemand :: TypedTerm StaticImportOnDemandDeclaration -> TypedTerm ImportDeclaration
- Hydra.Dsl.Java.Syntax: importDeclarationTypeImportOnDemand :: TypedTerm TypeImportOnDemandDeclaration -> TypedTerm ImportDeclaration
- Hydra.Dsl.Java.Syntax: inclusiveOrExpression :: TypedTerm [ExclusiveOrExpression] -> TypedTerm InclusiveOrExpression
- Hydra.Dsl.Java.Syntax: inclusiveOrExpressionInclusiveOrExpression :: TypedName InclusiveOrExpression
- Hydra.Dsl.Java.Syntax: instanceInitializer :: TypedTerm Block -> TypedTerm InstanceInitializer
- Hydra.Dsl.Java.Syntax: instanceInitializerInstanceInitializer :: TypedName InstanceInitializer
- Hydra.Dsl.Java.Syntax: instanceofExpression :: TypedTerm RelationalExpression -> TypedTerm InstanceofExpression_Rhs -> TypedTerm InstanceofExpression
- Hydra.Dsl.Java.Syntax: instanceofExpressionInstanceofExpression :: TypedName InstanceofExpression
- Hydra.Dsl.Java.Syntax: instanceofExpressionLhs :: TypedTerm InstanceofExpression -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: instanceofExpressionRhs :: TypedTerm InstanceofExpression -> TypedTerm InstanceofExpression_Rhs
- Hydra.Dsl.Java.Syntax: instanceofExpressionWithLhs :: TypedTerm InstanceofExpression -> TypedTerm RelationalExpression -> TypedTerm InstanceofExpression
- Hydra.Dsl.Java.Syntax: instanceofExpressionWithRhs :: TypedTerm InstanceofExpression -> TypedTerm InstanceofExpression_Rhs -> TypedTerm InstanceofExpression
- Hydra.Dsl.Java.Syntax: instanceofExpression_RhsInstanceofExpression_Rhs :: TypedName InstanceofExpression_Rhs
- Hydra.Dsl.Java.Syntax: instanceofExpression_RhsPattern :: TypedTerm Pattern -> TypedTerm InstanceofExpression_Rhs
- Hydra.Dsl.Java.Syntax: instanceofExpression_RhsReferenceType :: TypedTerm ReferenceType -> TypedTerm InstanceofExpression_Rhs
- Hydra.Dsl.Java.Syntax: integerLiteral :: TypedTerm Integer -> TypedTerm IntegerLiteral
- Hydra.Dsl.Java.Syntax: integerLiteralIntegerLiteral :: TypedName IntegerLiteral
- Hydra.Dsl.Java.Syntax: integralTypeByte :: TypedTerm IntegralType
- Hydra.Dsl.Java.Syntax: integralTypeChar :: TypedTerm IntegralType
- Hydra.Dsl.Java.Syntax: integralTypeInt :: TypedTerm IntegralType
- Hydra.Dsl.Java.Syntax: integralTypeIntegralType :: TypedName IntegralType
- Hydra.Dsl.Java.Syntax: integralTypeLong :: TypedTerm IntegralType
- Hydra.Dsl.Java.Syntax: integralTypeShort :: TypedTerm IntegralType
- Hydra.Dsl.Java.Syntax: interfaceBody :: TypedTerm [InterfaceMemberDeclarationWithComments] -> TypedTerm InterfaceBody
- Hydra.Dsl.Java.Syntax: interfaceBodyInterfaceBody :: TypedName InterfaceBody
- Hydra.Dsl.Java.Syntax: interfaceDeclarationAnnotationInterface :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm InterfaceDeclaration
- Hydra.Dsl.Java.Syntax: interfaceDeclarationInterfaceDeclaration :: TypedName InterfaceDeclaration
- Hydra.Dsl.Java.Syntax: interfaceDeclarationNormalInterface :: TypedTerm NormalInterfaceDeclaration -> TypedTerm InterfaceDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm InterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationConstant :: TypedTerm ConstantDeclaration -> TypedTerm InterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm InterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationInterfaceMemberDeclaration :: TypedName InterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationInterfaceMethod :: TypedTerm InterfaceMethodDeclaration -> TypedTerm InterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationWithComments :: TypedTerm InterfaceMemberDeclaration -> TypedTerm (Maybe String) -> TypedTerm InterfaceMemberDeclarationWithComments
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationWithCommentsComments :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm (Maybe String)
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationWithCommentsInterfaceMemberDeclarationWithComments :: TypedName InterfaceMemberDeclarationWithComments
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationWithCommentsValue :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm InterfaceMemberDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationWithCommentsWithComments :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm (Maybe String) -> TypedTerm InterfaceMemberDeclarationWithComments
- Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationWithCommentsWithValue :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm InterfaceMemberDeclaration -> TypedTerm InterfaceMemberDeclarationWithComments
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclaration :: TypedTerm [InterfaceMethodModifier] -> TypedTerm MethodHeader -> TypedTerm MethodBody -> TypedTerm InterfaceMethodDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationBody :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodBody
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationHeader :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodHeader
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationInterfaceMethodDeclaration :: TypedName InterfaceMethodDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationModifiers :: TypedTerm InterfaceMethodDeclaration -> TypedTerm [InterfaceMethodModifier]
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationWithBody :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodBody -> TypedTerm InterfaceMethodDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationWithHeader :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodHeader -> TypedTerm InterfaceMethodDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationWithModifiers :: TypedTerm InterfaceMethodDeclaration -> TypedTerm [InterfaceMethodModifier] -> TypedTerm InterfaceMethodDeclaration
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierAbstract :: TypedTerm InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierAnnotation :: TypedTerm Annotation -> TypedTerm InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierDefault :: TypedTerm InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierInterfaceMethodModifier :: TypedName InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierPrivate :: TypedTerm InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierPublic :: TypedTerm InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierStatic :: TypedTerm InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceMethodModifierStrictfp :: TypedTerm InterfaceMethodModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierAbstract :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierAnnotation :: TypedTerm Annotation -> TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierInterfaceModifier :: TypedName InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierNonSealed :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierPrivate :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierProtected :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierPublic :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierSealed :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierStatic :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceModifierStrictfp :: TypedTerm InterfaceModifier
- Hydra.Dsl.Java.Syntax: interfaceType :: TypedTerm ClassType -> TypedTerm InterfaceType
- Hydra.Dsl.Java.Syntax: interfaceTypeInterfaceType :: TypedName InterfaceType
- Hydra.Dsl.Java.Syntax: labeledStatement :: TypedTerm Identifier -> TypedTerm Statement -> TypedTerm LabeledStatement
- Hydra.Dsl.Java.Syntax: labeledStatementIdentifier :: TypedTerm LabeledStatement -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: labeledStatementLabeledStatement :: TypedName LabeledStatement
- Hydra.Dsl.Java.Syntax: labeledStatementNoShortIf :: TypedTerm Identifier -> TypedTerm StatementNoShortIf -> TypedTerm LabeledStatementNoShortIf
- Hydra.Dsl.Java.Syntax: labeledStatementNoShortIfIdentifier :: TypedTerm LabeledStatementNoShortIf -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: labeledStatementNoShortIfLabeledStatementNoShortIf :: TypedName LabeledStatementNoShortIf
- Hydra.Dsl.Java.Syntax: labeledStatementNoShortIfStatement :: TypedTerm LabeledStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: labeledStatementNoShortIfWithIdentifier :: TypedTerm LabeledStatementNoShortIf -> TypedTerm Identifier -> TypedTerm LabeledStatementNoShortIf
- Hydra.Dsl.Java.Syntax: labeledStatementNoShortIfWithStatement :: TypedTerm LabeledStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm LabeledStatementNoShortIf
- Hydra.Dsl.Java.Syntax: labeledStatementStatement :: TypedTerm LabeledStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: labeledStatementWithIdentifier :: TypedTerm LabeledStatement -> TypedTerm Identifier -> TypedTerm LabeledStatement
- Hydra.Dsl.Java.Syntax: labeledStatementWithStatement :: TypedTerm LabeledStatement -> TypedTerm Statement -> TypedTerm LabeledStatement
- Hydra.Dsl.Java.Syntax: lambdaBodyBlock :: TypedTerm Block -> TypedTerm LambdaBody
- Hydra.Dsl.Java.Syntax: lambdaBodyExpression :: TypedTerm Expression -> TypedTerm LambdaBody
- Hydra.Dsl.Java.Syntax: lambdaBodyLambdaBody :: TypedName LambdaBody
- Hydra.Dsl.Java.Syntax: lambdaExpression :: TypedTerm LambdaParameters -> TypedTerm LambdaBody -> TypedTerm LambdaExpression
- Hydra.Dsl.Java.Syntax: lambdaExpressionBody :: TypedTerm LambdaExpression -> TypedTerm LambdaBody
- Hydra.Dsl.Java.Syntax: lambdaExpressionLambdaExpression :: TypedName LambdaExpression
- Hydra.Dsl.Java.Syntax: lambdaExpressionParameters :: TypedTerm LambdaExpression -> TypedTerm LambdaParameters
- Hydra.Dsl.Java.Syntax: lambdaExpressionWithBody :: TypedTerm LambdaExpression -> TypedTerm LambdaBody -> TypedTerm LambdaExpression
- Hydra.Dsl.Java.Syntax: lambdaExpressionWithParameters :: TypedTerm LambdaExpression -> TypedTerm LambdaParameters -> TypedTerm LambdaExpression
- Hydra.Dsl.Java.Syntax: lambdaParameterLambdaParameter :: TypedName LambdaParameter
- Hydra.Dsl.Java.Syntax: lambdaParameterNormal :: TypedTerm LambdaParameter_Normal -> TypedTerm LambdaParameter
- Hydra.Dsl.Java.Syntax: lambdaParameterTypeLambdaParameterType :: TypedName LambdaParameterType
- Hydra.Dsl.Java.Syntax: lambdaParameterTypeType :: TypedTerm UnannType -> TypedTerm LambdaParameterType
- Hydra.Dsl.Java.Syntax: lambdaParameterTypeVar :: TypedTerm LambdaParameterType
- Hydra.Dsl.Java.Syntax: lambdaParameterVariableArity :: TypedTerm VariableArityParameter -> TypedTerm LambdaParameter
- Hydra.Dsl.Java.Syntax: lambdaParameter_Normal :: TypedTerm [VariableModifier] -> TypedTerm LambdaParameterType -> TypedTerm VariableDeclaratorId -> TypedTerm LambdaParameter_Normal
- Hydra.Dsl.Java.Syntax: lambdaParameter_NormalId :: TypedTerm LambdaParameter_Normal -> TypedTerm VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: lambdaParameter_NormalLambdaParameter_Normal :: TypedName LambdaParameter_Normal
- Hydra.Dsl.Java.Syntax: lambdaParameter_NormalModifiers :: TypedTerm LambdaParameter_Normal -> TypedTerm [VariableModifier]
- Hydra.Dsl.Java.Syntax: lambdaParameter_NormalType :: TypedTerm LambdaParameter_Normal -> TypedTerm LambdaParameterType
- Hydra.Dsl.Java.Syntax: lambdaParameter_NormalWithId :: TypedTerm LambdaParameter_Normal -> TypedTerm VariableDeclaratorId -> TypedTerm LambdaParameter_Normal
- Hydra.Dsl.Java.Syntax: lambdaParameter_NormalWithModifiers :: TypedTerm LambdaParameter_Normal -> TypedTerm [VariableModifier] -> TypedTerm LambdaParameter_Normal
- Hydra.Dsl.Java.Syntax: lambdaParameter_NormalWithType :: TypedTerm LambdaParameter_Normal -> TypedTerm LambdaParameterType -> TypedTerm LambdaParameter_Normal
- Hydra.Dsl.Java.Syntax: lambdaParametersLambdaParameters :: TypedName LambdaParameters
- Hydra.Dsl.Java.Syntax: lambdaParametersSingle :: TypedTerm Identifier -> TypedTerm LambdaParameters
- Hydra.Dsl.Java.Syntax: lambdaParametersTuple :: TypedTerm [LambdaParameters] -> TypedTerm LambdaParameters
- Hydra.Dsl.Java.Syntax: leftHandSideArrayAccess :: TypedTerm ArrayAccess -> TypedTerm LeftHandSide
- Hydra.Dsl.Java.Syntax: leftHandSideExpressionName :: TypedTerm ExpressionName -> TypedTerm LeftHandSide
- Hydra.Dsl.Java.Syntax: leftHandSideFieldAccess :: TypedTerm FieldAccess -> TypedTerm LeftHandSide
- Hydra.Dsl.Java.Syntax: leftHandSideLeftHandSide :: TypedName LeftHandSide
- Hydra.Dsl.Java.Syntax: literalBoolean :: TypedTerm Bool -> TypedTerm Literal
- Hydra.Dsl.Java.Syntax: literalCharacter :: TypedTerm Int -> TypedTerm Literal
- Hydra.Dsl.Java.Syntax: literalFloatingPoint :: TypedTerm FloatingPointLiteral -> TypedTerm Literal
- Hydra.Dsl.Java.Syntax: literalInteger :: TypedTerm IntegerLiteral -> TypedTerm Literal
- Hydra.Dsl.Java.Syntax: literalLiteral :: TypedName Literal
- Hydra.Dsl.Java.Syntax: literalNull :: TypedTerm Literal
- Hydra.Dsl.Java.Syntax: literalString :: TypedTerm StringLiteral -> TypedTerm Literal
- Hydra.Dsl.Java.Syntax: literalTextBlock :: TypedTerm TextBlock -> TypedTerm Literal
- Hydra.Dsl.Java.Syntax: localClassOrInterfaceDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm LocalClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: localClassOrInterfaceDeclarationLocalClassOrInterfaceDeclaration :: TypedName LocalClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: localClassOrInterfaceDeclarationNormalInterface :: TypedTerm NormalInterfaceDeclaration -> TypedTerm LocalClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: localVariableDeclaration :: TypedTerm [VariableModifier] -> TypedTerm LocalVariableType -> TypedTerm [VariableDeclarator] -> TypedTerm LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: localVariableDeclarationDeclarators :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableDeclarator]
- Hydra.Dsl.Java.Syntax: localVariableDeclarationLocalVariableDeclaration :: TypedName LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: localVariableDeclarationModifiers :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableModifier]
- Hydra.Dsl.Java.Syntax: localVariableDeclarationStatement :: TypedTerm LocalVariableDeclaration -> TypedTerm LocalVariableDeclarationStatement
- Hydra.Dsl.Java.Syntax: localVariableDeclarationStatementLocalVariableDeclarationStatement :: TypedName LocalVariableDeclarationStatement
- Hydra.Dsl.Java.Syntax: localVariableDeclarationType :: TypedTerm LocalVariableDeclaration -> TypedTerm LocalVariableType
- Hydra.Dsl.Java.Syntax: localVariableDeclarationWithDeclarators :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableDeclarator] -> TypedTerm LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: localVariableDeclarationWithModifiers :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableModifier] -> TypedTerm LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: localVariableDeclarationWithType :: TypedTerm LocalVariableDeclaration -> TypedTerm LocalVariableType -> TypedTerm LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: localVariableTypeLocalVariableType :: TypedName LocalVariableType
- Hydra.Dsl.Java.Syntax: localVariableTypeType :: TypedTerm UnannType -> TypedTerm LocalVariableType
- Hydra.Dsl.Java.Syntax: localVariableTypeVar :: TypedTerm LocalVariableType
- Hydra.Dsl.Java.Syntax: markerAnnotation :: TypedTerm TypeName -> TypedTerm MarkerAnnotation
- Hydra.Dsl.Java.Syntax: markerAnnotationMarkerAnnotation :: TypedName MarkerAnnotation
- Hydra.Dsl.Java.Syntax: methodBodyBlock :: TypedTerm Block -> TypedTerm MethodBody
- Hydra.Dsl.Java.Syntax: methodBodyMethodBody :: TypedName MethodBody
- Hydra.Dsl.Java.Syntax: methodBodyNone :: TypedTerm MethodBody
- Hydra.Dsl.Java.Syntax: methodDeclaration :: TypedTerm [Annotation] -> TypedTerm [MethodModifier] -> TypedTerm MethodHeader -> TypedTerm MethodBody -> TypedTerm MethodDeclaration
- Hydra.Dsl.Java.Syntax: methodDeclarationAnnotations :: TypedTerm MethodDeclaration -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: methodDeclarationBody :: TypedTerm MethodDeclaration -> TypedTerm MethodBody
- Hydra.Dsl.Java.Syntax: methodDeclarationHeader :: TypedTerm MethodDeclaration -> TypedTerm MethodHeader
- Hydra.Dsl.Java.Syntax: methodDeclarationMethodDeclaration :: TypedName MethodDeclaration
- Hydra.Dsl.Java.Syntax: methodDeclarationModifiers :: TypedTerm MethodDeclaration -> TypedTerm [MethodModifier]
- Hydra.Dsl.Java.Syntax: methodDeclarationWithAnnotations :: TypedTerm MethodDeclaration -> TypedTerm [Annotation] -> TypedTerm MethodDeclaration
- Hydra.Dsl.Java.Syntax: methodDeclarationWithBody :: TypedTerm MethodDeclaration -> TypedTerm MethodBody -> TypedTerm MethodDeclaration
- Hydra.Dsl.Java.Syntax: methodDeclarationWithHeader :: TypedTerm MethodDeclaration -> TypedTerm MethodHeader -> TypedTerm MethodDeclaration
- Hydra.Dsl.Java.Syntax: methodDeclarationWithModifiers :: TypedTerm MethodDeclaration -> TypedTerm [MethodModifier] -> TypedTerm MethodDeclaration
- Hydra.Dsl.Java.Syntax: methodDeclarator :: TypedTerm Identifier -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm [FormalParameter] -> TypedTerm MethodDeclarator
- Hydra.Dsl.Java.Syntax: methodDeclaratorFormalParameters :: TypedTerm MethodDeclarator -> TypedTerm [FormalParameter]
- Hydra.Dsl.Java.Syntax: methodDeclaratorIdentifier :: TypedTerm MethodDeclarator -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: methodDeclaratorMethodDeclarator :: TypedName MethodDeclarator
- Hydra.Dsl.Java.Syntax: methodDeclaratorReceiverParameter :: TypedTerm MethodDeclarator -> TypedTerm (Maybe ReceiverParameter)
- Hydra.Dsl.Java.Syntax: methodDeclaratorWithFormalParameters :: TypedTerm MethodDeclarator -> TypedTerm [FormalParameter] -> TypedTerm MethodDeclarator
- Hydra.Dsl.Java.Syntax: methodDeclaratorWithIdentifier :: TypedTerm MethodDeclarator -> TypedTerm Identifier -> TypedTerm MethodDeclarator
- Hydra.Dsl.Java.Syntax: methodDeclaratorWithReceiverParameter :: TypedTerm MethodDeclarator -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm MethodDeclarator
- Hydra.Dsl.Java.Syntax: methodHeader :: TypedTerm [TypeParameter] -> TypedTerm Result -> TypedTerm MethodDeclarator -> TypedTerm (Maybe Throws) -> TypedTerm MethodHeader
- Hydra.Dsl.Java.Syntax: methodHeaderDeclarator :: TypedTerm MethodHeader -> TypedTerm MethodDeclarator
- Hydra.Dsl.Java.Syntax: methodHeaderMethodHeader :: TypedName MethodHeader
- Hydra.Dsl.Java.Syntax: methodHeaderParameters :: TypedTerm MethodHeader -> TypedTerm [TypeParameter]
- Hydra.Dsl.Java.Syntax: methodHeaderResult :: TypedTerm MethodHeader -> TypedTerm Result
- Hydra.Dsl.Java.Syntax: methodHeaderThrows :: TypedTerm MethodHeader -> TypedTerm (Maybe Throws)
- Hydra.Dsl.Java.Syntax: methodHeaderWithDeclarator :: TypedTerm MethodHeader -> TypedTerm MethodDeclarator -> TypedTerm MethodHeader
- Hydra.Dsl.Java.Syntax: methodHeaderWithParameters :: TypedTerm MethodHeader -> TypedTerm [TypeParameter] -> TypedTerm MethodHeader
- Hydra.Dsl.Java.Syntax: methodHeaderWithResult :: TypedTerm MethodHeader -> TypedTerm Result -> TypedTerm MethodHeader
- Hydra.Dsl.Java.Syntax: methodHeaderWithThrows :: TypedTerm MethodHeader -> TypedTerm (Maybe Throws) -> TypedTerm MethodHeader
- Hydra.Dsl.Java.Syntax: methodInvocation :: TypedTerm MethodInvocation_Header -> TypedTerm [Expression] -> TypedTerm MethodInvocation
- Hydra.Dsl.Java.Syntax: methodInvocationArguments :: TypedTerm MethodInvocation -> TypedTerm [Expression]
- Hydra.Dsl.Java.Syntax: methodInvocationHeader :: TypedTerm MethodInvocation -> TypedTerm MethodInvocation_Header
- Hydra.Dsl.Java.Syntax: methodInvocationMethodInvocation :: TypedName MethodInvocation
- Hydra.Dsl.Java.Syntax: methodInvocationWithArguments :: TypedTerm MethodInvocation -> TypedTerm [Expression] -> TypedTerm MethodInvocation
- Hydra.Dsl.Java.Syntax: methodInvocationWithHeader :: TypedTerm MethodInvocation -> TypedTerm MethodInvocation_Header -> TypedTerm MethodInvocation
- Hydra.Dsl.Java.Syntax: methodInvocation_Complex :: TypedTerm MethodInvocation_Variant -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodInvocation_Complex
- Hydra.Dsl.Java.Syntax: methodInvocation_ComplexIdentifier :: TypedTerm MethodInvocation_Complex -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: methodInvocation_ComplexMethodInvocation_Complex :: TypedName MethodInvocation_Complex
- Hydra.Dsl.Java.Syntax: methodInvocation_ComplexTypeArguments :: TypedTerm MethodInvocation_Complex -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: methodInvocation_ComplexVariant :: TypedTerm MethodInvocation_Complex -> TypedTerm MethodInvocation_Variant
- Hydra.Dsl.Java.Syntax: methodInvocation_ComplexWithIdentifier :: TypedTerm MethodInvocation_Complex -> TypedTerm Identifier -> TypedTerm MethodInvocation_Complex
- Hydra.Dsl.Java.Syntax: methodInvocation_ComplexWithTypeArguments :: TypedTerm MethodInvocation_Complex -> TypedTerm [TypeArgument] -> TypedTerm MethodInvocation_Complex
- Hydra.Dsl.Java.Syntax: methodInvocation_ComplexWithVariant :: TypedTerm MethodInvocation_Complex -> TypedTerm MethodInvocation_Variant -> TypedTerm MethodInvocation_Complex
- Hydra.Dsl.Java.Syntax: methodInvocation_HeaderComplex :: TypedTerm MethodInvocation_Complex -> TypedTerm MethodInvocation_Header
- Hydra.Dsl.Java.Syntax: methodInvocation_HeaderMethodInvocation_Header :: TypedName MethodInvocation_Header
- Hydra.Dsl.Java.Syntax: methodInvocation_HeaderSimple :: TypedTerm MethodName -> TypedTerm MethodInvocation_Header
- Hydra.Dsl.Java.Syntax: methodInvocation_VariantExpression :: TypedTerm ExpressionName -> TypedTerm MethodInvocation_Variant
- Hydra.Dsl.Java.Syntax: methodInvocation_VariantMethodInvocation_Variant :: TypedName MethodInvocation_Variant
- Hydra.Dsl.Java.Syntax: methodInvocation_VariantPrimary :: TypedTerm Primary -> TypedTerm MethodInvocation_Variant
- Hydra.Dsl.Java.Syntax: methodInvocation_VariantSuper :: TypedTerm MethodInvocation_Variant
- Hydra.Dsl.Java.Syntax: methodInvocation_VariantType :: TypedTerm TypeName -> TypedTerm MethodInvocation_Variant
- Hydra.Dsl.Java.Syntax: methodInvocation_VariantTypeSuper :: TypedTerm TypeName -> TypedTerm MethodInvocation_Variant
- Hydra.Dsl.Java.Syntax: methodModifierAbstract :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierAnnotation :: TypedTerm Annotation -> TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierFinal :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierMethodModifier :: TypedName MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierNative :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierPrivate :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierProtected :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierPublic :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierStatic :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierStrictfp :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodModifierSynchronized :: TypedTerm MethodModifier
- Hydra.Dsl.Java.Syntax: methodName :: TypedTerm Identifier -> TypedTerm MethodName
- Hydra.Dsl.Java.Syntax: methodNameMethodName :: TypedName MethodName
- Hydra.Dsl.Java.Syntax: methodReferenceArray :: TypedTerm MethodReference_Array -> TypedTerm MethodReference
- Hydra.Dsl.Java.Syntax: methodReferenceExpression :: TypedTerm MethodReference_Expression -> TypedTerm MethodReference
- Hydra.Dsl.Java.Syntax: methodReferenceMethodReference :: TypedName MethodReference
- Hydra.Dsl.Java.Syntax: methodReferenceNew :: TypedTerm MethodReference_New -> TypedTerm MethodReference
- Hydra.Dsl.Java.Syntax: methodReferencePrimary :: TypedTerm MethodReference_Primary -> TypedTerm MethodReference
- Hydra.Dsl.Java.Syntax: methodReferenceReferenceType :: TypedTerm MethodReference_ReferenceType -> TypedTerm MethodReference
- Hydra.Dsl.Java.Syntax: methodReferenceSuper :: TypedTerm MethodReference_Super -> TypedTerm MethodReference
- Hydra.Dsl.Java.Syntax: methodReference_Array :: TypedTerm ArrayType -> TypedTerm MethodReference_Array
- Hydra.Dsl.Java.Syntax: methodReference_ArrayMethodReference_Array :: TypedName MethodReference_Array
- Hydra.Dsl.Java.Syntax: methodReference_Expression :: TypedTerm ExpressionName -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodReference_Expression
- Hydra.Dsl.Java.Syntax: methodReference_ExpressionIdentifier :: TypedTerm MethodReference_Expression -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: methodReference_ExpressionMethodReference_Expression :: TypedName MethodReference_Expression
- Hydra.Dsl.Java.Syntax: methodReference_ExpressionName :: TypedTerm MethodReference_Expression -> TypedTerm ExpressionName
- Hydra.Dsl.Java.Syntax: methodReference_ExpressionTypeArguments :: TypedTerm MethodReference_Expression -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: methodReference_ExpressionWithIdentifier :: TypedTerm MethodReference_Expression -> TypedTerm Identifier -> TypedTerm MethodReference_Expression
- Hydra.Dsl.Java.Syntax: methodReference_ExpressionWithName :: TypedTerm MethodReference_Expression -> TypedTerm ExpressionName -> TypedTerm MethodReference_Expression
- Hydra.Dsl.Java.Syntax: methodReference_ExpressionWithTypeArguments :: TypedTerm MethodReference_Expression -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_Expression
- Hydra.Dsl.Java.Syntax: methodReference_New :: TypedTerm ClassType -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_New
- Hydra.Dsl.Java.Syntax: methodReference_NewClassType :: TypedTerm MethodReference_New -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: methodReference_NewMethodReference_New :: TypedName MethodReference_New
- Hydra.Dsl.Java.Syntax: methodReference_NewTypeArguments :: TypedTerm MethodReference_New -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: methodReference_NewWithClassType :: TypedTerm MethodReference_New -> TypedTerm ClassType -> TypedTerm MethodReference_New
- Hydra.Dsl.Java.Syntax: methodReference_NewWithTypeArguments :: TypedTerm MethodReference_New -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_New
- Hydra.Dsl.Java.Syntax: methodReference_Primary :: TypedTerm Primary -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodReference_Primary
- Hydra.Dsl.Java.Syntax: methodReference_PrimaryIdentifier :: TypedTerm MethodReference_Primary -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: methodReference_PrimaryMethodReference_Primary :: TypedName MethodReference_Primary
- Hydra.Dsl.Java.Syntax: methodReference_PrimaryPrimary :: TypedTerm MethodReference_Primary -> TypedTerm Primary
- Hydra.Dsl.Java.Syntax: methodReference_PrimaryTypeArguments :: TypedTerm MethodReference_Primary -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: methodReference_PrimaryWithIdentifier :: TypedTerm MethodReference_Primary -> TypedTerm Identifier -> TypedTerm MethodReference_Primary
- Hydra.Dsl.Java.Syntax: methodReference_PrimaryWithPrimary :: TypedTerm MethodReference_Primary -> TypedTerm Primary -> TypedTerm MethodReference_Primary
- Hydra.Dsl.Java.Syntax: methodReference_PrimaryWithTypeArguments :: TypedTerm MethodReference_Primary -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_Primary
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceType :: TypedTerm ReferenceType -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodReference_ReferenceType
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeIdentifier :: TypedTerm MethodReference_ReferenceType -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeMethodReference_ReferenceType :: TypedName MethodReference_ReferenceType
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeReferenceType :: TypedTerm MethodReference_ReferenceType -> TypedTerm ReferenceType
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeTypeArguments :: TypedTerm MethodReference_ReferenceType -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeWithIdentifier :: TypedTerm MethodReference_ReferenceType -> TypedTerm Identifier -> TypedTerm MethodReference_ReferenceType
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeWithReferenceType :: TypedTerm MethodReference_ReferenceType -> TypedTerm ReferenceType -> TypedTerm MethodReference_ReferenceType
- Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeWithTypeArguments :: TypedTerm MethodReference_ReferenceType -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_ReferenceType
- Hydra.Dsl.Java.Syntax: methodReference_Super :: TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm Bool -> TypedTerm MethodReference_Super
- Hydra.Dsl.Java.Syntax: methodReference_SuperIdentifier :: TypedTerm MethodReference_Super -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: methodReference_SuperMethodReference_Super :: TypedName MethodReference_Super
- Hydra.Dsl.Java.Syntax: methodReference_SuperSuper :: TypedTerm MethodReference_Super -> TypedTerm Bool
- Hydra.Dsl.Java.Syntax: methodReference_SuperTypeArguments :: TypedTerm MethodReference_Super -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: methodReference_SuperWithIdentifier :: TypedTerm MethodReference_Super -> TypedTerm Identifier -> TypedTerm MethodReference_Super
- Hydra.Dsl.Java.Syntax: methodReference_SuperWithSuper :: TypedTerm MethodReference_Super -> TypedTerm Bool -> TypedTerm MethodReference_Super
- Hydra.Dsl.Java.Syntax: methodReference_SuperWithTypeArguments :: TypedTerm MethodReference_Super -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_Super
- Hydra.Dsl.Java.Syntax: modularCompilationUnit :: TypedTerm [ImportDeclaration] -> TypedTerm ModuleDeclaration -> TypedTerm ModularCompilationUnit
- Hydra.Dsl.Java.Syntax: modularCompilationUnitImports :: TypedTerm ModularCompilationUnit -> TypedTerm [ImportDeclaration]
- Hydra.Dsl.Java.Syntax: modularCompilationUnitModularCompilationUnit :: TypedName ModularCompilationUnit
- Hydra.Dsl.Java.Syntax: modularCompilationUnitModule :: TypedTerm ModularCompilationUnit -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Java.Syntax: modularCompilationUnitWithImports :: TypedTerm ModularCompilationUnit -> TypedTerm [ImportDeclaration] -> TypedTerm ModularCompilationUnit
- Hydra.Dsl.Java.Syntax: modularCompilationUnitWithModule :: TypedTerm ModularCompilationUnit -> TypedTerm ModuleDeclaration -> TypedTerm ModularCompilationUnit
- Hydra.Dsl.Java.Syntax: moduleDeclaration :: TypedTerm [Annotation] -> TypedTerm Bool -> TypedTerm [Identifier] -> TypedTerm [ModuleDirective] -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Java.Syntax: moduleDeclarationAnnotations :: TypedTerm ModuleDeclaration -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: moduleDeclarationDirectives :: TypedTerm ModuleDeclaration -> TypedTerm [ModuleDirective]
- Hydra.Dsl.Java.Syntax: moduleDeclarationIdentifiers :: TypedTerm ModuleDeclaration -> TypedTerm [Identifier]
- Hydra.Dsl.Java.Syntax: moduleDeclarationModuleDeclaration :: TypedName ModuleDeclaration
- Hydra.Dsl.Java.Syntax: moduleDeclarationOpen :: TypedTerm ModuleDeclaration -> TypedTerm Bool
- Hydra.Dsl.Java.Syntax: moduleDeclarationWithAnnotations :: TypedTerm ModuleDeclaration -> TypedTerm [Annotation] -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Java.Syntax: moduleDeclarationWithDirectives :: TypedTerm ModuleDeclaration -> TypedTerm [ModuleDirective] -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Java.Syntax: moduleDeclarationWithIdentifiers :: TypedTerm ModuleDeclaration -> TypedTerm [Identifier] -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Java.Syntax: moduleDeclarationWithOpen :: TypedTerm ModuleDeclaration -> TypedTerm Bool -> TypedTerm ModuleDeclaration
- Hydra.Dsl.Java.Syntax: moduleDirectiveExports :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm ModuleDirective
- Hydra.Dsl.Java.Syntax: moduleDirectiveModuleDirective :: TypedName ModuleDirective
- Hydra.Dsl.Java.Syntax: moduleDirectiveOpens :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm ModuleDirective
- Hydra.Dsl.Java.Syntax: moduleDirectiveProvides :: TypedTerm ModuleDirective_Provides -> TypedTerm ModuleDirective
- Hydra.Dsl.Java.Syntax: moduleDirectiveRequires :: TypedTerm ModuleDirective_Requires -> TypedTerm ModuleDirective
- Hydra.Dsl.Java.Syntax: moduleDirectiveUses :: TypedTerm TypeName -> TypedTerm ModuleDirective
- Hydra.Dsl.Java.Syntax: moduleDirective_ExportsOrOpens :: TypedTerm PackageName -> TypedTerm [ModuleName] -> TypedTerm ModuleDirective_ExportsOrOpens
- Hydra.Dsl.Java.Syntax: moduleDirective_ExportsOrOpensModuleDirective_ExportsOrOpens :: TypedName ModuleDirective_ExportsOrOpens
- Hydra.Dsl.Java.Syntax: moduleDirective_ExportsOrOpensModules :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm [ModuleName]
- Hydra.Dsl.Java.Syntax: moduleDirective_ExportsOrOpensPackage :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm PackageName
- Hydra.Dsl.Java.Syntax: moduleDirective_ExportsOrOpensWithModules :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm [ModuleName] -> TypedTerm ModuleDirective_ExportsOrOpens
- Hydra.Dsl.Java.Syntax: moduleDirective_ExportsOrOpensWithPackage :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm PackageName -> TypedTerm ModuleDirective_ExportsOrOpens
- Hydra.Dsl.Java.Syntax: moduleDirective_Provides :: TypedTerm TypeName -> TypedTerm [TypeName] -> TypedTerm ModuleDirective_Provides
- Hydra.Dsl.Java.Syntax: moduleDirective_ProvidesModuleDirective_Provides :: TypedName ModuleDirective_Provides
- Hydra.Dsl.Java.Syntax: moduleDirective_ProvidesTo :: TypedTerm ModuleDirective_Provides -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: moduleDirective_ProvidesWith :: TypedTerm ModuleDirective_Provides -> TypedTerm [TypeName]
- Hydra.Dsl.Java.Syntax: moduleDirective_ProvidesWithTo :: TypedTerm ModuleDirective_Provides -> TypedTerm TypeName -> TypedTerm ModuleDirective_Provides
- Hydra.Dsl.Java.Syntax: moduleDirective_ProvidesWithWith :: TypedTerm ModuleDirective_Provides -> TypedTerm [TypeName] -> TypedTerm ModuleDirective_Provides
- Hydra.Dsl.Java.Syntax: moduleDirective_Requires :: TypedTerm [RequiresModifier] -> TypedTerm ModuleName -> TypedTerm ModuleDirective_Requires
- Hydra.Dsl.Java.Syntax: moduleDirective_RequiresModifiers :: TypedTerm ModuleDirective_Requires -> TypedTerm [RequiresModifier]
- Hydra.Dsl.Java.Syntax: moduleDirective_RequiresModule :: TypedTerm ModuleDirective_Requires -> TypedTerm ModuleName
- Hydra.Dsl.Java.Syntax: moduleDirective_RequiresModuleDirective_Requires :: TypedName ModuleDirective_Requires
- Hydra.Dsl.Java.Syntax: moduleDirective_RequiresWithModifiers :: TypedTerm ModuleDirective_Requires -> TypedTerm [RequiresModifier] -> TypedTerm ModuleDirective_Requires
- Hydra.Dsl.Java.Syntax: moduleDirective_RequiresWithModule :: TypedTerm ModuleDirective_Requires -> TypedTerm ModuleName -> TypedTerm ModuleDirective_Requires
- Hydra.Dsl.Java.Syntax: moduleName :: TypedTerm Identifier -> TypedTerm (Maybe ModuleName) -> TypedTerm ModuleName
- Hydra.Dsl.Java.Syntax: moduleNameIdentifier :: TypedTerm ModuleName -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: moduleNameModuleName :: TypedName ModuleName
- Hydra.Dsl.Java.Syntax: moduleNameName :: TypedTerm ModuleName -> TypedTerm (Maybe ModuleName)
- Hydra.Dsl.Java.Syntax: moduleNameWithIdentifier :: TypedTerm ModuleName -> TypedTerm Identifier -> TypedTerm ModuleName
- Hydra.Dsl.Java.Syntax: moduleNameWithName :: TypedTerm ModuleName -> TypedTerm (Maybe ModuleName) -> TypedTerm ModuleName
- Hydra.Dsl.Java.Syntax: multiplicativeExpressionDivide :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
- Hydra.Dsl.Java.Syntax: multiplicativeExpressionMod :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
- Hydra.Dsl.Java.Syntax: multiplicativeExpressionMultiplicativeExpression :: TypedName MultiplicativeExpression
- Hydra.Dsl.Java.Syntax: multiplicativeExpressionTimes :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
- Hydra.Dsl.Java.Syntax: multiplicativeExpressionUnary :: TypedTerm UnaryExpression -> TypedTerm MultiplicativeExpression
- Hydra.Dsl.Java.Syntax: multiplicativeExpression_Binary :: TypedTerm MultiplicativeExpression -> TypedTerm UnaryExpression -> TypedTerm MultiplicativeExpression_Binary
- Hydra.Dsl.Java.Syntax: multiplicativeExpression_BinaryLhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
- Hydra.Dsl.Java.Syntax: multiplicativeExpression_BinaryMultiplicativeExpression_Binary :: TypedName MultiplicativeExpression_Binary
- Hydra.Dsl.Java.Syntax: multiplicativeExpression_BinaryRhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: multiplicativeExpression_BinaryWithLhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression -> TypedTerm MultiplicativeExpression_Binary
- Hydra.Dsl.Java.Syntax: multiplicativeExpression_BinaryWithRhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm UnaryExpression -> TypedTerm MultiplicativeExpression_Binary
- Hydra.Dsl.Java.Syntax: normalAnnotation :: TypedTerm TypeName -> TypedTerm [ElementValuePair] -> TypedTerm NormalAnnotation
- Hydra.Dsl.Java.Syntax: normalAnnotationNormalAnnotation :: TypedName NormalAnnotation
- Hydra.Dsl.Java.Syntax: normalAnnotationPairs :: TypedTerm NormalAnnotation -> TypedTerm [ElementValuePair]
- Hydra.Dsl.Java.Syntax: normalAnnotationTypeName :: TypedTerm NormalAnnotation -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: normalAnnotationWithPairs :: TypedTerm NormalAnnotation -> TypedTerm [ElementValuePair] -> TypedTerm NormalAnnotation
- Hydra.Dsl.Java.Syntax: normalAnnotationWithTypeName :: TypedTerm NormalAnnotation -> TypedTerm TypeName -> TypedTerm NormalAnnotation
- Hydra.Dsl.Java.Syntax: normalClassDeclaration :: TypedTerm [ClassModifier] -> TypedTerm TypeIdentifier -> TypedTerm [TypeParameter] -> TypedTerm (Maybe ClassType) -> TypedTerm [InterfaceType] -> TypedTerm [TypeName] -> TypedTerm ClassBody -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationBody :: TypedTerm NormalClassDeclaration -> TypedTerm ClassBody
- Hydra.Dsl.Java.Syntax: normalClassDeclarationExtends :: TypedTerm NormalClassDeclaration -> TypedTerm (Maybe ClassType)
- Hydra.Dsl.Java.Syntax: normalClassDeclarationIdentifier :: TypedTerm NormalClassDeclaration -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: normalClassDeclarationImplements :: TypedTerm NormalClassDeclaration -> TypedTerm [InterfaceType]
- Hydra.Dsl.Java.Syntax: normalClassDeclarationModifiers :: TypedTerm NormalClassDeclaration -> TypedTerm [ClassModifier]
- Hydra.Dsl.Java.Syntax: normalClassDeclarationNormalClassDeclaration :: TypedName NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationParameters :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeParameter]
- Hydra.Dsl.Java.Syntax: normalClassDeclarationPermits :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeName]
- Hydra.Dsl.Java.Syntax: normalClassDeclarationWithBody :: TypedTerm NormalClassDeclaration -> TypedTerm ClassBody -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationWithExtends :: TypedTerm NormalClassDeclaration -> TypedTerm (Maybe ClassType) -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationWithIdentifier :: TypedTerm NormalClassDeclaration -> TypedTerm TypeIdentifier -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationWithImplements :: TypedTerm NormalClassDeclaration -> TypedTerm [InterfaceType] -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationWithModifiers :: TypedTerm NormalClassDeclaration -> TypedTerm [ClassModifier] -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationWithParameters :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeParameter] -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalClassDeclarationWithPermits :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeName] -> TypedTerm NormalClassDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclaration :: TypedTerm [InterfaceModifier] -> TypedTerm TypeIdentifier -> TypedTerm [TypeParameter] -> TypedTerm [InterfaceType] -> TypedTerm [TypeName] -> TypedTerm InterfaceBody -> TypedTerm NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationBody :: TypedTerm NormalInterfaceDeclaration -> TypedTerm InterfaceBody
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationExtends :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceType]
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationIdentifier :: TypedTerm NormalInterfaceDeclaration -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationModifiers :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceModifier]
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationNormalInterfaceDeclaration :: TypedName NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationParameters :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeParameter]
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationPermits :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeName]
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationWithBody :: TypedTerm NormalInterfaceDeclaration -> TypedTerm InterfaceBody -> TypedTerm NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationWithExtends :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceType] -> TypedTerm NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationWithIdentifier :: TypedTerm NormalInterfaceDeclaration -> TypedTerm TypeIdentifier -> TypedTerm NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationWithModifiers :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceModifier] -> TypedTerm NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationWithParameters :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeParameter] -> TypedTerm NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationWithPermits :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeName] -> TypedTerm NormalInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: numericTypeArrayArray :: TypedTerm NumericTypeArray -> TypedTerm NumericTypeArray
- Hydra.Dsl.Java.Syntax: numericTypeArrayNumericTypeArray :: TypedName NumericTypeArray
- Hydra.Dsl.Java.Syntax: numericTypeArraySimple :: TypedTerm NumericType -> TypedTerm NumericTypeArray
- Hydra.Dsl.Java.Syntax: numericTypeFloatingPoint :: TypedTerm FloatingPointType -> TypedTerm NumericType
- Hydra.Dsl.Java.Syntax: numericTypeIntegral :: TypedTerm IntegralType -> TypedTerm NumericType
- Hydra.Dsl.Java.Syntax: numericTypeNumericType :: TypedName NumericType
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnit :: TypedTerm (Maybe PackageDeclaration) -> TypedTerm [ImportDeclaration] -> TypedTerm [TopLevelClassOrInterfaceDeclarationWithComments] -> TypedTerm OrdinaryCompilationUnit
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitImports :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [ImportDeclaration]
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitOrdinaryCompilationUnit :: TypedName OrdinaryCompilationUnit
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitPackage :: TypedTerm OrdinaryCompilationUnit -> TypedTerm (Maybe PackageDeclaration)
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitTypes :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [TopLevelClassOrInterfaceDeclarationWithComments]
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitWithImports :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [ImportDeclaration] -> TypedTerm OrdinaryCompilationUnit
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitWithPackage :: TypedTerm OrdinaryCompilationUnit -> TypedTerm (Maybe PackageDeclaration) -> TypedTerm OrdinaryCompilationUnit
- Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitWithTypes :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [TopLevelClassOrInterfaceDeclarationWithComments] -> TypedTerm OrdinaryCompilationUnit
- Hydra.Dsl.Java.Syntax: packageDeclaration :: TypedTerm [PackageModifier] -> TypedTerm [Identifier] -> TypedTerm PackageDeclaration
- Hydra.Dsl.Java.Syntax: packageDeclarationIdentifiers :: TypedTerm PackageDeclaration -> TypedTerm [Identifier]
- Hydra.Dsl.Java.Syntax: packageDeclarationModifiers :: TypedTerm PackageDeclaration -> TypedTerm [PackageModifier]
- Hydra.Dsl.Java.Syntax: packageDeclarationPackageDeclaration :: TypedName PackageDeclaration
- Hydra.Dsl.Java.Syntax: packageDeclarationWithIdentifiers :: TypedTerm PackageDeclaration -> TypedTerm [Identifier] -> TypedTerm PackageDeclaration
- Hydra.Dsl.Java.Syntax: packageDeclarationWithModifiers :: TypedTerm PackageDeclaration -> TypedTerm [PackageModifier] -> TypedTerm PackageDeclaration
- Hydra.Dsl.Java.Syntax: packageModifier :: TypedTerm Annotation -> TypedTerm PackageModifier
- Hydra.Dsl.Java.Syntax: packageModifierPackageModifier :: TypedName PackageModifier
- Hydra.Dsl.Java.Syntax: packageName :: TypedTerm [Identifier] -> TypedTerm PackageName
- Hydra.Dsl.Java.Syntax: packageNamePackageName :: TypedName PackageName
- Hydra.Dsl.Java.Syntax: packageOrTypeName :: TypedTerm [Identifier] -> TypedTerm PackageOrTypeName
- Hydra.Dsl.Java.Syntax: packageOrTypeNamePackageOrTypeName :: TypedName PackageOrTypeName
- Hydra.Dsl.Java.Syntax: patternPattern :: TypedName Pattern
- Hydra.Dsl.Java.Syntax: patternRecord :: TypedTerm RecordPattern -> TypedTerm Pattern
- Hydra.Dsl.Java.Syntax: patternType :: TypedTerm TypePattern -> TypedTerm Pattern
- Hydra.Dsl.Java.Syntax: postDecrementExpression :: TypedTerm PostfixExpression -> TypedTerm PostDecrementExpression
- Hydra.Dsl.Java.Syntax: postDecrementExpressionPostDecrementExpression :: TypedName PostDecrementExpression
- Hydra.Dsl.Java.Syntax: postIncrementExpression :: TypedTerm PostfixExpression -> TypedTerm PostIncrementExpression
- Hydra.Dsl.Java.Syntax: postIncrementExpressionPostIncrementExpression :: TypedName PostIncrementExpression
- Hydra.Dsl.Java.Syntax: postfixExpressionName :: TypedTerm ExpressionName -> TypedTerm PostfixExpression
- Hydra.Dsl.Java.Syntax: postfixExpressionPostDecrement :: TypedTerm PostDecrementExpression -> TypedTerm PostfixExpression
- Hydra.Dsl.Java.Syntax: postfixExpressionPostIncrement :: TypedTerm PostIncrementExpression -> TypedTerm PostfixExpression
- Hydra.Dsl.Java.Syntax: postfixExpressionPostfixExpression :: TypedName PostfixExpression
- Hydra.Dsl.Java.Syntax: postfixExpressionPrimary :: TypedTerm Primary -> TypedTerm PostfixExpression
- Hydra.Dsl.Java.Syntax: preDecrementExpression :: TypedTerm UnaryExpression -> TypedTerm PreDecrementExpression
- Hydra.Dsl.Java.Syntax: preDecrementExpressionPreDecrementExpression :: TypedName PreDecrementExpression
- Hydra.Dsl.Java.Syntax: preIncrementExpression :: TypedTerm UnaryExpression -> TypedTerm PreIncrementExpression
- Hydra.Dsl.Java.Syntax: preIncrementExpressionPreIncrementExpression :: TypedName PreIncrementExpression
- Hydra.Dsl.Java.Syntax: primaryArrayCreation :: TypedTerm ArrayCreationExpression -> TypedTerm Primary
- Hydra.Dsl.Java.Syntax: primaryNoNewArray :: TypedTerm PrimaryNoNewArrayExpression -> TypedTerm Primary
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionArrayAccess :: TypedTerm ArrayAccess -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionClassInstance :: TypedTerm ClassInstanceCreationExpression -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionClassLiteral :: TypedTerm ClassLiteral -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionDotThis :: TypedTerm TypeName -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionFieldAccess :: TypedTerm FieldAccess -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionLiteral :: TypedTerm Literal -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionMethodInvocation :: TypedTerm MethodInvocation -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionMethodReference :: TypedTerm MethodReference -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionParens :: TypedTerm Expression -> TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionPrimaryNoNewArrayExpression :: TypedName PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionThis :: TypedTerm PrimaryNoNewArrayExpression
- Hydra.Dsl.Java.Syntax: primaryPrimary :: TypedName Primary
- Hydra.Dsl.Java.Syntax: primitiveTypeBoolean :: TypedTerm PrimitiveType
- Hydra.Dsl.Java.Syntax: primitiveTypeNumeric :: TypedTerm NumericType -> TypedTerm PrimitiveType
- Hydra.Dsl.Java.Syntax: primitiveTypePrimitiveType :: TypedName PrimitiveType
- Hydra.Dsl.Java.Syntax: primitiveTypeWithAnnotations :: TypedTerm PrimitiveType -> TypedTerm [Annotation] -> TypedTerm PrimitiveTypeWithAnnotations
- Hydra.Dsl.Java.Syntax: primitiveTypeWithAnnotationsAnnotations :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: primitiveTypeWithAnnotationsPrimitiveTypeWithAnnotations :: TypedName PrimitiveTypeWithAnnotations
- Hydra.Dsl.Java.Syntax: primitiveTypeWithAnnotationsType :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm PrimitiveType
- Hydra.Dsl.Java.Syntax: primitiveTypeWithAnnotationsWithAnnotations :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [Annotation] -> TypedTerm PrimitiveTypeWithAnnotations
- Hydra.Dsl.Java.Syntax: primitiveTypeWithAnnotationsWithType :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm PrimitiveType -> TypedTerm PrimitiveTypeWithAnnotations
- Hydra.Dsl.Java.Syntax: receiverParameter :: TypedTerm [Annotation] -> TypedTerm UnannType -> TypedTerm (Maybe Identifier) -> TypedTerm ReceiverParameter
- Hydra.Dsl.Java.Syntax: receiverParameterAnnotations :: TypedTerm ReceiverParameter -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: receiverParameterIdentifier :: TypedTerm ReceiverParameter -> TypedTerm (Maybe Identifier)
- Hydra.Dsl.Java.Syntax: receiverParameterReceiverParameter :: TypedName ReceiverParameter
- Hydra.Dsl.Java.Syntax: receiverParameterUnannType :: TypedTerm ReceiverParameter -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: receiverParameterWithAnnotations :: TypedTerm ReceiverParameter -> TypedTerm [Annotation] -> TypedTerm ReceiverParameter
- Hydra.Dsl.Java.Syntax: receiverParameterWithIdentifier :: TypedTerm ReceiverParameter -> TypedTerm (Maybe Identifier) -> TypedTerm ReceiverParameter
- Hydra.Dsl.Java.Syntax: receiverParameterWithUnannType :: TypedTerm ReceiverParameter -> TypedTerm UnannType -> TypedTerm ReceiverParameter
- Hydra.Dsl.Java.Syntax: recordBody :: TypedTerm [RecordBodyDeclaration] -> TypedTerm RecordBody
- Hydra.Dsl.Java.Syntax: recordBodyDeclarationClassBody :: TypedTerm ClassBodyDeclaration -> TypedTerm RecordBodyDeclaration
- Hydra.Dsl.Java.Syntax: recordBodyDeclarationCompactConstructor :: TypedTerm CompactConstructorDeclaration -> TypedTerm RecordBodyDeclaration
- Hydra.Dsl.Java.Syntax: recordBodyDeclarationRecordBodyDeclaration :: TypedName RecordBodyDeclaration
- Hydra.Dsl.Java.Syntax: recordBodyRecordBody :: TypedName RecordBody
- Hydra.Dsl.Java.Syntax: recordComponentModifier :: TypedTerm Annotation -> TypedTerm RecordComponentModifier
- Hydra.Dsl.Java.Syntax: recordComponentModifierRecordComponentModifier :: TypedName RecordComponentModifier
- Hydra.Dsl.Java.Syntax: recordComponentRecordComponent :: TypedName RecordComponent
- Hydra.Dsl.Java.Syntax: recordComponentSimple :: TypedTerm RecordComponent_Simple -> TypedTerm RecordComponent
- Hydra.Dsl.Java.Syntax: recordComponentVariableArity :: TypedTerm VariableArityRecordComponent -> TypedTerm RecordComponent
- Hydra.Dsl.Java.Syntax: recordComponent_Simple :: TypedTerm [RecordComponentModifier] -> TypedTerm UnannType -> TypedTerm Identifier -> TypedTerm RecordComponent_Simple
- Hydra.Dsl.Java.Syntax: recordComponent_SimpleIdentifier :: TypedTerm RecordComponent_Simple -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: recordComponent_SimpleModifiers :: TypedTerm RecordComponent_Simple -> TypedTerm [RecordComponentModifier]
- Hydra.Dsl.Java.Syntax: recordComponent_SimpleRecordComponent_Simple :: TypedName RecordComponent_Simple
- Hydra.Dsl.Java.Syntax: recordComponent_SimpleType :: TypedTerm RecordComponent_Simple -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: recordComponent_SimpleWithIdentifier :: TypedTerm RecordComponent_Simple -> TypedTerm Identifier -> TypedTerm RecordComponent_Simple
- Hydra.Dsl.Java.Syntax: recordComponent_SimpleWithModifiers :: TypedTerm RecordComponent_Simple -> TypedTerm [RecordComponentModifier] -> TypedTerm RecordComponent_Simple
- Hydra.Dsl.Java.Syntax: recordComponent_SimpleWithType :: TypedTerm RecordComponent_Simple -> TypedTerm UnannType -> TypedTerm RecordComponent_Simple
- Hydra.Dsl.Java.Syntax: recordDeclaration :: TypedTerm [ClassModifier] -> TypedTerm TypeIdentifier -> TypedTerm [TypeParameter] -> TypedTerm RecordHeader -> TypedTerm [InterfaceType] -> TypedTerm RecordBody -> TypedTerm RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordDeclarationBody :: TypedTerm RecordDeclaration -> TypedTerm RecordBody
- Hydra.Dsl.Java.Syntax: recordDeclarationHeader :: TypedTerm RecordDeclaration -> TypedTerm RecordHeader
- Hydra.Dsl.Java.Syntax: recordDeclarationIdentifier :: TypedTerm RecordDeclaration -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: recordDeclarationImplements :: TypedTerm RecordDeclaration -> TypedTerm [InterfaceType]
- Hydra.Dsl.Java.Syntax: recordDeclarationModifiers :: TypedTerm RecordDeclaration -> TypedTerm [ClassModifier]
- Hydra.Dsl.Java.Syntax: recordDeclarationParameters :: TypedTerm RecordDeclaration -> TypedTerm [TypeParameter]
- Hydra.Dsl.Java.Syntax: recordDeclarationRecordDeclaration :: TypedName RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordDeclarationWithBody :: TypedTerm RecordDeclaration -> TypedTerm RecordBody -> TypedTerm RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordDeclarationWithHeader :: TypedTerm RecordDeclaration -> TypedTerm RecordHeader -> TypedTerm RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordDeclarationWithIdentifier :: TypedTerm RecordDeclaration -> TypedTerm TypeIdentifier -> TypedTerm RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordDeclarationWithImplements :: TypedTerm RecordDeclaration -> TypedTerm [InterfaceType] -> TypedTerm RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordDeclarationWithModifiers :: TypedTerm RecordDeclaration -> TypedTerm [ClassModifier] -> TypedTerm RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordDeclarationWithParameters :: TypedTerm RecordDeclaration -> TypedTerm [TypeParameter] -> TypedTerm RecordDeclaration
- Hydra.Dsl.Java.Syntax: recordHeader :: TypedTerm [RecordComponent] -> TypedTerm RecordHeader
- Hydra.Dsl.Java.Syntax: recordHeaderRecordHeader :: TypedName RecordHeader
- Hydra.Dsl.Java.Syntax: recordPattern :: TypedTerm ReferenceType -> TypedTerm [Pattern] -> TypedTerm RecordPattern
- Hydra.Dsl.Java.Syntax: recordPatternPatterns :: TypedTerm RecordPattern -> TypedTerm [Pattern]
- Hydra.Dsl.Java.Syntax: recordPatternRecordPattern :: TypedName RecordPattern
- Hydra.Dsl.Java.Syntax: recordPatternType :: TypedTerm RecordPattern -> TypedTerm ReferenceType
- Hydra.Dsl.Java.Syntax: recordPatternWithPatterns :: TypedTerm RecordPattern -> TypedTerm [Pattern] -> TypedTerm RecordPattern
- Hydra.Dsl.Java.Syntax: recordPatternWithType :: TypedTerm RecordPattern -> TypedTerm ReferenceType -> TypedTerm RecordPattern
- Hydra.Dsl.Java.Syntax: referenceTypeArray :: TypedTerm ArrayType -> TypedTerm ReferenceType
- Hydra.Dsl.Java.Syntax: referenceTypeClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm ReferenceType
- Hydra.Dsl.Java.Syntax: referenceTypeReferenceType :: TypedName ReferenceType
- Hydra.Dsl.Java.Syntax: referenceTypeVariable :: TypedTerm TypeVariable -> TypedTerm ReferenceType
- Hydra.Dsl.Java.Syntax: relationalExpressionGreaterThan :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpressionGreaterThanEqual :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpressionInstanceofExpression :: TypedTerm InstanceofExpression -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpressionLessThan :: TypedTerm RelationalExpression_LessThan -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpressionLessThanEqual :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpressionRelationalExpression :: TypedName RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpressionSimple :: TypedTerm ShiftExpression -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThan :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThan
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanEqual :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanEqualLhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanEqualRelationalExpression_GreaterThanEqual :: TypedName RelationalExpression_GreaterThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanEqualRhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanEqualWithLhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_GreaterThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanEqualWithRhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanLhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanRelationalExpression_GreaterThan :: TypedName RelationalExpression_GreaterThan
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanRhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanWithLhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_GreaterThan
- Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanWithRhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThan
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThan :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThan
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanEqual :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanEqualLhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanEqualRelationalExpression_LessThanEqual :: TypedName RelationalExpression_LessThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanEqualRhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanEqualWithLhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_LessThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanEqualWithRhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThanEqual
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanLhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm RelationalExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanRelationalExpression_LessThan :: TypedName RelationalExpression_LessThan
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanRhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanWithLhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_LessThan
- Hydra.Dsl.Java.Syntax: relationalExpression_LessThanWithRhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThan
- Hydra.Dsl.Java.Syntax: requiresModifierRequiresModifier :: TypedName RequiresModifier
- Hydra.Dsl.Java.Syntax: requiresModifierStatic :: TypedTerm RequiresModifier
- Hydra.Dsl.Java.Syntax: requiresModifierTransitive :: TypedTerm RequiresModifier
- Hydra.Dsl.Java.Syntax: resourceLocal :: TypedTerm Resource_Local -> TypedTerm Resource
- Hydra.Dsl.Java.Syntax: resourceResource :: TypedName Resource
- Hydra.Dsl.Java.Syntax: resourceSpecification :: TypedTerm [Resource] -> TypedTerm ResourceSpecification
- Hydra.Dsl.Java.Syntax: resourceSpecificationResourceSpecification :: TypedName ResourceSpecification
- Hydra.Dsl.Java.Syntax: resourceVariable :: TypedTerm VariableAccess -> TypedTerm Resource
- Hydra.Dsl.Java.Syntax: resource_Local :: TypedTerm [VariableModifier] -> TypedTerm LocalVariableType -> TypedTerm Identifier -> TypedTerm Expression -> TypedTerm Resource_Local
- Hydra.Dsl.Java.Syntax: resource_LocalExpression :: TypedTerm Resource_Local -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: resource_LocalIdentifier :: TypedTerm Resource_Local -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: resource_LocalModifiers :: TypedTerm Resource_Local -> TypedTerm [VariableModifier]
- Hydra.Dsl.Java.Syntax: resource_LocalResource_Local :: TypedName Resource_Local
- Hydra.Dsl.Java.Syntax: resource_LocalType :: TypedTerm Resource_Local -> TypedTerm LocalVariableType
- Hydra.Dsl.Java.Syntax: resource_LocalWithExpression :: TypedTerm Resource_Local -> TypedTerm Expression -> TypedTerm Resource_Local
- Hydra.Dsl.Java.Syntax: resource_LocalWithIdentifier :: TypedTerm Resource_Local -> TypedTerm Identifier -> TypedTerm Resource_Local
- Hydra.Dsl.Java.Syntax: resource_LocalWithModifiers :: TypedTerm Resource_Local -> TypedTerm [VariableModifier] -> TypedTerm Resource_Local
- Hydra.Dsl.Java.Syntax: resource_LocalWithType :: TypedTerm Resource_Local -> TypedTerm LocalVariableType -> TypedTerm Resource_Local
- Hydra.Dsl.Java.Syntax: resultResult :: TypedName Result
- Hydra.Dsl.Java.Syntax: resultType :: TypedTerm UnannType -> TypedTerm Result
- Hydra.Dsl.Java.Syntax: resultVoid :: TypedTerm Result
- Hydra.Dsl.Java.Syntax: returnStatement :: TypedTerm (Maybe Expression) -> TypedTerm ReturnStatement
- Hydra.Dsl.Java.Syntax: returnStatementReturnStatement :: TypedName ReturnStatement
- Hydra.Dsl.Java.Syntax: shiftExpressionShiftExpression :: TypedName ShiftExpression
- Hydra.Dsl.Java.Syntax: shiftExpressionShiftLeft :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: shiftExpressionShiftRight :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: shiftExpressionShiftRightZeroFill :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: shiftExpressionUnary :: TypedTerm AdditiveExpression -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: shiftExpression_Binary :: TypedTerm ShiftExpression -> TypedTerm AdditiveExpression -> TypedTerm ShiftExpression_Binary
- Hydra.Dsl.Java.Syntax: shiftExpression_BinaryLhs :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
- Hydra.Dsl.Java.Syntax: shiftExpression_BinaryRhs :: TypedTerm ShiftExpression_Binary -> TypedTerm AdditiveExpression
- Hydra.Dsl.Java.Syntax: shiftExpression_BinaryShiftExpression_Binary :: TypedName ShiftExpression_Binary
- Hydra.Dsl.Java.Syntax: shiftExpression_BinaryWithLhs :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression -> TypedTerm ShiftExpression_Binary
- Hydra.Dsl.Java.Syntax: shiftExpression_BinaryWithRhs :: TypedTerm ShiftExpression_Binary -> TypedTerm AdditiveExpression -> TypedTerm ShiftExpression_Binary
- Hydra.Dsl.Java.Syntax: simpleTypeName :: TypedTerm TypeIdentifier -> TypedTerm SimpleTypeName
- Hydra.Dsl.Java.Syntax: simpleTypeNameSimpleTypeName :: TypedName SimpleTypeName
- Hydra.Dsl.Java.Syntax: singleElementAnnotation :: TypedTerm TypeName -> TypedTerm (Maybe ElementValue) -> TypedTerm SingleElementAnnotation
- Hydra.Dsl.Java.Syntax: singleElementAnnotationName :: TypedTerm SingleElementAnnotation -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: singleElementAnnotationSingleElementAnnotation :: TypedName SingleElementAnnotation
- Hydra.Dsl.Java.Syntax: singleElementAnnotationValue :: TypedTerm SingleElementAnnotation -> TypedTerm (Maybe ElementValue)
- Hydra.Dsl.Java.Syntax: singleElementAnnotationWithName :: TypedTerm SingleElementAnnotation -> TypedTerm TypeName -> TypedTerm SingleElementAnnotation
- Hydra.Dsl.Java.Syntax: singleElementAnnotationWithValue :: TypedTerm SingleElementAnnotation -> TypedTerm (Maybe ElementValue) -> TypedTerm SingleElementAnnotation
- Hydra.Dsl.Java.Syntax: singleStaticImportDeclaration :: TypedTerm TypeName -> TypedTerm Identifier -> TypedTerm SingleStaticImportDeclaration
- Hydra.Dsl.Java.Syntax: singleStaticImportDeclarationIdentifier :: TypedTerm SingleStaticImportDeclaration -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: singleStaticImportDeclarationSingleStaticImportDeclaration :: TypedName SingleStaticImportDeclaration
- Hydra.Dsl.Java.Syntax: singleStaticImportDeclarationTypeName :: TypedTerm SingleStaticImportDeclaration -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: singleStaticImportDeclarationWithIdentifier :: TypedTerm SingleStaticImportDeclaration -> TypedTerm Identifier -> TypedTerm SingleStaticImportDeclaration
- Hydra.Dsl.Java.Syntax: singleStaticImportDeclarationWithTypeName :: TypedTerm SingleStaticImportDeclaration -> TypedTerm TypeName -> TypedTerm SingleStaticImportDeclaration
- Hydra.Dsl.Java.Syntax: singleTypeImportDeclaration :: TypedTerm TypeName -> TypedTerm SingleTypeImportDeclaration
- Hydra.Dsl.Java.Syntax: singleTypeImportDeclarationSingleTypeImportDeclaration :: TypedName SingleTypeImportDeclaration
- Hydra.Dsl.Java.Syntax: statementExpressionAssignment :: TypedTerm Assignment -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: statementExpressionClassInstanceCreation :: TypedTerm ClassInstanceCreationExpression -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: statementExpressionMethodInvocation :: TypedTerm MethodInvocation -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: statementExpressionPostDecrement :: TypedTerm PostDecrementExpression -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: statementExpressionPostIncrement :: TypedTerm PostIncrementExpression -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: statementExpressionPreDecrement :: TypedTerm PreDecrementExpression -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: statementExpressionPreIncrement :: TypedTerm PreIncrementExpression -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: statementExpressionStatementExpression :: TypedName StatementExpression
- Hydra.Dsl.Java.Syntax: statementFor :: TypedTerm ForStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: statementIfThen :: TypedTerm IfThenStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: statementIfThenElse :: TypedTerm IfThenElseStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: statementLabeled :: TypedTerm LabeledStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: statementNoShortIfFor :: TypedTerm ForStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: statementNoShortIfIfThenElse :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: statementNoShortIfLabeled :: TypedTerm LabeledStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: statementNoShortIfStatementNoShortIf :: TypedName StatementNoShortIf
- Hydra.Dsl.Java.Syntax: statementNoShortIfWhile :: TypedTerm WhileStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: statementNoShortIfWithoutTrailing :: TypedTerm StatementWithoutTrailingSubstatement -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: statementStatement :: TypedName Statement
- Hydra.Dsl.Java.Syntax: statementWhile :: TypedTerm WhileStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailing :: TypedTerm StatementWithoutTrailingSubstatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementAssert :: TypedTerm AssertStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementBlock :: TypedTerm Block -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementBreak :: TypedTerm BreakStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementContinue :: TypedTerm ContinueStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementDo :: TypedTerm DoStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementEmpty :: TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementExpression :: TypedTerm ExpressionStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementReturn :: TypedTerm ReturnStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementStatementWithoutTrailingSubstatement :: TypedName StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementSwitch :: TypedTerm SwitchStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementSynchronized :: TypedTerm SynchronizedStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementThrow :: TypedTerm ThrowStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementTry :: TypedTerm TryStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementYield :: TypedTerm YieldStatement -> TypedTerm StatementWithoutTrailingSubstatement
- Hydra.Dsl.Java.Syntax: staticImportOnDemandDeclaration :: TypedTerm TypeName -> TypedTerm StaticImportOnDemandDeclaration
- Hydra.Dsl.Java.Syntax: staticImportOnDemandDeclarationStaticImportOnDemandDeclaration :: TypedName StaticImportOnDemandDeclaration
- Hydra.Dsl.Java.Syntax: staticInitializer :: TypedTerm Block -> TypedTerm StaticInitializer
- Hydra.Dsl.Java.Syntax: staticInitializerStaticInitializer :: TypedName StaticInitializer
- Hydra.Dsl.Java.Syntax: stringLiteral :: TypedTerm String -> TypedTerm StringLiteral
- Hydra.Dsl.Java.Syntax: stringLiteralStringLiteral :: TypedName StringLiteral
- Hydra.Dsl.Java.Syntax: switchBlockLegacy :: TypedTerm SwitchBlock_Legacy -> TypedTerm SwitchBlock
- Hydra.Dsl.Java.Syntax: switchBlockRules :: TypedTerm [SwitchRule] -> TypedTerm SwitchBlock
- Hydra.Dsl.Java.Syntax: switchBlockStatementGroup :: TypedTerm [SwitchLabel] -> TypedTerm [BlockStatement] -> TypedTerm SwitchBlockStatementGroup
- Hydra.Dsl.Java.Syntax: switchBlockStatementGroupLabels :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [SwitchLabel]
- Hydra.Dsl.Java.Syntax: switchBlockStatementGroupStatements :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [BlockStatement]
- Hydra.Dsl.Java.Syntax: switchBlockStatementGroupSwitchBlockStatementGroup :: TypedName SwitchBlockStatementGroup
- Hydra.Dsl.Java.Syntax: switchBlockStatementGroupWithLabels :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [SwitchLabel] -> TypedTerm SwitchBlockStatementGroup
- Hydra.Dsl.Java.Syntax: switchBlockStatementGroupWithStatements :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [BlockStatement] -> TypedTerm SwitchBlockStatementGroup
- Hydra.Dsl.Java.Syntax: switchBlockSwitchBlock :: TypedName SwitchBlock
- Hydra.Dsl.Java.Syntax: switchBlock_Legacy :: TypedTerm [SwitchBlockStatementGroup] -> TypedTerm [SwitchLabel] -> TypedTerm SwitchBlock_Legacy
- Hydra.Dsl.Java.Syntax: switchBlock_LegacyGroups :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchBlockStatementGroup]
- Hydra.Dsl.Java.Syntax: switchBlock_LegacySwitchBlock_Legacy :: TypedName SwitchBlock_Legacy
- Hydra.Dsl.Java.Syntax: switchBlock_LegacyTrailingLabels :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchLabel]
- Hydra.Dsl.Java.Syntax: switchBlock_LegacyWithGroups :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchBlockStatementGroup] -> TypedTerm SwitchBlock_Legacy
- Hydra.Dsl.Java.Syntax: switchBlock_LegacyWithTrailingLabels :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchLabel] -> TypedTerm SwitchBlock_Legacy
- Hydra.Dsl.Java.Syntax: switchExpression :: TypedTerm Expression -> TypedTerm SwitchBlock -> TypedTerm SwitchExpression
- Hydra.Dsl.Java.Syntax: switchExpressionBlock :: TypedTerm SwitchExpression -> TypedTerm SwitchBlock
- Hydra.Dsl.Java.Syntax: switchExpressionCond :: TypedTerm SwitchExpression -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: switchExpressionSwitchExpression :: TypedName SwitchExpression
- Hydra.Dsl.Java.Syntax: switchExpressionWithBlock :: TypedTerm SwitchExpression -> TypedTerm SwitchBlock -> TypedTerm SwitchExpression
- Hydra.Dsl.Java.Syntax: switchExpressionWithCond :: TypedTerm SwitchExpression -> TypedTerm Expression -> TypedTerm SwitchExpression
- Hydra.Dsl.Java.Syntax: switchLabelCase :: TypedTerm [CaseConstant] -> TypedTerm SwitchLabel
- Hydra.Dsl.Java.Syntax: switchLabelCasePattern :: TypedTerm CasePattern -> TypedTerm SwitchLabel
- Hydra.Dsl.Java.Syntax: switchLabelDefault :: TypedTerm SwitchLabel
- Hydra.Dsl.Java.Syntax: switchLabelNull :: TypedTerm Bool -> TypedTerm SwitchLabel
- Hydra.Dsl.Java.Syntax: switchLabelSwitchLabel :: TypedName SwitchLabel
- Hydra.Dsl.Java.Syntax: switchRule :: TypedTerm SwitchLabel -> TypedTerm SwitchRule_Body -> TypedTerm SwitchRule
- Hydra.Dsl.Java.Syntax: switchRuleBody :: TypedTerm SwitchRule -> TypedTerm SwitchRule_Body
- Hydra.Dsl.Java.Syntax: switchRuleLabel :: TypedTerm SwitchRule -> TypedTerm SwitchLabel
- Hydra.Dsl.Java.Syntax: switchRuleSwitchRule :: TypedName SwitchRule
- Hydra.Dsl.Java.Syntax: switchRuleWithBody :: TypedTerm SwitchRule -> TypedTerm SwitchRule_Body -> TypedTerm SwitchRule
- Hydra.Dsl.Java.Syntax: switchRuleWithLabel :: TypedTerm SwitchRule -> TypedTerm SwitchLabel -> TypedTerm SwitchRule
- Hydra.Dsl.Java.Syntax: switchRule_BodyBlock :: TypedTerm Block -> TypedTerm SwitchRule_Body
- Hydra.Dsl.Java.Syntax: switchRule_BodyExpression :: TypedTerm Expression -> TypedTerm SwitchRule_Body
- Hydra.Dsl.Java.Syntax: switchRule_BodySwitchRule_Body :: TypedName SwitchRule_Body
- Hydra.Dsl.Java.Syntax: switchRule_BodyThrow :: TypedTerm ThrowStatement -> TypedTerm SwitchRule_Body
- Hydra.Dsl.Java.Syntax: switchStatement :: TypedTerm Expression -> TypedTerm SwitchBlock -> TypedTerm SwitchStatement
- Hydra.Dsl.Java.Syntax: switchStatementBlock :: TypedTerm SwitchStatement -> TypedTerm SwitchBlock
- Hydra.Dsl.Java.Syntax: switchStatementCond :: TypedTerm SwitchStatement -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: switchStatementSwitchStatement :: TypedName SwitchStatement
- Hydra.Dsl.Java.Syntax: switchStatementWithBlock :: TypedTerm SwitchStatement -> TypedTerm SwitchBlock -> TypedTerm SwitchStatement
- Hydra.Dsl.Java.Syntax: switchStatementWithCond :: TypedTerm SwitchStatement -> TypedTerm Expression -> TypedTerm SwitchStatement
- Hydra.Dsl.Java.Syntax: synchronizedStatement :: TypedTerm Expression -> TypedTerm Block -> TypedTerm SynchronizedStatement
- Hydra.Dsl.Java.Syntax: synchronizedStatementBlock :: TypedTerm SynchronizedStatement -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: synchronizedStatementExpression :: TypedTerm SynchronizedStatement -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: synchronizedStatementSynchronizedStatement :: TypedName SynchronizedStatement
- Hydra.Dsl.Java.Syntax: synchronizedStatementWithBlock :: TypedTerm SynchronizedStatement -> TypedTerm Block -> TypedTerm SynchronizedStatement
- Hydra.Dsl.Java.Syntax: synchronizedStatementWithExpression :: TypedTerm SynchronizedStatement -> TypedTerm Expression -> TypedTerm SynchronizedStatement
- Hydra.Dsl.Java.Syntax: textBlock :: TypedTerm String -> TypedTerm TextBlock
- Hydra.Dsl.Java.Syntax: textBlockTextBlock :: TypedName TextBlock
- Hydra.Dsl.Java.Syntax: throwStatement :: TypedTerm Expression -> TypedTerm ThrowStatement
- Hydra.Dsl.Java.Syntax: throwStatementThrowStatement :: TypedName ThrowStatement
- Hydra.Dsl.Java.Syntax: throws :: TypedTerm [ExceptionType] -> TypedTerm Throws
- Hydra.Dsl.Java.Syntax: throwsThrows :: TypedName Throws
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm TopLevelClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm TopLevelClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationNone :: TypedTerm TopLevelClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationTopLevelClassOrInterfaceDeclaration :: TypedName TopLevelClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationWithComments :: TypedTerm TopLevelClassOrInterfaceDeclaration -> TypedTerm (Maybe String) -> TypedTerm TopLevelClassOrInterfaceDeclarationWithComments
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsComments :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm (Maybe String)
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsTopLevelClassOrInterfaceDeclarationWithComments :: TypedName TopLevelClassOrInterfaceDeclarationWithComments
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsValue :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm TopLevelClassOrInterfaceDeclaration
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsWithComments :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm (Maybe String) -> TypedTerm TopLevelClassOrInterfaceDeclarationWithComments
- Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsWithValue :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm TopLevelClassOrInterfaceDeclaration -> TypedTerm TopLevelClassOrInterfaceDeclarationWithComments
- Hydra.Dsl.Java.Syntax: tryStatementSimple :: TypedTerm TryStatement_Simple -> TypedTerm TryStatement
- Hydra.Dsl.Java.Syntax: tryStatementTryStatement :: TypedName TryStatement
- Hydra.Dsl.Java.Syntax: tryStatementWithFinally :: TypedTerm TryStatement_WithFinally -> TypedTerm TryStatement
- Hydra.Dsl.Java.Syntax: tryStatementWithResources :: TypedTerm TryWithResourcesStatement -> TypedTerm TryStatement
- Hydra.Dsl.Java.Syntax: tryStatement_Simple :: TypedTerm Block -> TypedTerm Catches -> TypedTerm TryStatement_Simple
- Hydra.Dsl.Java.Syntax: tryStatement_SimpleBlock :: TypedTerm TryStatement_Simple -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: tryStatement_SimpleCatches :: TypedTerm TryStatement_Simple -> TypedTerm Catches
- Hydra.Dsl.Java.Syntax: tryStatement_SimpleTryStatement_Simple :: TypedName TryStatement_Simple
- Hydra.Dsl.Java.Syntax: tryStatement_SimpleWithBlock :: TypedTerm TryStatement_Simple -> TypedTerm Block -> TypedTerm TryStatement_Simple
- Hydra.Dsl.Java.Syntax: tryStatement_SimpleWithCatches :: TypedTerm TryStatement_Simple -> TypedTerm Catches -> TypedTerm TryStatement_Simple
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinally :: TypedTerm Block -> TypedTerm (Maybe Catches) -> TypedTerm Finally -> TypedTerm TryStatement_WithFinally
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyBlock :: TypedTerm TryStatement_WithFinally -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyCatches :: TypedTerm TryStatement_WithFinally -> TypedTerm (Maybe Catches)
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyFinally :: TypedTerm TryStatement_WithFinally -> TypedTerm Finally
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyTryStatement_WithFinally :: TypedName TryStatement_WithFinally
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyWithBlock :: TypedTerm TryStatement_WithFinally -> TypedTerm Block -> TypedTerm TryStatement_WithFinally
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyWithCatches :: TypedTerm TryStatement_WithFinally -> TypedTerm (Maybe Catches) -> TypedTerm TryStatement_WithFinally
- Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyWithFinally :: TypedTerm TryStatement_WithFinally -> TypedTerm Finally -> TypedTerm TryStatement_WithFinally
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatement :: TypedTerm ResourceSpecification -> TypedTerm Block -> TypedTerm (Maybe Catches) -> TypedTerm (Maybe Finally) -> TypedTerm TryWithResourcesStatement
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementBlock :: TypedTerm TryWithResourcesStatement -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementCatches :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Catches)
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementFinally :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Finally)
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementResourceSpecification :: TypedTerm TryWithResourcesStatement -> TypedTerm ResourceSpecification
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementTryWithResourcesStatement :: TypedName TryWithResourcesStatement
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementWithBlock :: TypedTerm TryWithResourcesStatement -> TypedTerm Block -> TypedTerm TryWithResourcesStatement
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementWithCatches :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Catches) -> TypedTerm TryWithResourcesStatement
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementWithFinally :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Finally) -> TypedTerm TryWithResourcesStatement
- Hydra.Dsl.Java.Syntax: tryWithResourcesStatementWithResourceSpecification :: TypedTerm TryWithResourcesStatement -> TypedTerm ResourceSpecification -> TypedTerm TryWithResourcesStatement
- Hydra.Dsl.Java.Syntax: typeArgumentReference :: TypedTerm ReferenceType -> TypedTerm TypeArgument
- Hydra.Dsl.Java.Syntax: typeArgumentTypeArgument :: TypedName TypeArgument
- Hydra.Dsl.Java.Syntax: typeArgumentWildcard :: TypedTerm Wildcard -> TypedTerm TypeArgument
- Hydra.Dsl.Java.Syntax: typeArgumentsOrDiamondArguments :: TypedTerm [TypeArgument] -> TypedTerm TypeArgumentsOrDiamond
- Hydra.Dsl.Java.Syntax: typeArgumentsOrDiamondDiamond :: TypedTerm TypeArgumentsOrDiamond
- Hydra.Dsl.Java.Syntax: typeArgumentsOrDiamondTypeArgumentsOrDiamond :: TypedName TypeArgumentsOrDiamond
- Hydra.Dsl.Java.Syntax: typeBoundClassOrInterface :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm TypeBound
- Hydra.Dsl.Java.Syntax: typeBoundTypeBound :: TypedName TypeBound
- Hydra.Dsl.Java.Syntax: typeBoundVariable :: TypedTerm TypeVariable -> TypedTerm TypeBound
- Hydra.Dsl.Java.Syntax: typeBound_ClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm [AdditionalBound] -> TypedTerm TypeBound_ClassOrInterface
- Hydra.Dsl.Java.Syntax: typeBound_ClassOrInterfaceAdditional :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm [AdditionalBound]
- Hydra.Dsl.Java.Syntax: typeBound_ClassOrInterfaceType :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm ClassOrInterfaceType
- Hydra.Dsl.Java.Syntax: typeBound_ClassOrInterfaceTypeBound_ClassOrInterface :: TypedName TypeBound_ClassOrInterface
- Hydra.Dsl.Java.Syntax: typeBound_ClassOrInterfaceWithAdditional :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm [AdditionalBound] -> TypedTerm TypeBound_ClassOrInterface
- Hydra.Dsl.Java.Syntax: typeBound_ClassOrInterfaceWithType :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm ClassOrInterfaceType -> TypedTerm TypeBound_ClassOrInterface
- Hydra.Dsl.Java.Syntax: typeIdentifier :: TypedTerm Identifier -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: typeIdentifierTypeIdentifier :: TypedName TypeIdentifier
- Hydra.Dsl.Java.Syntax: typeImportOnDemandDeclaration :: TypedTerm PackageOrTypeName -> TypedTerm TypeImportOnDemandDeclaration
- Hydra.Dsl.Java.Syntax: typeImportOnDemandDeclarationTypeImportOnDemandDeclaration :: TypedName TypeImportOnDemandDeclaration
- Hydra.Dsl.Java.Syntax: typeName :: TypedTerm TypeIdentifier -> TypedTerm (Maybe PackageOrTypeName) -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: typeNameArrayArray :: TypedTerm TypeNameArray -> TypedTerm TypeNameArray
- Hydra.Dsl.Java.Syntax: typeNameArraySimple :: TypedTerm TypeName -> TypedTerm TypeNameArray
- Hydra.Dsl.Java.Syntax: typeNameArrayTypeNameArray :: TypedName TypeNameArray
- Hydra.Dsl.Java.Syntax: typeNameIdentifier :: TypedTerm TypeName -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: typeNameQualifier :: TypedTerm TypeName -> TypedTerm (Maybe PackageOrTypeName)
- Hydra.Dsl.Java.Syntax: typeNameTypeName :: TypedName TypeName
- Hydra.Dsl.Java.Syntax: typeNameWithIdentifier :: TypedTerm TypeName -> TypedTerm TypeIdentifier -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: typeNameWithQualifier :: TypedTerm TypeName -> TypedTerm (Maybe PackageOrTypeName) -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: typeParameter :: TypedTerm [TypeParameterModifier] -> TypedTerm TypeIdentifier -> TypedTerm (Maybe TypeBound) -> TypedTerm TypeParameter
- Hydra.Dsl.Java.Syntax: typeParameterBound :: TypedTerm TypeParameter -> TypedTerm (Maybe TypeBound)
- Hydra.Dsl.Java.Syntax: typeParameterIdentifier :: TypedTerm TypeParameter -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: typeParameterModifier :: TypedTerm Annotation -> TypedTerm TypeParameterModifier
- Hydra.Dsl.Java.Syntax: typeParameterModifierTypeParameterModifier :: TypedName TypeParameterModifier
- Hydra.Dsl.Java.Syntax: typeParameterModifiers :: TypedTerm TypeParameter -> TypedTerm [TypeParameterModifier]
- Hydra.Dsl.Java.Syntax: typeParameterTypeParameter :: TypedName TypeParameter
- Hydra.Dsl.Java.Syntax: typeParameterWithBound :: TypedTerm TypeParameter -> TypedTerm (Maybe TypeBound) -> TypedTerm TypeParameter
- Hydra.Dsl.Java.Syntax: typeParameterWithIdentifier :: TypedTerm TypeParameter -> TypedTerm TypeIdentifier -> TypedTerm TypeParameter
- Hydra.Dsl.Java.Syntax: typeParameterWithModifiers :: TypedTerm TypeParameter -> TypedTerm [TypeParameterModifier] -> TypedTerm TypeParameter
- Hydra.Dsl.Java.Syntax: typePattern :: TypedTerm LocalVariableDeclaration -> TypedTerm TypePattern
- Hydra.Dsl.Java.Syntax: typePatternTypePattern :: TypedName TypePattern
- Hydra.Dsl.Java.Syntax: typePrimitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm Type
- Hydra.Dsl.Java.Syntax: typeReference :: TypedTerm ReferenceType -> TypedTerm Type
- Hydra.Dsl.Java.Syntax: typeType :: TypedName Type
- Hydra.Dsl.Java.Syntax: typeVariable :: TypedTerm [Annotation] -> TypedTerm TypeIdentifier -> TypedTerm TypeVariable
- Hydra.Dsl.Java.Syntax: typeVariableAnnotations :: TypedTerm TypeVariable -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: typeVariableIdentifier :: TypedTerm TypeVariable -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: typeVariableTypeVariable :: TypedName TypeVariable
- Hydra.Dsl.Java.Syntax: typeVariableWithAnnotations :: TypedTerm TypeVariable -> TypedTerm [Annotation] -> TypedTerm TypeVariable
- Hydra.Dsl.Java.Syntax: typeVariableWithIdentifier :: TypedTerm TypeVariable -> TypedTerm TypeIdentifier -> TypedTerm TypeVariable
- Hydra.Dsl.Java.Syntax: unAdditionalBound :: TypedTerm AdditionalBound -> TypedTerm InterfaceType
- Hydra.Dsl.Java.Syntax: unAmbiguousName :: TypedTerm AmbiguousName -> TypedTerm [Identifier]
- Hydra.Dsl.Java.Syntax: unAndExpression :: TypedTerm AndExpression -> TypedTerm [EqualityExpression]
- Hydra.Dsl.Java.Syntax: unAnnotationInterfaceBody :: TypedTerm AnnotationInterfaceBody -> TypedTerm [AnnotationInterfaceMemberDeclaration]
- Hydra.Dsl.Java.Syntax: unArrayInitializer :: TypedTerm ArrayInitializer -> TypedTerm [[VariableInitializer]]
- Hydra.Dsl.Java.Syntax: unBlock :: TypedTerm Block -> TypedTerm [BlockStatement]
- Hydra.Dsl.Java.Syntax: unBreakStatement :: TypedTerm BreakStatement -> TypedTerm (Maybe Identifier)
- Hydra.Dsl.Java.Syntax: unCaseConstant :: TypedTerm CaseConstant -> TypedTerm ConditionalExpression
- Hydra.Dsl.Java.Syntax: unCatches :: TypedTerm Catches -> TypedTerm [CatchClause]
- Hydra.Dsl.Java.Syntax: unClassBody :: TypedTerm ClassBody -> TypedTerm [ClassBodyDeclarationWithComments]
- Hydra.Dsl.Java.Syntax: unConditionalAndExpression :: TypedTerm ConditionalAndExpression -> TypedTerm [InclusiveOrExpression]
- Hydra.Dsl.Java.Syntax: unConditionalOrExpression :: TypedTerm ConditionalOrExpression -> TypedTerm [ConditionalAndExpression]
- Hydra.Dsl.Java.Syntax: unConstantExpression :: TypedTerm ConstantExpression -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: unContinueStatement :: TypedTerm ContinueStatement -> TypedTerm (Maybe Identifier)
- Hydra.Dsl.Java.Syntax: unDefaultValue :: TypedTerm DefaultValue -> TypedTerm ElementValue
- Hydra.Dsl.Java.Syntax: unDims :: TypedTerm Dims -> TypedTerm [[Annotation]]
- Hydra.Dsl.Java.Syntax: unElementValueArrayInitializer :: TypedTerm ElementValueArrayInitializer -> TypedTerm [ElementValue]
- Hydra.Dsl.Java.Syntax: unEnumBody :: TypedTerm EnumBody -> TypedTerm [EnumBody_Element]
- Hydra.Dsl.Java.Syntax: unEnumConstantModifier :: TypedTerm EnumConstantModifier -> TypedTerm Annotation
- Hydra.Dsl.Java.Syntax: unExclusiveOrExpression :: TypedTerm ExclusiveOrExpression -> TypedTerm [AndExpression]
- Hydra.Dsl.Java.Syntax: unExpressionStatement :: TypedTerm ExpressionStatement -> TypedTerm StatementExpression
- Hydra.Dsl.Java.Syntax: unFinally :: TypedTerm Finally -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: unFloatingPointLiteral :: TypedTerm FloatingPointLiteral -> TypedTerm Double
- Hydra.Dsl.Java.Syntax: unForUpdate :: TypedTerm ForUpdate -> TypedTerm [StatementExpression]
- Hydra.Dsl.Java.Syntax: unGuard :: TypedTerm Guard -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: unIdentifier :: TypedTerm Identifier -> TypedTerm String
- Hydra.Dsl.Java.Syntax: unInclusiveOrExpression :: TypedTerm InclusiveOrExpression -> TypedTerm [ExclusiveOrExpression]
- Hydra.Dsl.Java.Syntax: unInstanceInitializer :: TypedTerm InstanceInitializer -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: unIntegerLiteral :: TypedTerm IntegerLiteral -> TypedTerm Integer
- Hydra.Dsl.Java.Syntax: unInterfaceBody :: TypedTerm InterfaceBody -> TypedTerm [InterfaceMemberDeclarationWithComments]
- Hydra.Dsl.Java.Syntax: unInterfaceType :: TypedTerm InterfaceType -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: unLocalVariableDeclarationStatement :: TypedTerm LocalVariableDeclarationStatement -> TypedTerm LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: unMarkerAnnotation :: TypedTerm MarkerAnnotation -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: unMethodName :: TypedTerm MethodName -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: unMethodReference_Array :: TypedTerm MethodReference_Array -> TypedTerm ArrayType
- Hydra.Dsl.Java.Syntax: unPackageModifier :: TypedTerm PackageModifier -> TypedTerm Annotation
- Hydra.Dsl.Java.Syntax: unPackageName :: TypedTerm PackageName -> TypedTerm [Identifier]
- Hydra.Dsl.Java.Syntax: unPackageOrTypeName :: TypedTerm PackageOrTypeName -> TypedTerm [Identifier]
- Hydra.Dsl.Java.Syntax: unPostDecrementExpression :: TypedTerm PostDecrementExpression -> TypedTerm PostfixExpression
- Hydra.Dsl.Java.Syntax: unPostIncrementExpression :: TypedTerm PostIncrementExpression -> TypedTerm PostfixExpression
- Hydra.Dsl.Java.Syntax: unPreDecrementExpression :: TypedTerm PreDecrementExpression -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: unPreIncrementExpression :: TypedTerm PreIncrementExpression -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: unRecordBody :: TypedTerm RecordBody -> TypedTerm [RecordBodyDeclaration]
- Hydra.Dsl.Java.Syntax: unRecordComponentModifier :: TypedTerm RecordComponentModifier -> TypedTerm Annotation
- Hydra.Dsl.Java.Syntax: unRecordHeader :: TypedTerm RecordHeader -> TypedTerm [RecordComponent]
- Hydra.Dsl.Java.Syntax: unResourceSpecification :: TypedTerm ResourceSpecification -> TypedTerm [Resource]
- Hydra.Dsl.Java.Syntax: unReturnStatement :: TypedTerm ReturnStatement -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: unSimpleTypeName :: TypedTerm SimpleTypeName -> TypedTerm TypeIdentifier
- Hydra.Dsl.Java.Syntax: unSingleTypeImportDeclaration :: TypedTerm SingleTypeImportDeclaration -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: unStaticImportOnDemandDeclaration :: TypedTerm StaticImportOnDemandDeclaration -> TypedTerm TypeName
- Hydra.Dsl.Java.Syntax: unStaticInitializer :: TypedTerm StaticInitializer -> TypedTerm Block
- Hydra.Dsl.Java.Syntax: unStringLiteral :: TypedTerm StringLiteral -> TypedTerm String
- Hydra.Dsl.Java.Syntax: unTextBlock :: TypedTerm TextBlock -> TypedTerm String
- Hydra.Dsl.Java.Syntax: unThrowStatement :: TypedTerm ThrowStatement -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: unThrows :: TypedTerm Throws -> TypedTerm [ExceptionType]
- Hydra.Dsl.Java.Syntax: unTypeIdentifier :: TypedTerm TypeIdentifier -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: unTypeImportOnDemandDeclaration :: TypedTerm TypeImportOnDemandDeclaration -> TypedTerm PackageOrTypeName
- Hydra.Dsl.Java.Syntax: unTypeParameterModifier :: TypedTerm TypeParameterModifier -> TypedTerm Annotation
- Hydra.Dsl.Java.Syntax: unTypePattern :: TypedTerm TypePattern -> TypedTerm LocalVariableDeclaration
- Hydra.Dsl.Java.Syntax: unUnannClassType :: TypedTerm UnannClassType -> TypedTerm ClassType
- Hydra.Dsl.Java.Syntax: unUnannType :: TypedTerm UnannType -> TypedTerm Type
- Hydra.Dsl.Java.Syntax: unYieldStatement :: TypedTerm YieldStatement -> TypedTerm Expression
- Hydra.Dsl.Java.Syntax: unannClassType :: TypedTerm ClassType -> TypedTerm UnannClassType
- Hydra.Dsl.Java.Syntax: unannClassTypeUnannClassType :: TypedName UnannClassType
- Hydra.Dsl.Java.Syntax: unannType :: TypedTerm Type -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: unannTypeUnannType :: TypedName UnannType
- Hydra.Dsl.Java.Syntax: unaryExpressionMinus :: TypedTerm UnaryExpression -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: unaryExpressionNotPlusMinusCast :: TypedTerm CastExpression -> TypedTerm UnaryExpressionNotPlusMinus
- Hydra.Dsl.Java.Syntax: unaryExpressionNotPlusMinusNot :: TypedTerm UnaryExpression -> TypedTerm UnaryExpressionNotPlusMinus
- Hydra.Dsl.Java.Syntax: unaryExpressionNotPlusMinusPostfix :: TypedTerm PostfixExpression -> TypedTerm UnaryExpressionNotPlusMinus
- Hydra.Dsl.Java.Syntax: unaryExpressionNotPlusMinusSwitchExpression :: TypedTerm SwitchExpression -> TypedTerm UnaryExpressionNotPlusMinus
- Hydra.Dsl.Java.Syntax: unaryExpressionNotPlusMinusTilde :: TypedTerm UnaryExpression -> TypedTerm UnaryExpressionNotPlusMinus
- Hydra.Dsl.Java.Syntax: unaryExpressionNotPlusMinusUnaryExpressionNotPlusMinus :: TypedName UnaryExpressionNotPlusMinus
- Hydra.Dsl.Java.Syntax: unaryExpressionOther :: TypedTerm UnaryExpressionNotPlusMinus -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: unaryExpressionPlus :: TypedTerm UnaryExpression -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: unaryExpressionPreDecrement :: TypedTerm PreDecrementExpression -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: unaryExpressionPreIncrement :: TypedTerm PreIncrementExpression -> TypedTerm UnaryExpression
- Hydra.Dsl.Java.Syntax: unaryExpressionUnaryExpression :: TypedName UnaryExpression
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpression :: TypedTerm [TypeArgument] -> TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm [Expression] -> TypedTerm (Maybe ClassBody) -> TypedTerm UnqualifiedClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [Expression]
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionBody :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm (Maybe ClassBody)
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionClassOrInterface :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassOrInterfaceTypeToInstantiate
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionTypeArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [TypeArgument]
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionUnqualifiedClassInstanceCreationExpression :: TypedName UnqualifiedClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionWithArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [Expression] -> TypedTerm UnqualifiedClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionWithBody :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm (Maybe ClassBody) -> TypedTerm UnqualifiedClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionWithClassOrInterface :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm UnqualifiedClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionWithTypeArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [TypeArgument] -> TypedTerm UnqualifiedClassInstanceCreationExpression
- Hydra.Dsl.Java.Syntax: variableAccessExpressionName :: TypedTerm ExpressionName -> TypedTerm VariableAccess
- Hydra.Dsl.Java.Syntax: variableAccessFieldAccess :: TypedTerm FieldAccess -> TypedTerm VariableAccess
- Hydra.Dsl.Java.Syntax: variableAccessVariableAccess :: TypedName VariableAccess
- Hydra.Dsl.Java.Syntax: variableArityParameter :: TypedTerm [VariableModifier] -> TypedTerm UnannType -> TypedTerm [Annotation] -> TypedTerm Identifier -> TypedTerm VariableArityParameter
- Hydra.Dsl.Java.Syntax: variableArityParameterAnnotations :: TypedTerm VariableArityParameter -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: variableArityParameterIdentifier :: TypedTerm VariableArityParameter -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: variableArityParameterModifiers :: TypedTerm VariableArityParameter -> TypedTerm [VariableModifier]
- Hydra.Dsl.Java.Syntax: variableArityParameterType :: TypedTerm VariableArityParameter -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: variableArityParameterVariableArityParameter :: TypedName VariableArityParameter
- Hydra.Dsl.Java.Syntax: variableArityParameterWithAnnotations :: TypedTerm VariableArityParameter -> TypedTerm [Annotation] -> TypedTerm VariableArityParameter
- Hydra.Dsl.Java.Syntax: variableArityParameterWithIdentifier :: TypedTerm VariableArityParameter -> TypedTerm Identifier -> TypedTerm VariableArityParameter
- Hydra.Dsl.Java.Syntax: variableArityParameterWithModifiers :: TypedTerm VariableArityParameter -> TypedTerm [VariableModifier] -> TypedTerm VariableArityParameter
- Hydra.Dsl.Java.Syntax: variableArityParameterWithType :: TypedTerm VariableArityParameter -> TypedTerm UnannType -> TypedTerm VariableArityParameter
- Hydra.Dsl.Java.Syntax: variableArityRecordComponent :: TypedTerm [RecordComponentModifier] -> TypedTerm UnannType -> TypedTerm [Annotation] -> TypedTerm Identifier -> TypedTerm VariableArityRecordComponent
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentAnnotations :: TypedTerm VariableArityRecordComponent -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentIdentifier :: TypedTerm VariableArityRecordComponent -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentModifiers :: TypedTerm VariableArityRecordComponent -> TypedTerm [RecordComponentModifier]
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentType :: TypedTerm VariableArityRecordComponent -> TypedTerm UnannType
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentVariableArityRecordComponent :: TypedName VariableArityRecordComponent
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentWithAnnotations :: TypedTerm VariableArityRecordComponent -> TypedTerm [Annotation] -> TypedTerm VariableArityRecordComponent
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentWithIdentifier :: TypedTerm VariableArityRecordComponent -> TypedTerm Identifier -> TypedTerm VariableArityRecordComponent
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentWithModifiers :: TypedTerm VariableArityRecordComponent -> TypedTerm [RecordComponentModifier] -> TypedTerm VariableArityRecordComponent
- Hydra.Dsl.Java.Syntax: variableArityRecordComponentWithType :: TypedTerm VariableArityRecordComponent -> TypedTerm UnannType -> TypedTerm VariableArityRecordComponent
- Hydra.Dsl.Java.Syntax: variableDeclarator :: TypedTerm VariableDeclaratorId -> TypedTerm (Maybe VariableInitializer) -> TypedTerm VariableDeclarator
- Hydra.Dsl.Java.Syntax: variableDeclaratorId :: TypedTerm VariableDeclarator -> TypedTerm VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: variableDeclaratorId2 :: TypedTerm Identifier -> TypedTerm (Maybe Dims) -> TypedTerm VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: variableDeclaratorIdDims :: TypedTerm VariableDeclaratorId -> TypedTerm (Maybe Dims)
- Hydra.Dsl.Java.Syntax: variableDeclaratorIdIdentifier :: TypedTerm VariableDeclaratorId -> TypedTerm Identifier
- Hydra.Dsl.Java.Syntax: variableDeclaratorIdVariableDeclaratorId :: TypedName VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: variableDeclaratorIdWithDims :: TypedTerm VariableDeclaratorId -> TypedTerm (Maybe Dims) -> TypedTerm VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: variableDeclaratorIdWithIdentifier :: TypedTerm VariableDeclaratorId -> TypedTerm Identifier -> TypedTerm VariableDeclaratorId
- Hydra.Dsl.Java.Syntax: variableDeclaratorInitializer :: TypedTerm VariableDeclarator -> TypedTerm (Maybe VariableInitializer)
- Hydra.Dsl.Java.Syntax: variableDeclaratorVariableDeclarator :: TypedName VariableDeclarator
- Hydra.Dsl.Java.Syntax: variableDeclaratorWithId :: TypedTerm VariableDeclarator -> TypedTerm VariableDeclaratorId -> TypedTerm VariableDeclarator
- Hydra.Dsl.Java.Syntax: variableDeclaratorWithInitializer :: TypedTerm VariableDeclarator -> TypedTerm (Maybe VariableInitializer) -> TypedTerm VariableDeclarator
- Hydra.Dsl.Java.Syntax: variableInitializerArrayInitializer :: TypedTerm ArrayInitializer -> TypedTerm VariableInitializer
- Hydra.Dsl.Java.Syntax: variableInitializerExpression :: TypedTerm Expression -> TypedTerm VariableInitializer
- Hydra.Dsl.Java.Syntax: variableInitializerVariableInitializer :: TypedName VariableInitializer
- Hydra.Dsl.Java.Syntax: variableModifierAnnotation :: TypedTerm Annotation -> TypedTerm VariableModifier
- Hydra.Dsl.Java.Syntax: variableModifierFinal :: TypedTerm VariableModifier
- Hydra.Dsl.Java.Syntax: variableModifierVariableModifier :: TypedName VariableModifier
- Hydra.Dsl.Java.Syntax: whileStatement :: TypedTerm (Maybe Expression) -> TypedTerm Statement -> TypedTerm WhileStatement
- Hydra.Dsl.Java.Syntax: whileStatementBody :: TypedTerm WhileStatement -> TypedTerm Statement
- Hydra.Dsl.Java.Syntax: whileStatementCond :: TypedTerm WhileStatement -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: whileStatementNoShortIf :: TypedTerm (Maybe Expression) -> TypedTerm StatementNoShortIf -> TypedTerm WhileStatementNoShortIf
- Hydra.Dsl.Java.Syntax: whileStatementNoShortIfBody :: TypedTerm WhileStatementNoShortIf -> TypedTerm StatementNoShortIf
- Hydra.Dsl.Java.Syntax: whileStatementNoShortIfCond :: TypedTerm WhileStatementNoShortIf -> TypedTerm (Maybe Expression)
- Hydra.Dsl.Java.Syntax: whileStatementNoShortIfWhileStatementNoShortIf :: TypedName WhileStatementNoShortIf
- Hydra.Dsl.Java.Syntax: whileStatementNoShortIfWithBody :: TypedTerm WhileStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm WhileStatementNoShortIf
- Hydra.Dsl.Java.Syntax: whileStatementNoShortIfWithCond :: TypedTerm WhileStatementNoShortIf -> TypedTerm (Maybe Expression) -> TypedTerm WhileStatementNoShortIf
- Hydra.Dsl.Java.Syntax: whileStatementWhileStatement :: TypedName WhileStatement
- Hydra.Dsl.Java.Syntax: whileStatementWithBody :: TypedTerm WhileStatement -> TypedTerm Statement -> TypedTerm WhileStatement
- Hydra.Dsl.Java.Syntax: whileStatementWithCond :: TypedTerm WhileStatement -> TypedTerm (Maybe Expression) -> TypedTerm WhileStatement
- Hydra.Dsl.Java.Syntax: wildcard :: TypedTerm [Annotation] -> TypedTerm (Maybe WildcardBounds) -> TypedTerm Wildcard
- Hydra.Dsl.Java.Syntax: wildcardAnnotations :: TypedTerm Wildcard -> TypedTerm [Annotation]
- Hydra.Dsl.Java.Syntax: wildcardBoundsExtends :: TypedTerm ReferenceType -> TypedTerm WildcardBounds
- Hydra.Dsl.Java.Syntax: wildcardBoundsSuper :: TypedTerm ReferenceType -> TypedTerm WildcardBounds
- Hydra.Dsl.Java.Syntax: wildcardBoundsWildcardBounds :: TypedName WildcardBounds
- Hydra.Dsl.Java.Syntax: wildcardWildcard :: TypedName Wildcard
- Hydra.Dsl.Java.Syntax: wildcardWildcard2 :: TypedTerm Wildcard -> TypedTerm (Maybe WildcardBounds)
- Hydra.Dsl.Java.Syntax: wildcardWithAnnotations :: TypedTerm Wildcard -> TypedTerm [Annotation] -> TypedTerm Wildcard
- Hydra.Dsl.Java.Syntax: wildcardWithWildcard :: TypedTerm Wildcard -> TypedTerm (Maybe WildcardBounds) -> TypedTerm Wildcard
- Hydra.Dsl.Java.Syntax: yieldStatement :: TypedTerm Expression -> TypedTerm YieldStatement
- Hydra.Dsl.Java.Syntax: yieldStatementYieldStatement :: TypedName YieldStatement
- Hydra.Gradle: AntlrConfig :: [String] -> FilePath -> AntlrConfig
- Hydra.Gradle: GradleBuildConfiguration :: [PackageDependency] -> [String] -> [FilePath] -> [String] -> Maybe AntlrConfig -> GradleBuildConfiguration
- Hydra.Gradle: [antlrConfigArguments] :: AntlrConfig -> [String]
- Hydra.Gradle: [antlrConfigOutputDirectory] :: AntlrConfig -> FilePath
- Hydra.Gradle: [gradleBuildConfigurationAntlr] :: GradleBuildConfiguration -> Maybe AntlrConfig
- Hydra.Gradle: [gradleBuildConfigurationDependencies] :: GradleBuildConfiguration -> [PackageDependency]
- Hydra.Gradle: [gradleBuildConfigurationExcludes] :: GradleBuildConfiguration -> [String]
- Hydra.Gradle: [gradleBuildConfigurationExtraSourceDirs] :: GradleBuildConfiguration -> [FilePath]
- Hydra.Gradle: [gradleBuildConfigurationPlugins] :: GradleBuildConfiguration -> [String]
- Hydra.Gradle: _AntlrConfig :: Name
- Hydra.Gradle: _AntlrConfig_arguments :: Name
- Hydra.Gradle: _AntlrConfig_outputDirectory :: Name
- Hydra.Gradle: _GradleBuildConfiguration :: Name
- Hydra.Gradle: _GradleBuildConfiguration_antlr :: Name
- Hydra.Gradle: _GradleBuildConfiguration_dependencies :: Name
- Hydra.Gradle: _GradleBuildConfiguration_excludes :: Name
- Hydra.Gradle: _GradleBuildConfiguration_extraSourceDirs :: Name
- Hydra.Gradle: _GradleBuildConfiguration_plugins :: Name
- Hydra.Gradle: data AntlrConfig
- Hydra.Gradle: data GradleBuildConfiguration
- Hydra.Gradle: instance GHC.Classes.Eq Hydra.Gradle.AntlrConfig
- Hydra.Gradle: instance GHC.Classes.Eq Hydra.Gradle.GradleBuildConfiguration
- Hydra.Gradle: instance GHC.Classes.Ord Hydra.Gradle.AntlrConfig
- Hydra.Gradle: instance GHC.Classes.Ord Hydra.Gradle.GradleBuildConfiguration
- Hydra.Gradle: instance GHC.Read.Read Hydra.Gradle.AntlrConfig
- Hydra.Gradle: instance GHC.Read.Read Hydra.Gradle.GradleBuildConfiguration
- Hydra.Gradle: instance GHC.Show.Show Hydra.Gradle.AntlrConfig
- Hydra.Gradle: instance GHC.Show.Show Hydra.Gradle.GradleBuildConfiguration
- Hydra.Java.Environment: instance GHC.Read.Read Hydra.Java.Environment.Aliases
- Hydra.Java.Environment: instance GHC.Read.Read Hydra.Java.Environment.JavaFeatures
- Hydra.Java.Environment: instance GHC.Read.Read Hydra.Java.Environment.JavaSymbolClass
- Hydra.Java.Environment: instance GHC.Show.Show Hydra.Java.Environment.Aliases
- Hydra.Java.Environment: instance GHC.Show.Show Hydra.Java.Environment.JavaFeatures
- Hydra.Java.Environment: instance GHC.Show.Show Hydra.Java.Environment.JavaSymbolClass
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AdditionalBound
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AdditiveExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AdditiveExpression_Binary
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AmbiguousName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AndExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AnnotatedIdentifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Annotation
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AnnotationInterfaceBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AnnotationInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AnnotationInterfaceElementDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AnnotationInterfaceElementModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AnnotationInterfaceMemberDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayAccess
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayAccess_Variant
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayCreationExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_Primitive
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_Primitive
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayInitializer
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ArrayType_Variant
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AssertStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AssertStatement_Pair
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Assignment
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AssignmentExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.AssignmentOperator
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.BasicForStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.BasicForStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Block
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.BlockStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.BooleanArray
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.BreakStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CaseConstant
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CasePattern
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CastExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CastExpression_Lambda
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CastExpression_NotPlusMinus
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CastExpression_Primitive
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CastExpression_RefAndBounds
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CatchClause
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CatchFormalParameter
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CatchType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Catches
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassBodyDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassBodyDeclarationWithComments
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassInstanceCreationExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassInstanceCreationExpression_Qualifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassLiteral
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassMemberDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassOrInterfaceType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassOrInterfaceTypeToInstantiate
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ClassTypeQualifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CompactConstructorDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.CompilationUnit
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConditionalAndExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConditionalExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConditionalExpression_TernaryCond
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConditionalExpression_TernaryLambda
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConditionalOrExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConstantDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConstantExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConstantModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConstructorBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConstructorDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConstructorDeclarator
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ConstructorModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ContinueStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.DefaultValue
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.DimExpr
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Dims
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.DoStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ElementValue
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ElementValueArrayInitializer
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ElementValuePair
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnhancedForCond
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnhancedForStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnhancedForStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnumBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnumBody_Element
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnumConstant
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnumConstantModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EnumDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EqualityExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.EqualityExpression_Binary
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ExceptionType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ExclusiveOrExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ExplicitConstructorInvocation
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ExplicitConstructorInvocation_Variant
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Expression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ExpressionName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ExpressionStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FieldAccess
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FieldAccess_Qualifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FieldDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FieldModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Finally
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FloatingPointLiteral
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FloatingPointType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ForCond
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ForInit
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ForStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ForStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ForUpdate
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FormalParameter
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.FormalParameter_Simple
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Guard
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Identifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.IfThenElseStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.IfThenElseStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.IfThenStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ImportDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InclusiveOrExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InstanceInitializer
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InstanceofExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InstanceofExpression_Rhs
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.IntegerLiteral
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.IntegralType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceMemberDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceMemberDeclarationWithComments
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceMethodDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceMethodModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.InterfaceType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LabeledStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LabeledStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LambdaBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LambdaExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LambdaParameter
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LambdaParameterType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LambdaParameter_Normal
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LambdaParameters
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LeftHandSide
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Literal
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LocalClassOrInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LocalVariableDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LocalVariableDeclarationStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.LocalVariableType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MarkerAnnotation
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodDeclarator
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodHeader
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodInvocation
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodInvocation_Complex
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodInvocation_Header
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodInvocation_Variant
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodReference
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodReference_Array
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodReference_Expression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodReference_New
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodReference_Primary
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodReference_ReferenceType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MethodReference_Super
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ModularCompilationUnit
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ModuleDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ModuleDirective
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ModuleDirective_ExportsOrOpens
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ModuleDirective_Provides
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ModuleDirective_Requires
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ModuleName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MultiplicativeExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.MultiplicativeExpression_Binary
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.NormalAnnotation
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.NormalClassDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.NormalInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.NumericType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.NumericTypeArray
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.OrdinaryCompilationUnit
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PackageDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PackageModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PackageName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PackageOrTypeName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Pattern
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PostDecrementExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PostIncrementExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PostfixExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PreDecrementExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PreIncrementExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Primary
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PrimaryNoNewArrayExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PrimitiveType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.PrimitiveTypeWithAnnotations
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ReceiverParameter
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordBody
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordBodyDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordComponent
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordComponentModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordComponent_Simple
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordHeader
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RecordPattern
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ReferenceType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RelationalExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RelationalExpression_GreaterThan
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RelationalExpression_GreaterThanEqual
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RelationalExpression_LessThan
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RelationalExpression_LessThanEqual
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.RequiresModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Resource
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ResourceSpecification
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Resource_Local
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Result
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ReturnStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ShiftExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ShiftExpression_Binary
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SimpleTypeName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SingleElementAnnotation
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SingleStaticImportDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SingleTypeImportDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Statement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.StatementExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.StatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.StatementWithoutTrailingSubstatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.StaticImportOnDemandDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.StaticInitializer
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.StringLiteral
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchBlock
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchBlockStatementGroup
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchBlock_Legacy
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchLabel
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchRule
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchRule_Body
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SwitchStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.SynchronizedStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TextBlock
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.ThrowStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Throws
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclarationWithComments
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TryStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TryStatement_Simple
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TryStatement_WithFinally
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TryWithResourcesStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Type
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeArgument
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeArgumentsOrDiamond
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeBound
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeBound_ClassOrInterface
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeIdentifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeImportOnDemandDeclaration
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeName
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeNameArray
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeParameter
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeParameterModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypePattern
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.TypeVariable
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.UnannClassType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.UnannType
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.UnaryExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.UnaryExpressionNotPlusMinus
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.UnqualifiedClassInstanceCreationExpression
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.VariableAccess
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.VariableArityParameter
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.VariableArityRecordComponent
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.VariableDeclarator
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.VariableDeclaratorId
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.VariableInitializer
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.VariableModifier
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.WhileStatement
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.WhileStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.Wildcard
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.WildcardBounds
- Hydra.Java.Syntax: instance GHC.Read.Read Hydra.Java.Syntax.YieldStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AdditionalBound
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AdditiveExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AdditiveExpression_Binary
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AmbiguousName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AndExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AnnotatedIdentifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Annotation
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AnnotationInterfaceBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AnnotationInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AnnotationInterfaceElementDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AnnotationInterfaceElementModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AnnotationInterfaceMemberDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayAccess
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayAccess_Variant
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayCreationExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_Primitive
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_Primitive
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayInitializer
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ArrayType_Variant
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AssertStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AssertStatement_Pair
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Assignment
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AssignmentExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.AssignmentOperator
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.BasicForStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.BasicForStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Block
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.BlockStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.BooleanArray
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.BreakStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CaseConstant
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CasePattern
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CastExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CastExpression_Lambda
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CastExpression_NotPlusMinus
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CastExpression_Primitive
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CastExpression_RefAndBounds
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CatchClause
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CatchFormalParameter
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CatchType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Catches
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassBodyDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassBodyDeclarationWithComments
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassInstanceCreationExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassInstanceCreationExpression_Qualifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassLiteral
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassMemberDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassOrInterfaceType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassOrInterfaceTypeToInstantiate
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ClassTypeQualifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CompactConstructorDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.CompilationUnit
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConditionalAndExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConditionalExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConditionalExpression_TernaryCond
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConditionalExpression_TernaryLambda
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConditionalOrExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConstantDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConstantExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConstantModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConstructorBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConstructorDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConstructorDeclarator
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ConstructorModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ContinueStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.DefaultValue
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.DimExpr
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Dims
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.DoStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ElementValue
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ElementValueArrayInitializer
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ElementValuePair
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnhancedForCond
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnhancedForStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnhancedForStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnumBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnumBody_Element
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnumConstant
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnumConstantModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EnumDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EqualityExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.EqualityExpression_Binary
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ExceptionType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ExclusiveOrExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ExplicitConstructorInvocation
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ExplicitConstructorInvocation_Variant
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Expression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ExpressionName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ExpressionStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FieldAccess
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FieldAccess_Qualifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FieldDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FieldModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Finally
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FloatingPointLiteral
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FloatingPointType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ForCond
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ForInit
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ForStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ForStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ForUpdate
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FormalParameter
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.FormalParameter_Simple
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Guard
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Identifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.IfThenElseStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.IfThenElseStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.IfThenStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ImportDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InclusiveOrExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InstanceInitializer
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InstanceofExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InstanceofExpression_Rhs
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.IntegerLiteral
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.IntegralType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceMemberDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceMemberDeclarationWithComments
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceMethodDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceMethodModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.InterfaceType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LabeledStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LabeledStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LambdaBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LambdaExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LambdaParameter
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LambdaParameterType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LambdaParameter_Normal
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LambdaParameters
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LeftHandSide
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Literal
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LocalClassOrInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LocalVariableDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LocalVariableDeclarationStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.LocalVariableType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MarkerAnnotation
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodDeclarator
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodHeader
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodInvocation
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodInvocation_Complex
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodInvocation_Header
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodInvocation_Variant
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodReference
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodReference_Array
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodReference_Expression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodReference_New
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodReference_Primary
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodReference_ReferenceType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MethodReference_Super
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ModularCompilationUnit
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ModuleDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ModuleDirective
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ModuleDirective_ExportsOrOpens
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ModuleDirective_Provides
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ModuleDirective_Requires
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ModuleName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MultiplicativeExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.MultiplicativeExpression_Binary
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.NormalAnnotation
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.NormalClassDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.NormalInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.NumericType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.NumericTypeArray
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.OrdinaryCompilationUnit
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PackageDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PackageModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PackageName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PackageOrTypeName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Pattern
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PostDecrementExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PostIncrementExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PostfixExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PreDecrementExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PreIncrementExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Primary
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PrimaryNoNewArrayExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PrimitiveType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.PrimitiveTypeWithAnnotations
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ReceiverParameter
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordBody
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordBodyDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordComponent
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordComponentModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordComponent_Simple
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordHeader
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RecordPattern
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ReferenceType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RelationalExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RelationalExpression_GreaterThan
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RelationalExpression_GreaterThanEqual
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RelationalExpression_LessThan
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RelationalExpression_LessThanEqual
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.RequiresModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Resource
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ResourceSpecification
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Resource_Local
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Result
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ReturnStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ShiftExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ShiftExpression_Binary
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SimpleTypeName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SingleElementAnnotation
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SingleStaticImportDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SingleTypeImportDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Statement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.StatementExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.StatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.StatementWithoutTrailingSubstatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.StaticImportOnDemandDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.StaticInitializer
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.StringLiteral
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchBlock
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchBlockStatementGroup
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchBlock_Legacy
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchLabel
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchRule
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchRule_Body
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SwitchStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.SynchronizedStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TextBlock
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.ThrowStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Throws
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclarationWithComments
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TryStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TryStatement_Simple
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TryStatement_WithFinally
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TryWithResourcesStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Type
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeArgument
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeArgumentsOrDiamond
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeBound
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeBound_ClassOrInterface
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeIdentifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeImportOnDemandDeclaration
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeName
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeNameArray
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeParameter
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeParameterModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypePattern
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.TypeVariable
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.UnannClassType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.UnannType
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.UnaryExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.UnaryExpressionNotPlusMinus
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.UnqualifiedClassInstanceCreationExpression
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.VariableAccess
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.VariableArityParameter
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.VariableArityRecordComponent
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.VariableDeclarator
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.VariableDeclaratorId
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.VariableInitializer
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.VariableModifier
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.WhileStatement
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.WhileStatementNoShortIf
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.Wildcard
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.WildcardBounds
- Hydra.Java.Syntax: instance GHC.Show.Show Hydra.Java.Syntax.YieldStatement
+ Hydra.Java.Coder: explicitTypeArguments :: [TypeArgument] -> TypeArgumentsOrDiamond
+ Hydra.Java.Dsl.Environment: aliases :: TypedTerm ModuleName -> TypedTerm (Map ModuleName PackageName) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Set Name) -> TypedTerm (Map Name Name) -> TypedTerm (Set Name) -> TypedTerm (Map Name Name) -> TypedTerm (Set Name) -> TypedTerm (Maybe Type) -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesAliases :: TypedName Aliases
+ Hydra.Java.Dsl.Environment: aliasesBranchVars :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesCurrentNamespace :: TypedTerm Aliases -> TypedTerm ModuleName
+ Hydra.Java.Dsl.Environment: aliasesInScopeJavaVars :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesInScopeTypeParams :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesLambdaVars :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesMethodCodomain :: TypedTerm Aliases -> TypedTerm (Maybe Type)
+ Hydra.Java.Dsl.Environment: aliasesPackages :: TypedTerm Aliases -> TypedTerm (Map ModuleName PackageName)
+ Hydra.Java.Dsl.Environment: aliasesPolymorphicLocals :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesRecursiveVars :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesThunkedVars :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesTrustedTypeVars :: TypedTerm Aliases -> TypedTerm (Set Name)
+ Hydra.Java.Dsl.Environment: aliasesTypeVarSubst :: TypedTerm Aliases -> TypedTerm (Map Name Name)
+ Hydra.Java.Dsl.Environment: aliasesVarRenames :: TypedTerm Aliases -> TypedTerm (Map Name Name)
+ Hydra.Java.Dsl.Environment: aliasesWithBranchVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithCurrentNamespace :: TypedTerm Aliases -> TypedTerm ModuleName -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithInScopeJavaVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithInScopeTypeParams :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithLambdaVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithMethodCodomain :: TypedTerm Aliases -> TypedTerm (Maybe Type) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithPackages :: TypedTerm Aliases -> TypedTerm (Map ModuleName PackageName) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithPolymorphicLocals :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithRecursiveVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithThunkedVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithTrustedTypeVars :: TypedTerm Aliases -> TypedTerm (Set Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithTypeVarSubst :: TypedTerm Aliases -> TypedTerm (Map Name Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: aliasesWithVarRenames :: TypedTerm Aliases -> TypedTerm (Map Name Name) -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: javaEnvironment :: TypedTerm Aliases -> TypedTerm Graph -> TypedTerm JavaEnvironment
+ Hydra.Java.Dsl.Environment: javaEnvironmentAliases :: TypedTerm JavaEnvironment -> TypedTerm Aliases
+ Hydra.Java.Dsl.Environment: javaEnvironmentGraph :: TypedTerm JavaEnvironment -> TypedTerm Graph
+ Hydra.Java.Dsl.Environment: javaEnvironmentJavaEnvironment :: TypedName JavaEnvironment
+ Hydra.Java.Dsl.Environment: javaEnvironmentWithAliases :: TypedTerm JavaEnvironment -> TypedTerm Aliases -> TypedTerm JavaEnvironment
+ Hydra.Java.Dsl.Environment: javaEnvironmentWithGraph :: TypedTerm JavaEnvironment -> TypedTerm Graph -> TypedTerm JavaEnvironment
+ Hydra.Java.Dsl.Environment: javaFeatures :: TypedTerm Bool -> TypedTerm JavaFeatures
+ Hydra.Java.Dsl.Environment: javaFeaturesJavaFeatures :: TypedName JavaFeatures
+ Hydra.Java.Dsl.Environment: javaFeaturesSupportsDiamondOperator :: TypedTerm JavaFeatures -> TypedTerm Bool
+ Hydra.Java.Dsl.Environment: javaFeaturesWithSupportsDiamondOperator :: TypedTerm JavaFeatures -> TypedTerm Bool -> TypedTerm JavaFeatures
+ Hydra.Java.Dsl.Environment: javaSymbolClassConstant :: TypedTerm JavaSymbolClass
+ Hydra.Java.Dsl.Environment: javaSymbolClassHoistedLambda :: TypedTerm Int -> TypedTerm JavaSymbolClass
+ Hydra.Java.Dsl.Environment: javaSymbolClassJavaSymbolClass :: TypedName JavaSymbolClass
+ Hydra.Java.Dsl.Environment: javaSymbolClassLocalVariable :: TypedTerm JavaSymbolClass
+ Hydra.Java.Dsl.Environment: javaSymbolClassNullaryFunction :: TypedTerm JavaSymbolClass
+ Hydra.Java.Dsl.Environment: javaSymbolClassUnaryFunction :: TypedTerm JavaSymbolClass
+ Hydra.Java.Dsl.Language: javaLanguage :: TypedTerm Language
+ Hydra.Java.Dsl.Language: javaMaxTupleLength :: TypedTerm Int
+ Hydra.Java.Dsl.Language: reservedWords :: TypedTerm (Set String)
+ Hydra.Java.Dsl.Syntax: additionalBound :: TypedTerm InterfaceType -> TypedTerm AdditionalBound
+ Hydra.Java.Dsl.Syntax: additionalBoundAdditionalBound :: TypedName AdditionalBound
+ Hydra.Java.Dsl.Syntax: additiveExpressionAdditiveExpression :: TypedName AdditiveExpression
+ Hydra.Java.Dsl.Syntax: additiveExpressionMinus :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression
+ Hydra.Java.Dsl.Syntax: additiveExpressionPlus :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression
+ Hydra.Java.Dsl.Syntax: additiveExpressionUnary :: TypedTerm MultiplicativeExpression -> TypedTerm AdditiveExpression
+ Hydra.Java.Dsl.Syntax: additiveExpression_Binary :: TypedTerm AdditiveExpression -> TypedTerm MultiplicativeExpression -> TypedTerm AdditiveExpression_Binary
+ Hydra.Java.Dsl.Syntax: additiveExpression_BinaryAdditiveExpression_Binary :: TypedName AdditiveExpression_Binary
+ Hydra.Java.Dsl.Syntax: additiveExpression_BinaryLhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression
+ Hydra.Java.Dsl.Syntax: additiveExpression_BinaryRhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm MultiplicativeExpression
+ Hydra.Java.Dsl.Syntax: additiveExpression_BinaryWithLhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm AdditiveExpression -> TypedTerm AdditiveExpression_Binary
+ Hydra.Java.Dsl.Syntax: additiveExpression_BinaryWithRhs :: TypedTerm AdditiveExpression_Binary -> TypedTerm MultiplicativeExpression -> TypedTerm AdditiveExpression_Binary
+ Hydra.Java.Dsl.Syntax: ambiguousName :: TypedTerm [Identifier] -> TypedTerm AmbiguousName
+ Hydra.Java.Dsl.Syntax: ambiguousNameAmbiguousName :: TypedName AmbiguousName
+ Hydra.Java.Dsl.Syntax: andExpression :: TypedTerm [EqualityExpression] -> TypedTerm AndExpression
+ Hydra.Java.Dsl.Syntax: andExpressionAndExpression :: TypedName AndExpression
+ Hydra.Java.Dsl.Syntax: annotatedIdentifier :: TypedTerm [Annotation] -> TypedTerm Identifier -> TypedTerm AnnotatedIdentifier
+ Hydra.Java.Dsl.Syntax: annotatedIdentifierAnnotatedIdentifier :: TypedName AnnotatedIdentifier
+ Hydra.Java.Dsl.Syntax: annotatedIdentifierAnnotations :: TypedTerm AnnotatedIdentifier -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: annotatedIdentifierIdentifier :: TypedTerm AnnotatedIdentifier -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: annotatedIdentifierWithAnnotations :: TypedTerm AnnotatedIdentifier -> TypedTerm [Annotation] -> TypedTerm AnnotatedIdentifier
+ Hydra.Java.Dsl.Syntax: annotatedIdentifierWithIdentifier :: TypedTerm AnnotatedIdentifier -> TypedTerm Identifier -> TypedTerm AnnotatedIdentifier
+ Hydra.Java.Dsl.Syntax: annotationAnnotation :: TypedName Annotation
+ Hydra.Java.Dsl.Syntax: annotationInterfaceBody :: TypedTerm [AnnotationInterfaceMemberDeclaration] -> TypedTerm AnnotationInterfaceBody
+ Hydra.Java.Dsl.Syntax: annotationInterfaceBodyAnnotationInterfaceBody :: TypedName AnnotationInterfaceBody
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclaration :: TypedTerm [InterfaceModifier] -> TypedTerm TypeIdentifier -> TypedTerm AnnotationInterfaceBody -> TypedTerm AnnotationInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclarationAnnotationInterfaceDeclaration :: TypedName AnnotationInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclarationBody :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm AnnotationInterfaceBody
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclarationIdentifier :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclarationModifiers :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm [InterfaceModifier]
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclarationWithBody :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm AnnotationInterfaceBody -> TypedTerm AnnotationInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclarationWithIdentifier :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm TypeIdentifier -> TypedTerm AnnotationInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceDeclarationWithModifiers :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm [InterfaceModifier] -> TypedTerm AnnotationInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclaration :: TypedTerm [AnnotationInterfaceElementModifier] -> TypedTerm UnannType -> TypedTerm Identifier -> TypedTerm (Maybe Dims) -> TypedTerm (Maybe DefaultValue) -> TypedTerm AnnotationInterfaceElementDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationAnnotationInterfaceElementDeclaration :: TypedName AnnotationInterfaceElementDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationDefault :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe DefaultValue)
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationDims :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe Dims)
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationIdentifier :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationModifiers :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm [AnnotationInterfaceElementModifier]
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationType :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationWithDefault :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe DefaultValue) -> TypedTerm AnnotationInterfaceElementDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationWithDims :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm (Maybe Dims) -> TypedTerm AnnotationInterfaceElementDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationWithIdentifier :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm Identifier -> TypedTerm AnnotationInterfaceElementDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationWithModifiers :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm [AnnotationInterfaceElementModifier] -> TypedTerm AnnotationInterfaceElementDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementDeclarationWithType :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm UnannType -> TypedTerm AnnotationInterfaceElementDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementModifierAbstract :: TypedTerm AnnotationInterfaceElementModifier
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementModifierAnnotation :: TypedTerm Annotation -> TypedTerm AnnotationInterfaceElementModifier
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementModifierAnnotationInterfaceElementModifier :: TypedName AnnotationInterfaceElementModifier
+ Hydra.Java.Dsl.Syntax: annotationInterfaceElementModifierPublic :: TypedTerm AnnotationInterfaceElementModifier
+ Hydra.Java.Dsl.Syntax: annotationInterfaceMemberDeclarationAnnotationInterface :: TypedTerm AnnotationInterfaceElementDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceMemberDeclarationAnnotationInterfaceMemberDeclaration :: TypedName AnnotationInterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceMemberDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceMemberDeclarationConstant :: TypedTerm ConstantDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: annotationInterfaceMemberDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm AnnotationInterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: annotationMarker :: TypedTerm MarkerAnnotation -> TypedTerm Annotation
+ Hydra.Java.Dsl.Syntax: annotationNormal :: TypedTerm NormalAnnotation -> TypedTerm Annotation
+ Hydra.Java.Dsl.Syntax: annotationSingleElement :: TypedTerm SingleElementAnnotation -> TypedTerm Annotation
+ Hydra.Java.Dsl.Syntax: arrayAccess :: TypedTerm (Maybe Expression) -> TypedTerm ArrayAccess_Variant -> TypedTerm ArrayAccess
+ Hydra.Java.Dsl.Syntax: arrayAccessArrayAccess :: TypedName ArrayAccess
+ Hydra.Java.Dsl.Syntax: arrayAccessExpression :: TypedTerm ArrayAccess -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: arrayAccessVariant :: TypedTerm ArrayAccess -> TypedTerm ArrayAccess_Variant
+ Hydra.Java.Dsl.Syntax: arrayAccessWithExpression :: TypedTerm ArrayAccess -> TypedTerm (Maybe Expression) -> TypedTerm ArrayAccess
+ Hydra.Java.Dsl.Syntax: arrayAccessWithVariant :: TypedTerm ArrayAccess -> TypedTerm ArrayAccess_Variant -> TypedTerm ArrayAccess
+ Hydra.Java.Dsl.Syntax: arrayAccess_VariantArrayAccess_Variant :: TypedName ArrayAccess_Variant
+ Hydra.Java.Dsl.Syntax: arrayAccess_VariantArrayCreationWithInitializer :: TypedTerm ArrayCreationExpressionWithInitializer -> TypedTerm ArrayAccess_Variant
+ Hydra.Java.Dsl.Syntax: arrayAccess_VariantName :: TypedTerm ExpressionName -> TypedTerm ArrayAccess_Variant
+ Hydra.Java.Dsl.Syntax: arrayAccess_VariantPrimary :: TypedTerm PrimaryNoNewArrayExpression -> TypedTerm ArrayAccess_Variant
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionArrayCreationExpression :: TypedName ArrayCreationExpression
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionNoInit :: TypedTerm ArrayCreationExpressionWithoutInitializer -> TypedTerm ArrayCreationExpression
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInit :: TypedTerm ArrayCreationExpressionWithInitializer -> TypedTerm ArrayCreationExpression
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializerArrayCreationExpressionWithInitializer :: TypedName ArrayCreationExpressionWithInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializerClassOrInterface :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ArrayCreationExpressionWithInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializerPrimitive :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm ArrayCreationExpressionWithInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm [Dims] -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceArray :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ArrayInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceArrayCreationExpressionWithInitializer_ClassOrInterface :: TypedName ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceDims :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm [Dims]
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceType :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceWithArray :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceWithDims :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm [Dims] -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_ClassOrInterfaceWithType :: TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType -> TypedTerm ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_Primitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [Dims] -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_PrimitiveArray :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm ArrayInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_PrimitiveArrayCreationExpressionWithInitializer_Primitive :: TypedName ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_PrimitiveDims :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm [Dims]
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_PrimitiveType :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_PrimitiveWithArray :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm ArrayInitializer -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_PrimitiveWithDims :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm [Dims] -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithInitializer_PrimitiveWithType :: TypedTerm ArrayCreationExpressionWithInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializerArrayCreationExpressionWithoutInitializer :: TypedName ArrayCreationExpressionWithoutInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializerClassOrInterface :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm ArrayCreationExpressionWithoutInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializerPrimitive :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm ArrayCreationExpressionWithoutInitializer
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm [DimExpr] -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceArrayCreationExpressionWithoutInitializer_ClassOrInterface :: TypedName ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm [DimExpr]
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm (Maybe Dims)
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm [DimExpr] -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithType :: TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> TypedTerm ClassOrInterfaceType -> TypedTerm ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_Primitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [DimExpr] -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveArrayCreationExpressionWithoutInitializer_Primitive :: TypedName ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm [DimExpr]
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm (Maybe Dims)
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveType :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveWithDimExprs :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm [DimExpr] -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveWithDims :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm (Maybe Dims) -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveWithType :: TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive -> TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Java.Dsl.Syntax: arrayInitializer :: TypedTerm [[VariableInitializer]] -> TypedTerm ArrayInitializer
+ Hydra.Java.Dsl.Syntax: arrayInitializerArrayInitializer :: TypedName ArrayInitializer
+ Hydra.Java.Dsl.Syntax: arrayType :: TypedTerm Dims -> TypedTerm ArrayType_Variant -> TypedTerm ArrayType
+ Hydra.Java.Dsl.Syntax: arrayTypeArrayType :: TypedName ArrayType
+ Hydra.Java.Dsl.Syntax: arrayTypeDims :: TypedTerm ArrayType -> TypedTerm Dims
+ Hydra.Java.Dsl.Syntax: arrayTypeVariant :: TypedTerm ArrayType -> TypedTerm ArrayType_Variant
+ Hydra.Java.Dsl.Syntax: arrayTypeWithDims :: TypedTerm ArrayType -> TypedTerm Dims -> TypedTerm ArrayType
+ Hydra.Java.Dsl.Syntax: arrayTypeWithVariant :: TypedTerm ArrayType -> TypedTerm ArrayType_Variant -> TypedTerm ArrayType
+ Hydra.Java.Dsl.Syntax: arrayType_VariantArrayType_Variant :: TypedName ArrayType_Variant
+ Hydra.Java.Dsl.Syntax: arrayType_VariantClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm ArrayType_Variant
+ Hydra.Java.Dsl.Syntax: arrayType_VariantPrimitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm ArrayType_Variant
+ Hydra.Java.Dsl.Syntax: arrayType_VariantVariable :: TypedTerm TypeVariable -> TypedTerm ArrayType_Variant
+ Hydra.Java.Dsl.Syntax: assertStatementAssertStatement :: TypedName AssertStatement
+ Hydra.Java.Dsl.Syntax: assertStatementPair :: TypedTerm AssertStatement_Pair -> TypedTerm AssertStatement
+ Hydra.Java.Dsl.Syntax: assertStatementSingle :: TypedTerm Expression -> TypedTerm AssertStatement
+ Hydra.Java.Dsl.Syntax: assertStatement_Pair :: TypedTerm Expression -> TypedTerm Expression -> TypedTerm AssertStatement_Pair
+ Hydra.Java.Dsl.Syntax: assertStatement_PairAssertStatement_Pair :: TypedName AssertStatement_Pair
+ Hydra.Java.Dsl.Syntax: assertStatement_PairFirst :: TypedTerm AssertStatement_Pair -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: assertStatement_PairSecond :: TypedTerm AssertStatement_Pair -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: assertStatement_PairWithFirst :: TypedTerm AssertStatement_Pair -> TypedTerm Expression -> TypedTerm AssertStatement_Pair
+ Hydra.Java.Dsl.Syntax: assertStatement_PairWithSecond :: TypedTerm AssertStatement_Pair -> TypedTerm Expression -> TypedTerm AssertStatement_Pair
+ Hydra.Java.Dsl.Syntax: assignment :: TypedTerm LeftHandSide -> TypedTerm AssignmentOperator -> TypedTerm Expression -> TypedTerm Assignment
+ Hydra.Java.Dsl.Syntax: assignmentAssignment :: TypedName Assignment
+ Hydra.Java.Dsl.Syntax: assignmentExpression :: TypedTerm Assignment -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: assignmentExpressionAssignment :: TypedTerm Assignment -> TypedTerm AssignmentExpression
+ Hydra.Java.Dsl.Syntax: assignmentExpressionAssignmentExpression :: TypedName AssignmentExpression
+ Hydra.Java.Dsl.Syntax: assignmentExpressionConditional :: TypedTerm ConditionalExpression -> TypedTerm AssignmentExpression
+ Hydra.Java.Dsl.Syntax: assignmentLhs :: TypedTerm Assignment -> TypedTerm LeftHandSide
+ Hydra.Java.Dsl.Syntax: assignmentOp :: TypedTerm Assignment -> TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorAnd :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorAssignmentOperator :: TypedName AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorDiv :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorMinus :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorMod :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorOr :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorPlus :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorShiftLeft :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorShiftRight :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorShiftRightZeroFill :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorSimple :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorTimes :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentOperatorXor :: TypedTerm AssignmentOperator
+ Hydra.Java.Dsl.Syntax: assignmentWithExpression :: TypedTerm Assignment -> TypedTerm Expression -> TypedTerm Assignment
+ Hydra.Java.Dsl.Syntax: assignmentWithLhs :: TypedTerm Assignment -> TypedTerm LeftHandSide -> TypedTerm Assignment
+ Hydra.Java.Dsl.Syntax: assignmentWithOp :: TypedTerm Assignment -> TypedTerm AssignmentOperator -> TypedTerm Assignment
+ Hydra.Java.Dsl.Syntax: basicForStatement :: TypedTerm ForCond -> TypedTerm Statement -> TypedTerm BasicForStatement
+ Hydra.Java.Dsl.Syntax: basicForStatementBasicForStatement :: TypedName BasicForStatement
+ Hydra.Java.Dsl.Syntax: basicForStatementBody :: TypedTerm BasicForStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: basicForStatementCond :: TypedTerm BasicForStatement -> TypedTerm ForCond
+ Hydra.Java.Dsl.Syntax: basicForStatementNoShortIf :: TypedTerm ForCond -> TypedTerm StatementNoShortIf -> TypedTerm BasicForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: basicForStatementNoShortIfBasicForStatementNoShortIf :: TypedName BasicForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: basicForStatementNoShortIfBody :: TypedTerm BasicForStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: basicForStatementNoShortIfCond :: TypedTerm BasicForStatementNoShortIf -> TypedTerm ForCond
+ Hydra.Java.Dsl.Syntax: basicForStatementNoShortIfWithBody :: TypedTerm BasicForStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm BasicForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: basicForStatementNoShortIfWithCond :: TypedTerm BasicForStatementNoShortIf -> TypedTerm ForCond -> TypedTerm BasicForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: basicForStatementWithBody :: TypedTerm BasicForStatement -> TypedTerm Statement -> TypedTerm BasicForStatement
+ Hydra.Java.Dsl.Syntax: basicForStatementWithCond :: TypedTerm BasicForStatement -> TypedTerm ForCond -> TypedTerm BasicForStatement
+ Hydra.Java.Dsl.Syntax: block :: TypedTerm [BlockStatement] -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: blockBlock :: TypedName Block
+ Hydra.Java.Dsl.Syntax: blockStatementBlockStatement :: TypedName BlockStatement
+ Hydra.Java.Dsl.Syntax: blockStatementLocalClassOrInterface :: TypedTerm LocalClassOrInterfaceDeclaration -> TypedTerm BlockStatement
+ Hydra.Java.Dsl.Syntax: blockStatementLocalVariableDeclaration :: TypedTerm LocalVariableDeclarationStatement -> TypedTerm BlockStatement
+ Hydra.Java.Dsl.Syntax: blockStatementStatement :: TypedTerm Statement -> TypedTerm BlockStatement
+ Hydra.Java.Dsl.Syntax: booleanArrayArray :: TypedTerm BooleanArray -> TypedTerm BooleanArray
+ Hydra.Java.Dsl.Syntax: booleanArrayBooleanArray :: TypedName BooleanArray
+ Hydra.Java.Dsl.Syntax: booleanArraySimple :: TypedTerm BooleanArray
+ Hydra.Java.Dsl.Syntax: breakStatement :: TypedTerm (Maybe Identifier) -> TypedTerm BreakStatement
+ Hydra.Java.Dsl.Syntax: breakStatementBreakStatement :: TypedName BreakStatement
+ Hydra.Java.Dsl.Syntax: caseConstant :: TypedTerm ConditionalExpression -> TypedTerm CaseConstant
+ Hydra.Java.Dsl.Syntax: caseConstantCaseConstant :: TypedName CaseConstant
+ Hydra.Java.Dsl.Syntax: casePattern :: TypedTerm Pattern -> TypedTerm (Maybe Guard) -> TypedTerm CasePattern
+ Hydra.Java.Dsl.Syntax: casePatternCasePattern :: TypedName CasePattern
+ Hydra.Java.Dsl.Syntax: casePatternGuard :: TypedTerm CasePattern -> TypedTerm (Maybe Guard)
+ Hydra.Java.Dsl.Syntax: casePatternPattern :: TypedTerm CasePattern -> TypedTerm Pattern
+ Hydra.Java.Dsl.Syntax: casePatternWithGuard :: TypedTerm CasePattern -> TypedTerm (Maybe Guard) -> TypedTerm CasePattern
+ Hydra.Java.Dsl.Syntax: casePatternWithPattern :: TypedTerm CasePattern -> TypedTerm Pattern -> TypedTerm CasePattern
+ Hydra.Java.Dsl.Syntax: castExpressionCastExpression :: TypedName CastExpression
+ Hydra.Java.Dsl.Syntax: castExpressionLambda :: TypedTerm CastExpression_Lambda -> TypedTerm CastExpression
+ Hydra.Java.Dsl.Syntax: castExpressionNotPlusMinus :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm CastExpression
+ Hydra.Java.Dsl.Syntax: castExpressionPrimitive :: TypedTerm CastExpression_Primitive -> TypedTerm CastExpression
+ Hydra.Java.Dsl.Syntax: castExpression_Lambda :: TypedTerm CastExpression_RefAndBounds -> TypedTerm LambdaExpression -> TypedTerm CastExpression_Lambda
+ Hydra.Java.Dsl.Syntax: castExpression_LambdaCastExpression_Lambda :: TypedName CastExpression_Lambda
+ Hydra.Java.Dsl.Syntax: castExpression_LambdaExpression :: TypedTerm CastExpression_Lambda -> TypedTerm LambdaExpression
+ Hydra.Java.Dsl.Syntax: castExpression_LambdaRefAndBounds :: TypedTerm CastExpression_Lambda -> TypedTerm CastExpression_RefAndBounds
+ Hydra.Java.Dsl.Syntax: castExpression_LambdaWithExpression :: TypedTerm CastExpression_Lambda -> TypedTerm LambdaExpression -> TypedTerm CastExpression_Lambda
+ Hydra.Java.Dsl.Syntax: castExpression_LambdaWithRefAndBounds :: TypedTerm CastExpression_Lambda -> TypedTerm CastExpression_RefAndBounds -> TypedTerm CastExpression_Lambda
+ Hydra.Java.Dsl.Syntax: castExpression_NotPlusMinus :: TypedTerm CastExpression_RefAndBounds -> TypedTerm UnaryExpression -> TypedTerm CastExpression_NotPlusMinus
+ Hydra.Java.Dsl.Syntax: castExpression_NotPlusMinusCastExpression_NotPlusMinus :: TypedName CastExpression_NotPlusMinus
+ Hydra.Java.Dsl.Syntax: castExpression_NotPlusMinusExpression :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: castExpression_NotPlusMinusRefAndBounds :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm CastExpression_RefAndBounds
+ Hydra.Java.Dsl.Syntax: castExpression_NotPlusMinusWithExpression :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm UnaryExpression -> TypedTerm CastExpression_NotPlusMinus
+ Hydra.Java.Dsl.Syntax: castExpression_NotPlusMinusWithRefAndBounds :: TypedTerm CastExpression_NotPlusMinus -> TypedTerm CastExpression_RefAndBounds -> TypedTerm CastExpression_NotPlusMinus
+ Hydra.Java.Dsl.Syntax: castExpression_Primitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm UnaryExpression -> TypedTerm CastExpression_Primitive
+ Hydra.Java.Dsl.Syntax: castExpression_PrimitiveCastExpression_Primitive :: TypedName CastExpression_Primitive
+ Hydra.Java.Dsl.Syntax: castExpression_PrimitiveExpression :: TypedTerm CastExpression_Primitive -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: castExpression_PrimitiveType :: TypedTerm CastExpression_Primitive -> TypedTerm PrimitiveTypeWithAnnotations
+ Hydra.Java.Dsl.Syntax: castExpression_PrimitiveWithExpression :: TypedTerm CastExpression_Primitive -> TypedTerm UnaryExpression -> TypedTerm CastExpression_Primitive
+ Hydra.Java.Dsl.Syntax: castExpression_PrimitiveWithType :: TypedTerm CastExpression_Primitive -> TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm CastExpression_Primitive
+ Hydra.Java.Dsl.Syntax: castExpression_RefAndBounds :: TypedTerm ReferenceType -> TypedTerm [AdditionalBound] -> TypedTerm CastExpression_RefAndBounds
+ Hydra.Java.Dsl.Syntax: castExpression_RefAndBoundsBounds :: TypedTerm CastExpression_RefAndBounds -> TypedTerm [AdditionalBound]
+ Hydra.Java.Dsl.Syntax: castExpression_RefAndBoundsCastExpression_RefAndBounds :: TypedName CastExpression_RefAndBounds
+ Hydra.Java.Dsl.Syntax: castExpression_RefAndBoundsType :: TypedTerm CastExpression_RefAndBounds -> TypedTerm ReferenceType
+ Hydra.Java.Dsl.Syntax: castExpression_RefAndBoundsWithBounds :: TypedTerm CastExpression_RefAndBounds -> TypedTerm [AdditionalBound] -> TypedTerm CastExpression_RefAndBounds
+ Hydra.Java.Dsl.Syntax: castExpression_RefAndBoundsWithType :: TypedTerm CastExpression_RefAndBounds -> TypedTerm ReferenceType -> TypedTerm CastExpression_RefAndBounds
+ Hydra.Java.Dsl.Syntax: catchClause :: TypedTerm (Maybe CatchFormalParameter) -> TypedTerm Block -> TypedTerm CatchClause
+ Hydra.Java.Dsl.Syntax: catchClauseBlock :: TypedTerm CatchClause -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: catchClauseCatchClause :: TypedName CatchClause
+ Hydra.Java.Dsl.Syntax: catchClauseParameter :: TypedTerm CatchClause -> TypedTerm (Maybe CatchFormalParameter)
+ Hydra.Java.Dsl.Syntax: catchClauseWithBlock :: TypedTerm CatchClause -> TypedTerm Block -> TypedTerm CatchClause
+ Hydra.Java.Dsl.Syntax: catchClauseWithParameter :: TypedTerm CatchClause -> TypedTerm (Maybe CatchFormalParameter) -> TypedTerm CatchClause
+ Hydra.Java.Dsl.Syntax: catchFormalParameter :: TypedTerm [VariableModifier] -> TypedTerm CatchType -> TypedTerm VariableDeclaratorId -> TypedTerm CatchFormalParameter
+ Hydra.Java.Dsl.Syntax: catchFormalParameterCatchFormalParameter :: TypedName CatchFormalParameter
+ Hydra.Java.Dsl.Syntax: catchFormalParameterId :: TypedTerm CatchFormalParameter -> TypedTerm VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: catchFormalParameterModifiers :: TypedTerm CatchFormalParameter -> TypedTerm [VariableModifier]
+ Hydra.Java.Dsl.Syntax: catchFormalParameterType :: TypedTerm CatchFormalParameter -> TypedTerm CatchType
+ Hydra.Java.Dsl.Syntax: catchFormalParameterWithId :: TypedTerm CatchFormalParameter -> TypedTerm VariableDeclaratorId -> TypedTerm CatchFormalParameter
+ Hydra.Java.Dsl.Syntax: catchFormalParameterWithModifiers :: TypedTerm CatchFormalParameter -> TypedTerm [VariableModifier] -> TypedTerm CatchFormalParameter
+ Hydra.Java.Dsl.Syntax: catchFormalParameterWithType :: TypedTerm CatchFormalParameter -> TypedTerm CatchType -> TypedTerm CatchFormalParameter
+ Hydra.Java.Dsl.Syntax: catchType :: TypedTerm UnannClassType -> TypedTerm [ClassType] -> TypedTerm CatchType
+ Hydra.Java.Dsl.Syntax: catchTypeCatchType :: TypedName CatchType
+ Hydra.Java.Dsl.Syntax: catchTypeType :: TypedTerm CatchType -> TypedTerm UnannClassType
+ Hydra.Java.Dsl.Syntax: catchTypeTypes :: TypedTerm CatchType -> TypedTerm [ClassType]
+ Hydra.Java.Dsl.Syntax: catchTypeWithType :: TypedTerm CatchType -> TypedTerm UnannClassType -> TypedTerm CatchType
+ Hydra.Java.Dsl.Syntax: catchTypeWithTypes :: TypedTerm CatchType -> TypedTerm [ClassType] -> TypedTerm CatchType
+ Hydra.Java.Dsl.Syntax: catches :: TypedTerm [CatchClause] -> TypedTerm Catches
+ Hydra.Java.Dsl.Syntax: catchesCatches :: TypedName Catches
+ Hydra.Java.Dsl.Syntax: classBody :: TypedTerm [ClassBodyDeclarationWithComments] -> TypedTerm ClassBody
+ Hydra.Java.Dsl.Syntax: classBodyClassBody :: TypedName ClassBody
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationClassBodyDeclaration :: TypedName ClassBodyDeclaration
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationClassMember :: TypedTerm ClassMemberDeclaration -> TypedTerm ClassBodyDeclaration
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationConstructorDeclaration :: TypedTerm ConstructorDeclaration -> TypedTerm ClassBodyDeclaration
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationInstanceInitializer :: TypedTerm InstanceInitializer -> TypedTerm ClassBodyDeclaration
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationStaticInitializer :: TypedTerm StaticInitializer -> TypedTerm ClassBodyDeclaration
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationWithComments :: TypedTerm ClassBodyDeclaration -> TypedTerm (Maybe String) -> TypedTerm ClassBodyDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationWithCommentsClassBodyDeclarationWithComments :: TypedName ClassBodyDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationWithCommentsComments :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm (Maybe String)
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationWithCommentsValue :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm ClassBodyDeclaration
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationWithCommentsWithComments :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm (Maybe String) -> TypedTerm ClassBodyDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: classBodyDeclarationWithCommentsWithValue :: TypedTerm ClassBodyDeclarationWithComments -> TypedTerm ClassBodyDeclaration -> TypedTerm ClassBodyDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: classDeclarationClassDeclaration :: TypedName ClassDeclaration
+ Hydra.Java.Dsl.Syntax: classDeclarationEnum :: TypedTerm EnumDeclaration -> TypedTerm ClassDeclaration
+ Hydra.Java.Dsl.Syntax: classDeclarationNormal :: TypedTerm NormalClassDeclaration -> TypedTerm ClassDeclaration
+ Hydra.Java.Dsl.Syntax: classDeclarationRecord :: TypedTerm RecordDeclaration -> TypedTerm ClassDeclaration
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpression :: TypedTerm (Maybe ClassInstanceCreationExpression_Qualifier) -> TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpressionClassInstanceCreationExpression :: TypedName ClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpressionExpression :: TypedTerm ClassInstanceCreationExpression -> TypedTerm UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpressionQualifier :: TypedTerm ClassInstanceCreationExpression -> TypedTerm (Maybe ClassInstanceCreationExpression_Qualifier)
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpressionWithExpression :: TypedTerm ClassInstanceCreationExpression -> TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpressionWithQualifier :: TypedTerm ClassInstanceCreationExpression -> TypedTerm (Maybe ClassInstanceCreationExpression_Qualifier) -> TypedTerm ClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpression_QualifierClassInstanceCreationExpression_Qualifier :: TypedName ClassInstanceCreationExpression_Qualifier
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpression_QualifierExpression :: TypedTerm ExpressionName -> TypedTerm ClassInstanceCreationExpression_Qualifier
+ Hydra.Java.Dsl.Syntax: classInstanceCreationExpression_QualifierPrimary :: TypedTerm Primary -> TypedTerm ClassInstanceCreationExpression_Qualifier
+ Hydra.Java.Dsl.Syntax: classLiteralBoolean :: TypedTerm BooleanArray -> TypedTerm ClassLiteral
+ Hydra.Java.Dsl.Syntax: classLiteralClassLiteral :: TypedName ClassLiteral
+ Hydra.Java.Dsl.Syntax: classLiteralNumericType :: TypedTerm NumericTypeArray -> TypedTerm ClassLiteral
+ Hydra.Java.Dsl.Syntax: classLiteralType :: TypedTerm TypeNameArray -> TypedTerm ClassLiteral
+ Hydra.Java.Dsl.Syntax: classLiteralVoid :: TypedTerm ClassLiteral
+ Hydra.Java.Dsl.Syntax: classMemberDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm ClassMemberDeclaration
+ Hydra.Java.Dsl.Syntax: classMemberDeclarationClassMemberDeclaration :: TypedName ClassMemberDeclaration
+ Hydra.Java.Dsl.Syntax: classMemberDeclarationField :: TypedTerm FieldDeclaration -> TypedTerm ClassMemberDeclaration
+ Hydra.Java.Dsl.Syntax: classMemberDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm ClassMemberDeclaration
+ Hydra.Java.Dsl.Syntax: classMemberDeclarationMethod :: TypedTerm MethodDeclaration -> TypedTerm ClassMemberDeclaration
+ Hydra.Java.Dsl.Syntax: classMemberDeclarationNone :: TypedTerm ClassMemberDeclaration
+ Hydra.Java.Dsl.Syntax: classModifierAbstract :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierAnnotation :: TypedTerm Annotation -> TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierClassModifier :: TypedName ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierFinal :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierNonSealed :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierPrivate :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierProtected :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierPublic :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierSealed :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierStatic :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classModifierStrictfp :: TypedTerm ClassModifier
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeClass :: TypedTerm ClassType -> TypedTerm ClassOrInterfaceType
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeClassOrInterfaceType :: TypedName ClassOrInterfaceType
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeInterface :: TypedTerm InterfaceType -> TypedTerm ClassOrInterfaceType
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeToInstantiate :: TypedTerm [AnnotatedIdentifier] -> TypedTerm (Maybe TypeArgumentsOrDiamond) -> TypedTerm ClassOrInterfaceTypeToInstantiate
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeToInstantiateClassOrInterfaceTypeToInstantiate :: TypedName ClassOrInterfaceTypeToInstantiate
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeToInstantiateIdentifiers :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm [AnnotatedIdentifier]
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeToInstantiateTypeArguments :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm (Maybe TypeArgumentsOrDiamond)
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeToInstantiateWithIdentifiers :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm [AnnotatedIdentifier] -> TypedTerm ClassOrInterfaceTypeToInstantiate
+ Hydra.Java.Dsl.Syntax: classOrInterfaceTypeToInstantiateWithTypeArguments :: TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm (Maybe TypeArgumentsOrDiamond) -> TypedTerm ClassOrInterfaceTypeToInstantiate
+ Hydra.Java.Dsl.Syntax: classType :: TypedTerm [Annotation] -> TypedTerm ClassTypeQualifier -> TypedTerm TypeIdentifier -> TypedTerm [TypeArgument] -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: classTypeAnnotations :: TypedTerm ClassType -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: classTypeArguments :: TypedTerm ClassType -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: classTypeClassType :: TypedName ClassType
+ Hydra.Java.Dsl.Syntax: classTypeIdentifier :: TypedTerm ClassType -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: classTypeQualifier :: TypedTerm ClassType -> TypedTerm ClassTypeQualifier
+ Hydra.Java.Dsl.Syntax: classTypeQualifierClassTypeQualifier :: TypedName ClassTypeQualifier
+ Hydra.Java.Dsl.Syntax: classTypeQualifierNone :: TypedTerm ClassTypeQualifier
+ Hydra.Java.Dsl.Syntax: classTypeQualifierPackage :: TypedTerm PackageName -> TypedTerm ClassTypeQualifier
+ Hydra.Java.Dsl.Syntax: classTypeQualifierParent :: TypedTerm ClassOrInterfaceType -> TypedTerm ClassTypeQualifier
+ Hydra.Java.Dsl.Syntax: classTypeWithAnnotations :: TypedTerm ClassType -> TypedTerm [Annotation] -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: classTypeWithArguments :: TypedTerm ClassType -> TypedTerm [TypeArgument] -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: classTypeWithIdentifier :: TypedTerm ClassType -> TypedTerm TypeIdentifier -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: classTypeWithQualifier :: TypedTerm ClassType -> TypedTerm ClassTypeQualifier -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclaration :: TypedTerm [ConstructorModifier] -> TypedTerm SimpleTypeName -> TypedTerm ConstructorBody -> TypedTerm CompactConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclarationBody :: TypedTerm CompactConstructorDeclaration -> TypedTerm ConstructorBody
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclarationCompactConstructorDeclaration :: TypedName CompactConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclarationModifiers :: TypedTerm CompactConstructorDeclaration -> TypedTerm [ConstructorModifier]
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclarationName :: TypedTerm CompactConstructorDeclaration -> TypedTerm SimpleTypeName
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclarationWithBody :: TypedTerm CompactConstructorDeclaration -> TypedTerm ConstructorBody -> TypedTerm CompactConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclarationWithModifiers :: TypedTerm CompactConstructorDeclaration -> TypedTerm [ConstructorModifier] -> TypedTerm CompactConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: compactConstructorDeclarationWithName :: TypedTerm CompactConstructorDeclaration -> TypedTerm SimpleTypeName -> TypedTerm CompactConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: compilationUnitCompilationUnit :: TypedName CompilationUnit
+ Hydra.Java.Dsl.Syntax: compilationUnitModular :: TypedTerm ModularCompilationUnit -> TypedTerm CompilationUnit
+ Hydra.Java.Dsl.Syntax: compilationUnitOrdinary :: TypedTerm OrdinaryCompilationUnit -> TypedTerm CompilationUnit
+ Hydra.Java.Dsl.Syntax: conditionalAndExpression :: TypedTerm [InclusiveOrExpression] -> TypedTerm ConditionalAndExpression
+ Hydra.Java.Dsl.Syntax: conditionalAndExpressionConditionalAndExpression :: TypedName ConditionalAndExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpressionConditionalExpression :: TypedName ConditionalExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpressionSimple :: TypedTerm ConditionalOrExpression -> TypedTerm ConditionalExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpressionTernaryCond :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpressionTernaryLambda :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm ConditionalExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCond :: TypedTerm ConditionalOrExpression -> TypedTerm Expression -> TypedTerm ConditionalExpression -> TypedTerm ConditionalExpression_TernaryCond
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCondCond :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalOrExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCondConditionalExpression_TernaryCond :: TypedName ConditionalExpression_TernaryCond
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCondIfFalse :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCondIfTrue :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCondWithCond :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalOrExpression -> TypedTerm ConditionalExpression_TernaryCond
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCondWithIfFalse :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm ConditionalExpression -> TypedTerm ConditionalExpression_TernaryCond
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryCondWithIfTrue :: TypedTerm ConditionalExpression_TernaryCond -> TypedTerm Expression -> TypedTerm ConditionalExpression_TernaryCond
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambda :: TypedTerm ConditionalOrExpression -> TypedTerm Expression -> TypedTerm LambdaExpression -> TypedTerm ConditionalExpression_TernaryLambda
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambdaCond :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm ConditionalOrExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambdaConditionalExpression_TernaryLambda :: TypedName ConditionalExpression_TernaryLambda
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambdaIfFalse :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm LambdaExpression
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambdaIfTrue :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambdaWithCond :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm ConditionalOrExpression -> TypedTerm ConditionalExpression_TernaryLambda
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambdaWithIfFalse :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm LambdaExpression -> TypedTerm ConditionalExpression_TernaryLambda
+ Hydra.Java.Dsl.Syntax: conditionalExpression_TernaryLambdaWithIfTrue :: TypedTerm ConditionalExpression_TernaryLambda -> TypedTerm Expression -> TypedTerm ConditionalExpression_TernaryLambda
+ Hydra.Java.Dsl.Syntax: conditionalOrExpression :: TypedTerm [ConditionalAndExpression] -> TypedTerm ConditionalOrExpression
+ Hydra.Java.Dsl.Syntax: conditionalOrExpressionConditionalOrExpression :: TypedName ConditionalOrExpression
+ Hydra.Java.Dsl.Syntax: constantDeclaration :: TypedTerm [ConstantModifier] -> TypedTerm UnannType -> TypedTerm [VariableDeclarator] -> TypedTerm ConstantDeclaration
+ Hydra.Java.Dsl.Syntax: constantDeclarationConstantDeclaration :: TypedName ConstantDeclaration
+ Hydra.Java.Dsl.Syntax: constantDeclarationModifiers :: TypedTerm ConstantDeclaration -> TypedTerm [ConstantModifier]
+ Hydra.Java.Dsl.Syntax: constantDeclarationType :: TypedTerm ConstantDeclaration -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: constantDeclarationVariables :: TypedTerm ConstantDeclaration -> TypedTerm [VariableDeclarator]
+ Hydra.Java.Dsl.Syntax: constantDeclarationWithModifiers :: TypedTerm ConstantDeclaration -> TypedTerm [ConstantModifier] -> TypedTerm ConstantDeclaration
+ Hydra.Java.Dsl.Syntax: constantDeclarationWithType :: TypedTerm ConstantDeclaration -> TypedTerm UnannType -> TypedTerm ConstantDeclaration
+ Hydra.Java.Dsl.Syntax: constantDeclarationWithVariables :: TypedTerm ConstantDeclaration -> TypedTerm [VariableDeclarator] -> TypedTerm ConstantDeclaration
+ Hydra.Java.Dsl.Syntax: constantExpression :: TypedTerm Expression -> TypedTerm ConstantExpression
+ Hydra.Java.Dsl.Syntax: constantExpressionConstantExpression :: TypedName ConstantExpression
+ Hydra.Java.Dsl.Syntax: constantModifierAnnotation :: TypedTerm Annotation -> TypedTerm ConstantModifier
+ Hydra.Java.Dsl.Syntax: constantModifierConstantModifier :: TypedName ConstantModifier
+ Hydra.Java.Dsl.Syntax: constantModifierFinal :: TypedTerm ConstantModifier
+ Hydra.Java.Dsl.Syntax: constantModifierPublic :: TypedTerm ConstantModifier
+ Hydra.Java.Dsl.Syntax: constantModifierStatic :: TypedTerm ConstantModifier
+ Hydra.Java.Dsl.Syntax: constructorBody :: TypedTerm (Maybe ExplicitConstructorInvocation) -> TypedTerm [BlockStatement] -> TypedTerm ConstructorBody
+ Hydra.Java.Dsl.Syntax: constructorBodyConstructorBody :: TypedName ConstructorBody
+ Hydra.Java.Dsl.Syntax: constructorBodyInvocation :: TypedTerm ConstructorBody -> TypedTerm (Maybe ExplicitConstructorInvocation)
+ Hydra.Java.Dsl.Syntax: constructorBodyStatements :: TypedTerm ConstructorBody -> TypedTerm [BlockStatement]
+ Hydra.Java.Dsl.Syntax: constructorBodyWithInvocation :: TypedTerm ConstructorBody -> TypedTerm (Maybe ExplicitConstructorInvocation) -> TypedTerm ConstructorBody
+ Hydra.Java.Dsl.Syntax: constructorBodyWithStatements :: TypedTerm ConstructorBody -> TypedTerm [BlockStatement] -> TypedTerm ConstructorBody
+ Hydra.Java.Dsl.Syntax: constructorDeclaration :: TypedTerm [ConstructorModifier] -> TypedTerm ConstructorDeclarator -> TypedTerm (Maybe Throws) -> TypedTerm ConstructorBody -> TypedTerm ConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: constructorDeclarationBody :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorBody
+ Hydra.Java.Dsl.Syntax: constructorDeclarationConstructor :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorDeclarator
+ Hydra.Java.Dsl.Syntax: constructorDeclarationConstructorDeclaration :: TypedName ConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: constructorDeclarationModifiers :: TypedTerm ConstructorDeclaration -> TypedTerm [ConstructorModifier]
+ Hydra.Java.Dsl.Syntax: constructorDeclarationThrows :: TypedTerm ConstructorDeclaration -> TypedTerm (Maybe Throws)
+ Hydra.Java.Dsl.Syntax: constructorDeclarationWithBody :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorBody -> TypedTerm ConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: constructorDeclarationWithConstructor :: TypedTerm ConstructorDeclaration -> TypedTerm ConstructorDeclarator -> TypedTerm ConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: constructorDeclarationWithModifiers :: TypedTerm ConstructorDeclaration -> TypedTerm [ConstructorModifier] -> TypedTerm ConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: constructorDeclarationWithThrows :: TypedTerm ConstructorDeclaration -> TypedTerm (Maybe Throws) -> TypedTerm ConstructorDeclaration
+ Hydra.Java.Dsl.Syntax: constructorDeclarator :: TypedTerm [TypeParameter] -> TypedTerm SimpleTypeName -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm [FormalParameter] -> TypedTerm ConstructorDeclarator
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorConstructorDeclarator :: TypedName ConstructorDeclarator
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorFormalParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [FormalParameter]
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorName :: TypedTerm ConstructorDeclarator -> TypedTerm SimpleTypeName
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [TypeParameter]
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorReceiverParameter :: TypedTerm ConstructorDeclarator -> TypedTerm (Maybe ReceiverParameter)
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorWithFormalParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [FormalParameter] -> TypedTerm ConstructorDeclarator
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorWithName :: TypedTerm ConstructorDeclarator -> TypedTerm SimpleTypeName -> TypedTerm ConstructorDeclarator
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorWithParameters :: TypedTerm ConstructorDeclarator -> TypedTerm [TypeParameter] -> TypedTerm ConstructorDeclarator
+ Hydra.Java.Dsl.Syntax: constructorDeclaratorWithReceiverParameter :: TypedTerm ConstructorDeclarator -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm ConstructorDeclarator
+ Hydra.Java.Dsl.Syntax: constructorModifierAnnotation :: TypedTerm Annotation -> TypedTerm ConstructorModifier
+ Hydra.Java.Dsl.Syntax: constructorModifierConstructorModifier :: TypedName ConstructorModifier
+ Hydra.Java.Dsl.Syntax: constructorModifierPrivate :: TypedTerm ConstructorModifier
+ Hydra.Java.Dsl.Syntax: constructorModifierProtected :: TypedTerm ConstructorModifier
+ Hydra.Java.Dsl.Syntax: constructorModifierPublic :: TypedTerm ConstructorModifier
+ Hydra.Java.Dsl.Syntax: continueStatement :: TypedTerm (Maybe Identifier) -> TypedTerm ContinueStatement
+ Hydra.Java.Dsl.Syntax: continueStatementContinueStatement :: TypedName ContinueStatement
+ Hydra.Java.Dsl.Syntax: defaultValue :: TypedTerm ElementValue -> TypedTerm DefaultValue
+ Hydra.Java.Dsl.Syntax: defaultValueDefaultValue :: TypedName DefaultValue
+ Hydra.Java.Dsl.Syntax: dimExpr :: TypedTerm [Annotation] -> TypedTerm (Maybe Expression) -> TypedTerm DimExpr
+ Hydra.Java.Dsl.Syntax: dimExprAnnotations :: TypedTerm DimExpr -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: dimExprDimExpr :: TypedName DimExpr
+ Hydra.Java.Dsl.Syntax: dimExprExpression :: TypedTerm DimExpr -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: dimExprWithAnnotations :: TypedTerm DimExpr -> TypedTerm [Annotation] -> TypedTerm DimExpr
+ Hydra.Java.Dsl.Syntax: dimExprWithExpression :: TypedTerm DimExpr -> TypedTerm (Maybe Expression) -> TypedTerm DimExpr
+ Hydra.Java.Dsl.Syntax: dims :: TypedTerm [[Annotation]] -> TypedTerm Dims
+ Hydra.Java.Dsl.Syntax: dimsDims :: TypedName Dims
+ Hydra.Java.Dsl.Syntax: doStatement :: TypedTerm Statement -> TypedTerm Expression -> TypedTerm DoStatement
+ Hydra.Java.Dsl.Syntax: doStatementBody :: TypedTerm DoStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: doStatementCond :: TypedTerm DoStatement -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: doStatementDoStatement :: TypedName DoStatement
+ Hydra.Java.Dsl.Syntax: doStatementWithBody :: TypedTerm DoStatement -> TypedTerm Statement -> TypedTerm DoStatement
+ Hydra.Java.Dsl.Syntax: doStatementWithCond :: TypedTerm DoStatement -> TypedTerm Expression -> TypedTerm DoStatement
+ Hydra.Java.Dsl.Syntax: elementValueAnnotation :: TypedTerm Annotation -> TypedTerm ElementValue
+ Hydra.Java.Dsl.Syntax: elementValueArrayInitializer :: TypedTerm [ElementValue] -> TypedTerm ElementValueArrayInitializer
+ Hydra.Java.Dsl.Syntax: elementValueArrayInitializerElementValueArrayInitializer :: TypedName ElementValueArrayInitializer
+ Hydra.Java.Dsl.Syntax: elementValueConditionalExpression :: TypedTerm ConditionalExpression -> TypedTerm ElementValue
+ Hydra.Java.Dsl.Syntax: elementValueElementValue :: TypedName ElementValue
+ Hydra.Java.Dsl.Syntax: elementValueElementValueArrayInitializer :: TypedTerm ElementValueArrayInitializer -> TypedTerm ElementValue
+ Hydra.Java.Dsl.Syntax: elementValuePair :: TypedTerm Identifier -> TypedTerm ElementValue -> TypedTerm ElementValuePair
+ Hydra.Java.Dsl.Syntax: elementValuePairElementValuePair :: TypedName ElementValuePair
+ Hydra.Java.Dsl.Syntax: elementValuePairKey :: TypedTerm ElementValuePair -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: elementValuePairValue :: TypedTerm ElementValuePair -> TypedTerm ElementValue
+ Hydra.Java.Dsl.Syntax: elementValuePairWithKey :: TypedTerm ElementValuePair -> TypedTerm Identifier -> TypedTerm ElementValuePair
+ Hydra.Java.Dsl.Syntax: elementValuePairWithValue :: TypedTerm ElementValuePair -> TypedTerm ElementValue -> TypedTerm ElementValuePair
+ Hydra.Java.Dsl.Syntax: enhancedForCond :: TypedTerm LocalVariableDeclaration -> TypedTerm Expression -> TypedTerm EnhancedForCond
+ Hydra.Java.Dsl.Syntax: enhancedForCondDeclaration :: TypedTerm EnhancedForCond -> TypedTerm LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: enhancedForCondEnhancedForCond :: TypedName EnhancedForCond
+ Hydra.Java.Dsl.Syntax: enhancedForCondExpression :: TypedTerm EnhancedForCond -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: enhancedForCondWithDeclaration :: TypedTerm EnhancedForCond -> TypedTerm LocalVariableDeclaration -> TypedTerm EnhancedForCond
+ Hydra.Java.Dsl.Syntax: enhancedForCondWithExpression :: TypedTerm EnhancedForCond -> TypedTerm Expression -> TypedTerm EnhancedForCond
+ Hydra.Java.Dsl.Syntax: enhancedForStatement :: TypedTerm EnhancedForCond -> TypedTerm Statement -> TypedTerm EnhancedForStatement
+ Hydra.Java.Dsl.Syntax: enhancedForStatementBody :: TypedTerm EnhancedForStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: enhancedForStatementCond :: TypedTerm EnhancedForStatement -> TypedTerm EnhancedForCond
+ Hydra.Java.Dsl.Syntax: enhancedForStatementEnhancedForStatement :: TypedName EnhancedForStatement
+ Hydra.Java.Dsl.Syntax: enhancedForStatementNoShortIf :: TypedTerm EnhancedForCond -> TypedTerm StatementNoShortIf -> TypedTerm EnhancedForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: enhancedForStatementNoShortIfBody :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: enhancedForStatementNoShortIfCond :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm EnhancedForCond
+ Hydra.Java.Dsl.Syntax: enhancedForStatementNoShortIfEnhancedForStatementNoShortIf :: TypedName EnhancedForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: enhancedForStatementNoShortIfWithBody :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm EnhancedForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: enhancedForStatementNoShortIfWithCond :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm EnhancedForCond -> TypedTerm EnhancedForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: enhancedForStatementWithBody :: TypedTerm EnhancedForStatement -> TypedTerm Statement -> TypedTerm EnhancedForStatement
+ Hydra.Java.Dsl.Syntax: enhancedForStatementWithCond :: TypedTerm EnhancedForStatement -> TypedTerm EnhancedForCond -> TypedTerm EnhancedForStatement
+ Hydra.Java.Dsl.Syntax: enumBody :: TypedTerm [EnumBody_Element] -> TypedTerm EnumBody
+ Hydra.Java.Dsl.Syntax: enumBodyEnumBody :: TypedName EnumBody
+ Hydra.Java.Dsl.Syntax: enumBody_Element :: TypedTerm [EnumConstant] -> TypedTerm [ClassBodyDeclaration] -> TypedTerm EnumBody_Element
+ Hydra.Java.Dsl.Syntax: enumBody_ElementBodyDeclarations :: TypedTerm EnumBody_Element -> TypedTerm [ClassBodyDeclaration]
+ Hydra.Java.Dsl.Syntax: enumBody_ElementConstants :: TypedTerm EnumBody_Element -> TypedTerm [EnumConstant]
+ Hydra.Java.Dsl.Syntax: enumBody_ElementEnumBody_Element :: TypedName EnumBody_Element
+ Hydra.Java.Dsl.Syntax: enumBody_ElementWithBodyDeclarations :: TypedTerm EnumBody_Element -> TypedTerm [ClassBodyDeclaration] -> TypedTerm EnumBody_Element
+ Hydra.Java.Dsl.Syntax: enumBody_ElementWithConstants :: TypedTerm EnumBody_Element -> TypedTerm [EnumConstant] -> TypedTerm EnumBody_Element
+ Hydra.Java.Dsl.Syntax: enumConstant :: TypedTerm [EnumConstantModifier] -> TypedTerm Identifier -> TypedTerm (Maybe [Expression]) -> TypedTerm (Maybe ClassBody) -> TypedTerm EnumConstant
+ Hydra.Java.Dsl.Syntax: enumConstantArguments :: TypedTerm EnumConstant -> TypedTerm (Maybe [Expression])
+ Hydra.Java.Dsl.Syntax: enumConstantBody :: TypedTerm EnumConstant -> TypedTerm (Maybe ClassBody)
+ Hydra.Java.Dsl.Syntax: enumConstantEnumConstant :: TypedName EnumConstant
+ Hydra.Java.Dsl.Syntax: enumConstantIdentifier :: TypedTerm EnumConstant -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: enumConstantModifier :: TypedTerm Annotation -> TypedTerm EnumConstantModifier
+ Hydra.Java.Dsl.Syntax: enumConstantModifierEnumConstantModifier :: TypedName EnumConstantModifier
+ Hydra.Java.Dsl.Syntax: enumConstantModifiers :: TypedTerm EnumConstant -> TypedTerm [EnumConstantModifier]
+ Hydra.Java.Dsl.Syntax: enumConstantWithArguments :: TypedTerm EnumConstant -> TypedTerm (Maybe [Expression]) -> TypedTerm EnumConstant
+ Hydra.Java.Dsl.Syntax: enumConstantWithBody :: TypedTerm EnumConstant -> TypedTerm (Maybe ClassBody) -> TypedTerm EnumConstant
+ Hydra.Java.Dsl.Syntax: enumConstantWithIdentifier :: TypedTerm EnumConstant -> TypedTerm Identifier -> TypedTerm EnumConstant
+ Hydra.Java.Dsl.Syntax: enumConstantWithModifiers :: TypedTerm EnumConstant -> TypedTerm [EnumConstantModifier] -> TypedTerm EnumConstant
+ Hydra.Java.Dsl.Syntax: enumDeclaration :: TypedTerm [ClassModifier] -> TypedTerm TypeIdentifier -> TypedTerm [InterfaceType] -> TypedTerm EnumBody -> TypedTerm EnumDeclaration
+ Hydra.Java.Dsl.Syntax: enumDeclarationBody :: TypedTerm EnumDeclaration -> TypedTerm EnumBody
+ Hydra.Java.Dsl.Syntax: enumDeclarationEnumDeclaration :: TypedName EnumDeclaration
+ Hydra.Java.Dsl.Syntax: enumDeclarationIdentifier :: TypedTerm EnumDeclaration -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: enumDeclarationImplements :: TypedTerm EnumDeclaration -> TypedTerm [InterfaceType]
+ Hydra.Java.Dsl.Syntax: enumDeclarationModifiers :: TypedTerm EnumDeclaration -> TypedTerm [ClassModifier]
+ Hydra.Java.Dsl.Syntax: enumDeclarationWithBody :: TypedTerm EnumDeclaration -> TypedTerm EnumBody -> TypedTerm EnumDeclaration
+ Hydra.Java.Dsl.Syntax: enumDeclarationWithIdentifier :: TypedTerm EnumDeclaration -> TypedTerm TypeIdentifier -> TypedTerm EnumDeclaration
+ Hydra.Java.Dsl.Syntax: enumDeclarationWithImplements :: TypedTerm EnumDeclaration -> TypedTerm [InterfaceType] -> TypedTerm EnumDeclaration
+ Hydra.Java.Dsl.Syntax: enumDeclarationWithModifiers :: TypedTerm EnumDeclaration -> TypedTerm [ClassModifier] -> TypedTerm EnumDeclaration
+ Hydra.Java.Dsl.Syntax: equalityExpressionEqual :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression
+ Hydra.Java.Dsl.Syntax: equalityExpressionEqualityExpression :: TypedName EqualityExpression
+ Hydra.Java.Dsl.Syntax: equalityExpressionNotEqual :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression
+ Hydra.Java.Dsl.Syntax: equalityExpressionUnary :: TypedTerm RelationalExpression -> TypedTerm EqualityExpression
+ Hydra.Java.Dsl.Syntax: equalityExpression_Binary :: TypedTerm EqualityExpression -> TypedTerm RelationalExpression -> TypedTerm EqualityExpression_Binary
+ Hydra.Java.Dsl.Syntax: equalityExpression_BinaryEqualityExpression_Binary :: TypedName EqualityExpression_Binary
+ Hydra.Java.Dsl.Syntax: equalityExpression_BinaryLhs :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression
+ Hydra.Java.Dsl.Syntax: equalityExpression_BinaryRhs :: TypedTerm EqualityExpression_Binary -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: equalityExpression_BinaryWithLhs :: TypedTerm EqualityExpression_Binary -> TypedTerm EqualityExpression -> TypedTerm EqualityExpression_Binary
+ Hydra.Java.Dsl.Syntax: equalityExpression_BinaryWithRhs :: TypedTerm EqualityExpression_Binary -> TypedTerm RelationalExpression -> TypedTerm EqualityExpression_Binary
+ Hydra.Java.Dsl.Syntax: exceptionTypeClass :: TypedTerm ClassType -> TypedTerm ExceptionType
+ Hydra.Java.Dsl.Syntax: exceptionTypeExceptionType :: TypedName ExceptionType
+ Hydra.Java.Dsl.Syntax: exceptionTypeVariable :: TypedTerm TypeVariable -> TypedTerm ExceptionType
+ Hydra.Java.Dsl.Syntax: exclusiveOrExpression :: TypedTerm [AndExpression] -> TypedTerm ExclusiveOrExpression
+ Hydra.Java.Dsl.Syntax: exclusiveOrExpressionExclusiveOrExpression :: TypedName ExclusiveOrExpression
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocation :: TypedTerm [TypeArgument] -> TypedTerm [Expression] -> TypedTerm ExplicitConstructorInvocation_Variant -> TypedTerm ExplicitConstructorInvocation
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocationArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [Expression]
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocationExplicitConstructorInvocation :: TypedName ExplicitConstructorInvocation
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocationTypeArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocationVariant :: TypedTerm ExplicitConstructorInvocation -> TypedTerm ExplicitConstructorInvocation_Variant
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocationWithArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [Expression] -> TypedTerm ExplicitConstructorInvocation
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocationWithTypeArguments :: TypedTerm ExplicitConstructorInvocation -> TypedTerm [TypeArgument] -> TypedTerm ExplicitConstructorInvocation
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocationWithVariant :: TypedTerm ExplicitConstructorInvocation -> TypedTerm ExplicitConstructorInvocation_Variant -> TypedTerm ExplicitConstructorInvocation
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocation_VariantExplicitConstructorInvocation_Variant :: TypedName ExplicitConstructorInvocation_Variant
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocation_VariantPrimary :: TypedTerm Primary -> TypedTerm ExplicitConstructorInvocation_Variant
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocation_VariantSuper :: TypedTerm (Maybe ExpressionName) -> TypedTerm ExplicitConstructorInvocation_Variant
+ Hydra.Java.Dsl.Syntax: explicitConstructorInvocation_VariantThis :: TypedTerm ExplicitConstructorInvocation_Variant
+ Hydra.Java.Dsl.Syntax: expressionAssignment :: TypedTerm AssignmentExpression -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: expressionExpression :: TypedName Expression
+ Hydra.Java.Dsl.Syntax: expressionLambda :: TypedTerm LambdaExpression -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: expressionName :: TypedTerm (Maybe AmbiguousName) -> TypedTerm Identifier -> TypedTerm ExpressionName
+ Hydra.Java.Dsl.Syntax: expressionNameExpressionName :: TypedName ExpressionName
+ Hydra.Java.Dsl.Syntax: expressionNameIdentifier :: TypedTerm ExpressionName -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: expressionNameQualifier :: TypedTerm ExpressionName -> TypedTerm (Maybe AmbiguousName)
+ Hydra.Java.Dsl.Syntax: expressionNameWithIdentifier :: TypedTerm ExpressionName -> TypedTerm Identifier -> TypedTerm ExpressionName
+ Hydra.Java.Dsl.Syntax: expressionNameWithQualifier :: TypedTerm ExpressionName -> TypedTerm (Maybe AmbiguousName) -> TypedTerm ExpressionName
+ Hydra.Java.Dsl.Syntax: expressionStatement :: TypedTerm StatementExpression -> TypedTerm ExpressionStatement
+ Hydra.Java.Dsl.Syntax: expressionStatementExpressionStatement :: TypedName ExpressionStatement
+ Hydra.Java.Dsl.Syntax: fieldAccess :: TypedTerm FieldAccess_Qualifier -> TypedTerm Identifier -> TypedTerm FieldAccess
+ Hydra.Java.Dsl.Syntax: fieldAccessFieldAccess :: TypedName FieldAccess
+ Hydra.Java.Dsl.Syntax: fieldAccessIdentifier :: TypedTerm FieldAccess -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: fieldAccessQualifier :: TypedTerm FieldAccess -> TypedTerm FieldAccess_Qualifier
+ Hydra.Java.Dsl.Syntax: fieldAccessWithIdentifier :: TypedTerm FieldAccess -> TypedTerm Identifier -> TypedTerm FieldAccess
+ Hydra.Java.Dsl.Syntax: fieldAccessWithQualifier :: TypedTerm FieldAccess -> TypedTerm FieldAccess_Qualifier -> TypedTerm FieldAccess
+ Hydra.Java.Dsl.Syntax: fieldAccess_QualifierFieldAccess_Qualifier :: TypedName FieldAccess_Qualifier
+ Hydra.Java.Dsl.Syntax: fieldAccess_QualifierPrimary :: TypedTerm Primary -> TypedTerm FieldAccess_Qualifier
+ Hydra.Java.Dsl.Syntax: fieldAccess_QualifierSuper :: TypedTerm FieldAccess_Qualifier
+ Hydra.Java.Dsl.Syntax: fieldAccess_QualifierTyped :: TypedTerm TypeName -> TypedTerm FieldAccess_Qualifier
+ Hydra.Java.Dsl.Syntax: fieldDeclaration :: TypedTerm [FieldModifier] -> TypedTerm UnannType -> TypedTerm [VariableDeclarator] -> TypedTerm FieldDeclaration
+ Hydra.Java.Dsl.Syntax: fieldDeclarationFieldDeclaration :: TypedName FieldDeclaration
+ Hydra.Java.Dsl.Syntax: fieldDeclarationModifiers :: TypedTerm FieldDeclaration -> TypedTerm [FieldModifier]
+ Hydra.Java.Dsl.Syntax: fieldDeclarationUnannType :: TypedTerm FieldDeclaration -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: fieldDeclarationVariableDeclarators :: TypedTerm FieldDeclaration -> TypedTerm [VariableDeclarator]
+ Hydra.Java.Dsl.Syntax: fieldDeclarationWithModifiers :: TypedTerm FieldDeclaration -> TypedTerm [FieldModifier] -> TypedTerm FieldDeclaration
+ Hydra.Java.Dsl.Syntax: fieldDeclarationWithUnannType :: TypedTerm FieldDeclaration -> TypedTerm UnannType -> TypedTerm FieldDeclaration
+ Hydra.Java.Dsl.Syntax: fieldDeclarationWithVariableDeclarators :: TypedTerm FieldDeclaration -> TypedTerm [VariableDeclarator] -> TypedTerm FieldDeclaration
+ Hydra.Java.Dsl.Syntax: fieldModifierAnnotation :: TypedTerm Annotation -> TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierFieldModifier :: TypedName FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierFinal :: TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierPrivate :: TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierProtected :: TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierPublic :: TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierStatic :: TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierTransient :: TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: fieldModifierVolatile :: TypedTerm FieldModifier
+ Hydra.Java.Dsl.Syntax: finally :: TypedTerm Block -> TypedTerm Finally
+ Hydra.Java.Dsl.Syntax: finallyFinally :: TypedName Finally
+ Hydra.Java.Dsl.Syntax: floatingPointLiteral :: TypedTerm Double -> TypedTerm FloatingPointLiteral
+ Hydra.Java.Dsl.Syntax: floatingPointLiteralFloatingPointLiteral :: TypedName FloatingPointLiteral
+ Hydra.Java.Dsl.Syntax: floatingPointTypeDouble :: TypedTerm FloatingPointType
+ Hydra.Java.Dsl.Syntax: floatingPointTypeFloat :: TypedTerm FloatingPointType
+ Hydra.Java.Dsl.Syntax: floatingPointTypeFloatingPointType :: TypedName FloatingPointType
+ Hydra.Java.Dsl.Syntax: forCond :: TypedTerm (Maybe ForInit) -> TypedTerm (Maybe Expression) -> TypedTerm (Maybe ForUpdate) -> TypedTerm ForCond
+ Hydra.Java.Dsl.Syntax: forCondCond :: TypedTerm ForCond -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: forCondForCond :: TypedName ForCond
+ Hydra.Java.Dsl.Syntax: forCondInit :: TypedTerm ForCond -> TypedTerm (Maybe ForInit)
+ Hydra.Java.Dsl.Syntax: forCondUpdate :: TypedTerm ForCond -> TypedTerm (Maybe ForUpdate)
+ Hydra.Java.Dsl.Syntax: forCondWithCond :: TypedTerm ForCond -> TypedTerm (Maybe Expression) -> TypedTerm ForCond
+ Hydra.Java.Dsl.Syntax: forCondWithInit :: TypedTerm ForCond -> TypedTerm (Maybe ForInit) -> TypedTerm ForCond
+ Hydra.Java.Dsl.Syntax: forCondWithUpdate :: TypedTerm ForCond -> TypedTerm (Maybe ForUpdate) -> TypedTerm ForCond
+ Hydra.Java.Dsl.Syntax: forInitForInit :: TypedName ForInit
+ Hydra.Java.Dsl.Syntax: forInitLocalVariable :: TypedTerm LocalVariableDeclaration -> TypedTerm ForInit
+ Hydra.Java.Dsl.Syntax: forInitStatements :: TypedTerm [StatementExpression] -> TypedTerm ForInit
+ Hydra.Java.Dsl.Syntax: forStatementBasic :: TypedTerm BasicForStatement -> TypedTerm ForStatement
+ Hydra.Java.Dsl.Syntax: forStatementEnhanced :: TypedTerm EnhancedForStatement -> TypedTerm ForStatement
+ Hydra.Java.Dsl.Syntax: forStatementForStatement :: TypedName ForStatement
+ Hydra.Java.Dsl.Syntax: forStatementNoShortIfBasic :: TypedTerm BasicForStatementNoShortIf -> TypedTerm ForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: forStatementNoShortIfEnhanced :: TypedTerm EnhancedForStatementNoShortIf -> TypedTerm ForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: forStatementNoShortIfForStatementNoShortIf :: TypedName ForStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: forUpdate :: TypedTerm [StatementExpression] -> TypedTerm ForUpdate
+ Hydra.Java.Dsl.Syntax: forUpdateForUpdate :: TypedName ForUpdate
+ Hydra.Java.Dsl.Syntax: formalParameterFormalParameter :: TypedName FormalParameter
+ Hydra.Java.Dsl.Syntax: formalParameterSimple :: TypedTerm FormalParameter_Simple -> TypedTerm FormalParameter
+ Hydra.Java.Dsl.Syntax: formalParameterVariableArity :: TypedTerm VariableArityParameter -> TypedTerm FormalParameter
+ Hydra.Java.Dsl.Syntax: formalParameter_Simple :: TypedTerm [VariableModifier] -> TypedTerm UnannType -> TypedTerm VariableDeclaratorId -> TypedTerm FormalParameter_Simple
+ Hydra.Java.Dsl.Syntax: formalParameter_SimpleFormalParameter_Simple :: TypedName FormalParameter_Simple
+ Hydra.Java.Dsl.Syntax: formalParameter_SimpleId :: TypedTerm FormalParameter_Simple -> TypedTerm VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: formalParameter_SimpleModifiers :: TypedTerm FormalParameter_Simple -> TypedTerm [VariableModifier]
+ Hydra.Java.Dsl.Syntax: formalParameter_SimpleType :: TypedTerm FormalParameter_Simple -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: formalParameter_SimpleWithId :: TypedTerm FormalParameter_Simple -> TypedTerm VariableDeclaratorId -> TypedTerm FormalParameter_Simple
+ Hydra.Java.Dsl.Syntax: formalParameter_SimpleWithModifiers :: TypedTerm FormalParameter_Simple -> TypedTerm [VariableModifier] -> TypedTerm FormalParameter_Simple
+ Hydra.Java.Dsl.Syntax: formalParameter_SimpleWithType :: TypedTerm FormalParameter_Simple -> TypedTerm UnannType -> TypedTerm FormalParameter_Simple
+ Hydra.Java.Dsl.Syntax: guard :: TypedTerm Expression -> TypedTerm Guard
+ Hydra.Java.Dsl.Syntax: guardGuard :: TypedName Guard
+ Hydra.Java.Dsl.Syntax: identifier :: TypedTerm String -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: identifierIdentifier :: TypedName Identifier
+ Hydra.Java.Dsl.Syntax: ifThenElseStatement :: TypedTerm (Maybe Expression) -> TypedTerm StatementNoShortIf -> TypedTerm Statement -> TypedTerm IfThenElseStatement
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementCond :: TypedTerm IfThenElseStatement -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementElse :: TypedTerm IfThenElseStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementIfThenElseStatement :: TypedName IfThenElseStatement
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIf :: TypedTerm (Maybe Expression) -> TypedTerm StatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIfCond :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIfElse :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIfIfThenElseStatementNoShortIf :: TypedName IfThenElseStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIfThen :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIfWithCond :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm (Maybe Expression) -> TypedTerm IfThenElseStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIfWithElse :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementNoShortIfWithThen :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementThen :: TypedTerm IfThenElseStatement -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementWithCond :: TypedTerm IfThenElseStatement -> TypedTerm (Maybe Expression) -> TypedTerm IfThenElseStatement
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementWithElse :: TypedTerm IfThenElseStatement -> TypedTerm Statement -> TypedTerm IfThenElseStatement
+ Hydra.Java.Dsl.Syntax: ifThenElseStatementWithThen :: TypedTerm IfThenElseStatement -> TypedTerm StatementNoShortIf -> TypedTerm IfThenElseStatement
+ Hydra.Java.Dsl.Syntax: ifThenStatement :: TypedTerm Expression -> TypedTerm Statement -> TypedTerm IfThenStatement
+ Hydra.Java.Dsl.Syntax: ifThenStatementExpression :: TypedTerm IfThenStatement -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: ifThenStatementIfThenStatement :: TypedName IfThenStatement
+ Hydra.Java.Dsl.Syntax: ifThenStatementStatement :: TypedTerm IfThenStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: ifThenStatementWithExpression :: TypedTerm IfThenStatement -> TypedTerm Expression -> TypedTerm IfThenStatement
+ Hydra.Java.Dsl.Syntax: ifThenStatementWithStatement :: TypedTerm IfThenStatement -> TypedTerm Statement -> TypedTerm IfThenStatement
+ Hydra.Java.Dsl.Syntax: importDeclarationImportDeclaration :: TypedName ImportDeclaration
+ Hydra.Java.Dsl.Syntax: importDeclarationSingleStaticImport :: TypedTerm SingleStaticImportDeclaration -> TypedTerm ImportDeclaration
+ Hydra.Java.Dsl.Syntax: importDeclarationSingleType :: TypedTerm SingleTypeImportDeclaration -> TypedTerm ImportDeclaration
+ Hydra.Java.Dsl.Syntax: importDeclarationStaticImportOnDemand :: TypedTerm StaticImportOnDemandDeclaration -> TypedTerm ImportDeclaration
+ Hydra.Java.Dsl.Syntax: importDeclarationTypeImportOnDemand :: TypedTerm TypeImportOnDemandDeclaration -> TypedTerm ImportDeclaration
+ Hydra.Java.Dsl.Syntax: inclusiveOrExpression :: TypedTerm [ExclusiveOrExpression] -> TypedTerm InclusiveOrExpression
+ Hydra.Java.Dsl.Syntax: inclusiveOrExpressionInclusiveOrExpression :: TypedName InclusiveOrExpression
+ Hydra.Java.Dsl.Syntax: instanceInitializer :: TypedTerm Block -> TypedTerm InstanceInitializer
+ Hydra.Java.Dsl.Syntax: instanceInitializerInstanceInitializer :: TypedName InstanceInitializer
+ Hydra.Java.Dsl.Syntax: instanceofExpression :: TypedTerm RelationalExpression -> TypedTerm InstanceofExpression_Rhs -> TypedTerm InstanceofExpression
+ Hydra.Java.Dsl.Syntax: instanceofExpressionInstanceofExpression :: TypedName InstanceofExpression
+ Hydra.Java.Dsl.Syntax: instanceofExpressionLhs :: TypedTerm InstanceofExpression -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: instanceofExpressionRhs :: TypedTerm InstanceofExpression -> TypedTerm InstanceofExpression_Rhs
+ Hydra.Java.Dsl.Syntax: instanceofExpressionWithLhs :: TypedTerm InstanceofExpression -> TypedTerm RelationalExpression -> TypedTerm InstanceofExpression
+ Hydra.Java.Dsl.Syntax: instanceofExpressionWithRhs :: TypedTerm InstanceofExpression -> TypedTerm InstanceofExpression_Rhs -> TypedTerm InstanceofExpression
+ Hydra.Java.Dsl.Syntax: instanceofExpression_RhsInstanceofExpression_Rhs :: TypedName InstanceofExpression_Rhs
+ Hydra.Java.Dsl.Syntax: instanceofExpression_RhsPattern :: TypedTerm Pattern -> TypedTerm InstanceofExpression_Rhs
+ Hydra.Java.Dsl.Syntax: instanceofExpression_RhsReferenceType :: TypedTerm ReferenceType -> TypedTerm InstanceofExpression_Rhs
+ Hydra.Java.Dsl.Syntax: integerLiteral :: TypedTerm Integer -> TypedTerm IntegerLiteral
+ Hydra.Java.Dsl.Syntax: integerLiteralIntegerLiteral :: TypedName IntegerLiteral
+ Hydra.Java.Dsl.Syntax: integralTypeByte :: TypedTerm IntegralType
+ Hydra.Java.Dsl.Syntax: integralTypeChar :: TypedTerm IntegralType
+ Hydra.Java.Dsl.Syntax: integralTypeInt :: TypedTerm IntegralType
+ Hydra.Java.Dsl.Syntax: integralTypeIntegralType :: TypedName IntegralType
+ Hydra.Java.Dsl.Syntax: integralTypeLong :: TypedTerm IntegralType
+ Hydra.Java.Dsl.Syntax: integralTypeShort :: TypedTerm IntegralType
+ Hydra.Java.Dsl.Syntax: interfaceBody :: TypedTerm [InterfaceMemberDeclarationWithComments] -> TypedTerm InterfaceBody
+ Hydra.Java.Dsl.Syntax: interfaceBodyInterfaceBody :: TypedName InterfaceBody
+ Hydra.Java.Dsl.Syntax: interfaceDeclarationAnnotationInterface :: TypedTerm AnnotationInterfaceDeclaration -> TypedTerm InterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceDeclarationInterfaceDeclaration :: TypedName InterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceDeclarationNormalInterface :: TypedTerm NormalInterfaceDeclaration -> TypedTerm InterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm InterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationConstant :: TypedTerm ConstantDeclaration -> TypedTerm InterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm InterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationInterfaceMemberDeclaration :: TypedName InterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationInterfaceMethod :: TypedTerm InterfaceMethodDeclaration -> TypedTerm InterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationWithComments :: TypedTerm InterfaceMemberDeclaration -> TypedTerm (Maybe String) -> TypedTerm InterfaceMemberDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationWithCommentsComments :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm (Maybe String)
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationWithCommentsInterfaceMemberDeclarationWithComments :: TypedName InterfaceMemberDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationWithCommentsValue :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm InterfaceMemberDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationWithCommentsWithComments :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm (Maybe String) -> TypedTerm InterfaceMemberDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: interfaceMemberDeclarationWithCommentsWithValue :: TypedTerm InterfaceMemberDeclarationWithComments -> TypedTerm InterfaceMemberDeclaration -> TypedTerm InterfaceMemberDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclaration :: TypedTerm [InterfaceMethodModifier] -> TypedTerm MethodHeader -> TypedTerm MethodBody -> TypedTerm InterfaceMethodDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclarationBody :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodBody
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclarationHeader :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodHeader
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclarationInterfaceMethodDeclaration :: TypedName InterfaceMethodDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclarationModifiers :: TypedTerm InterfaceMethodDeclaration -> TypedTerm [InterfaceMethodModifier]
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclarationWithBody :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodBody -> TypedTerm InterfaceMethodDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclarationWithHeader :: TypedTerm InterfaceMethodDeclaration -> TypedTerm MethodHeader -> TypedTerm InterfaceMethodDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMethodDeclarationWithModifiers :: TypedTerm InterfaceMethodDeclaration -> TypedTerm [InterfaceMethodModifier] -> TypedTerm InterfaceMethodDeclaration
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierAbstract :: TypedTerm InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierAnnotation :: TypedTerm Annotation -> TypedTerm InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierDefault :: TypedTerm InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierInterfaceMethodModifier :: TypedName InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierPrivate :: TypedTerm InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierPublic :: TypedTerm InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierStatic :: TypedTerm InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceMethodModifierStrictfp :: TypedTerm InterfaceMethodModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierAbstract :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierAnnotation :: TypedTerm Annotation -> TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierInterfaceModifier :: TypedName InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierNonSealed :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierPrivate :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierProtected :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierPublic :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierSealed :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierStatic :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceModifierStrictfp :: TypedTerm InterfaceModifier
+ Hydra.Java.Dsl.Syntax: interfaceType :: TypedTerm ClassType -> TypedTerm InterfaceType
+ Hydra.Java.Dsl.Syntax: interfaceTypeInterfaceType :: TypedName InterfaceType
+ Hydra.Java.Dsl.Syntax: labeledStatement :: TypedTerm Identifier -> TypedTerm Statement -> TypedTerm LabeledStatement
+ Hydra.Java.Dsl.Syntax: labeledStatementIdentifier :: TypedTerm LabeledStatement -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: labeledStatementLabeledStatement :: TypedName LabeledStatement
+ Hydra.Java.Dsl.Syntax: labeledStatementNoShortIf :: TypedTerm Identifier -> TypedTerm StatementNoShortIf -> TypedTerm LabeledStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: labeledStatementNoShortIfIdentifier :: TypedTerm LabeledStatementNoShortIf -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: labeledStatementNoShortIfLabeledStatementNoShortIf :: TypedName LabeledStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: labeledStatementNoShortIfStatement :: TypedTerm LabeledStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: labeledStatementNoShortIfWithIdentifier :: TypedTerm LabeledStatementNoShortIf -> TypedTerm Identifier -> TypedTerm LabeledStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: labeledStatementNoShortIfWithStatement :: TypedTerm LabeledStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm LabeledStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: labeledStatementStatement :: TypedTerm LabeledStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: labeledStatementWithIdentifier :: TypedTerm LabeledStatement -> TypedTerm Identifier -> TypedTerm LabeledStatement
+ Hydra.Java.Dsl.Syntax: labeledStatementWithStatement :: TypedTerm LabeledStatement -> TypedTerm Statement -> TypedTerm LabeledStatement
+ Hydra.Java.Dsl.Syntax: lambdaBodyBlock :: TypedTerm Block -> TypedTerm LambdaBody
+ Hydra.Java.Dsl.Syntax: lambdaBodyExpression :: TypedTerm Expression -> TypedTerm LambdaBody
+ Hydra.Java.Dsl.Syntax: lambdaBodyLambdaBody :: TypedName LambdaBody
+ Hydra.Java.Dsl.Syntax: lambdaExpression :: TypedTerm LambdaParameters -> TypedTerm LambdaBody -> TypedTerm LambdaExpression
+ Hydra.Java.Dsl.Syntax: lambdaExpressionBody :: TypedTerm LambdaExpression -> TypedTerm LambdaBody
+ Hydra.Java.Dsl.Syntax: lambdaExpressionLambdaExpression :: TypedName LambdaExpression
+ Hydra.Java.Dsl.Syntax: lambdaExpressionParameters :: TypedTerm LambdaExpression -> TypedTerm LambdaParameters
+ Hydra.Java.Dsl.Syntax: lambdaExpressionWithBody :: TypedTerm LambdaExpression -> TypedTerm LambdaBody -> TypedTerm LambdaExpression
+ Hydra.Java.Dsl.Syntax: lambdaExpressionWithParameters :: TypedTerm LambdaExpression -> TypedTerm LambdaParameters -> TypedTerm LambdaExpression
+ Hydra.Java.Dsl.Syntax: lambdaParameterLambdaParameter :: TypedName LambdaParameter
+ Hydra.Java.Dsl.Syntax: lambdaParameterNormal :: TypedTerm LambdaParameter_Normal -> TypedTerm LambdaParameter
+ Hydra.Java.Dsl.Syntax: lambdaParameterTypeLambdaParameterType :: TypedName LambdaParameterType
+ Hydra.Java.Dsl.Syntax: lambdaParameterTypeType :: TypedTerm UnannType -> TypedTerm LambdaParameterType
+ Hydra.Java.Dsl.Syntax: lambdaParameterTypeVar :: TypedTerm LambdaParameterType
+ Hydra.Java.Dsl.Syntax: lambdaParameterVariableArity :: TypedTerm VariableArityParameter -> TypedTerm LambdaParameter
+ Hydra.Java.Dsl.Syntax: lambdaParameter_Normal :: TypedTerm [VariableModifier] -> TypedTerm LambdaParameterType -> TypedTerm VariableDeclaratorId -> TypedTerm LambdaParameter_Normal
+ Hydra.Java.Dsl.Syntax: lambdaParameter_NormalId :: TypedTerm LambdaParameter_Normal -> TypedTerm VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: lambdaParameter_NormalLambdaParameter_Normal :: TypedName LambdaParameter_Normal
+ Hydra.Java.Dsl.Syntax: lambdaParameter_NormalModifiers :: TypedTerm LambdaParameter_Normal -> TypedTerm [VariableModifier]
+ Hydra.Java.Dsl.Syntax: lambdaParameter_NormalType :: TypedTerm LambdaParameter_Normal -> TypedTerm LambdaParameterType
+ Hydra.Java.Dsl.Syntax: lambdaParameter_NormalWithId :: TypedTerm LambdaParameter_Normal -> TypedTerm VariableDeclaratorId -> TypedTerm LambdaParameter_Normal
+ Hydra.Java.Dsl.Syntax: lambdaParameter_NormalWithModifiers :: TypedTerm LambdaParameter_Normal -> TypedTerm [VariableModifier] -> TypedTerm LambdaParameter_Normal
+ Hydra.Java.Dsl.Syntax: lambdaParameter_NormalWithType :: TypedTerm LambdaParameter_Normal -> TypedTerm LambdaParameterType -> TypedTerm LambdaParameter_Normal
+ Hydra.Java.Dsl.Syntax: lambdaParametersLambdaParameters :: TypedName LambdaParameters
+ Hydra.Java.Dsl.Syntax: lambdaParametersSingle :: TypedTerm Identifier -> TypedTerm LambdaParameters
+ Hydra.Java.Dsl.Syntax: lambdaParametersTuple :: TypedTerm [LambdaParameters] -> TypedTerm LambdaParameters
+ Hydra.Java.Dsl.Syntax: leftHandSideArrayAccess :: TypedTerm ArrayAccess -> TypedTerm LeftHandSide
+ Hydra.Java.Dsl.Syntax: leftHandSideExpressionName :: TypedTerm ExpressionName -> TypedTerm LeftHandSide
+ Hydra.Java.Dsl.Syntax: leftHandSideFieldAccess :: TypedTerm FieldAccess -> TypedTerm LeftHandSide
+ Hydra.Java.Dsl.Syntax: leftHandSideLeftHandSide :: TypedName LeftHandSide
+ Hydra.Java.Dsl.Syntax: literalBoolean :: TypedTerm Bool -> TypedTerm Literal
+ Hydra.Java.Dsl.Syntax: literalCharacter :: TypedTerm Int -> TypedTerm Literal
+ Hydra.Java.Dsl.Syntax: literalFloatingPoint :: TypedTerm FloatingPointLiteral -> TypedTerm Literal
+ Hydra.Java.Dsl.Syntax: literalInteger :: TypedTerm IntegerLiteral -> TypedTerm Literal
+ Hydra.Java.Dsl.Syntax: literalLiteral :: TypedName Literal
+ Hydra.Java.Dsl.Syntax: literalNull :: TypedTerm Literal
+ Hydra.Java.Dsl.Syntax: literalString :: TypedTerm StringLiteral -> TypedTerm Literal
+ Hydra.Java.Dsl.Syntax: literalTextBlock :: TypedTerm TextBlock -> TypedTerm Literal
+ Hydra.Java.Dsl.Syntax: localClassOrInterfaceDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm LocalClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: localClassOrInterfaceDeclarationLocalClassOrInterfaceDeclaration :: TypedName LocalClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: localClassOrInterfaceDeclarationNormalInterface :: TypedTerm NormalInterfaceDeclaration -> TypedTerm LocalClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: localVariableDeclaration :: TypedTerm [VariableModifier] -> TypedTerm LocalVariableType -> TypedTerm [VariableDeclarator] -> TypedTerm LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationDeclarators :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableDeclarator]
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationLocalVariableDeclaration :: TypedName LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationModifiers :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableModifier]
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationStatement :: TypedTerm LocalVariableDeclaration -> TypedTerm LocalVariableDeclarationStatement
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationStatementLocalVariableDeclarationStatement :: TypedName LocalVariableDeclarationStatement
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationType :: TypedTerm LocalVariableDeclaration -> TypedTerm LocalVariableType
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationWithDeclarators :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableDeclarator] -> TypedTerm LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationWithModifiers :: TypedTerm LocalVariableDeclaration -> TypedTerm [VariableModifier] -> TypedTerm LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: localVariableDeclarationWithType :: TypedTerm LocalVariableDeclaration -> TypedTerm LocalVariableType -> TypedTerm LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: localVariableTypeLocalVariableType :: TypedName LocalVariableType
+ Hydra.Java.Dsl.Syntax: localVariableTypeType :: TypedTerm UnannType -> TypedTerm LocalVariableType
+ Hydra.Java.Dsl.Syntax: localVariableTypeVar :: TypedTerm LocalVariableType
+ Hydra.Java.Dsl.Syntax: markerAnnotation :: TypedTerm TypeName -> TypedTerm MarkerAnnotation
+ Hydra.Java.Dsl.Syntax: markerAnnotationMarkerAnnotation :: TypedName MarkerAnnotation
+ Hydra.Java.Dsl.Syntax: methodBodyBlock :: TypedTerm Block -> TypedTerm MethodBody
+ Hydra.Java.Dsl.Syntax: methodBodyMethodBody :: TypedName MethodBody
+ Hydra.Java.Dsl.Syntax: methodBodyNone :: TypedTerm MethodBody
+ Hydra.Java.Dsl.Syntax: methodDeclaration :: TypedTerm [Annotation] -> TypedTerm [MethodModifier] -> TypedTerm MethodHeader -> TypedTerm MethodBody -> TypedTerm MethodDeclaration
+ Hydra.Java.Dsl.Syntax: methodDeclarationAnnotations :: TypedTerm MethodDeclaration -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: methodDeclarationBody :: TypedTerm MethodDeclaration -> TypedTerm MethodBody
+ Hydra.Java.Dsl.Syntax: methodDeclarationHeader :: TypedTerm MethodDeclaration -> TypedTerm MethodHeader
+ Hydra.Java.Dsl.Syntax: methodDeclarationMethodDeclaration :: TypedName MethodDeclaration
+ Hydra.Java.Dsl.Syntax: methodDeclarationModifiers :: TypedTerm MethodDeclaration -> TypedTerm [MethodModifier]
+ Hydra.Java.Dsl.Syntax: methodDeclarationWithAnnotations :: TypedTerm MethodDeclaration -> TypedTerm [Annotation] -> TypedTerm MethodDeclaration
+ Hydra.Java.Dsl.Syntax: methodDeclarationWithBody :: TypedTerm MethodDeclaration -> TypedTerm MethodBody -> TypedTerm MethodDeclaration
+ Hydra.Java.Dsl.Syntax: methodDeclarationWithHeader :: TypedTerm MethodDeclaration -> TypedTerm MethodHeader -> TypedTerm MethodDeclaration
+ Hydra.Java.Dsl.Syntax: methodDeclarationWithModifiers :: TypedTerm MethodDeclaration -> TypedTerm [MethodModifier] -> TypedTerm MethodDeclaration
+ Hydra.Java.Dsl.Syntax: methodDeclarator :: TypedTerm Identifier -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm [FormalParameter] -> TypedTerm MethodDeclarator
+ Hydra.Java.Dsl.Syntax: methodDeclaratorFormalParameters :: TypedTerm MethodDeclarator -> TypedTerm [FormalParameter]
+ Hydra.Java.Dsl.Syntax: methodDeclaratorIdentifier :: TypedTerm MethodDeclarator -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: methodDeclaratorMethodDeclarator :: TypedName MethodDeclarator
+ Hydra.Java.Dsl.Syntax: methodDeclaratorReceiverParameter :: TypedTerm MethodDeclarator -> TypedTerm (Maybe ReceiverParameter)
+ Hydra.Java.Dsl.Syntax: methodDeclaratorWithFormalParameters :: TypedTerm MethodDeclarator -> TypedTerm [FormalParameter] -> TypedTerm MethodDeclarator
+ Hydra.Java.Dsl.Syntax: methodDeclaratorWithIdentifier :: TypedTerm MethodDeclarator -> TypedTerm Identifier -> TypedTerm MethodDeclarator
+ Hydra.Java.Dsl.Syntax: methodDeclaratorWithReceiverParameter :: TypedTerm MethodDeclarator -> TypedTerm (Maybe ReceiverParameter) -> TypedTerm MethodDeclarator
+ Hydra.Java.Dsl.Syntax: methodHeader :: TypedTerm [TypeParameter] -> TypedTerm Result -> TypedTerm MethodDeclarator -> TypedTerm (Maybe Throws) -> TypedTerm MethodHeader
+ Hydra.Java.Dsl.Syntax: methodHeaderDeclarator :: TypedTerm MethodHeader -> TypedTerm MethodDeclarator
+ Hydra.Java.Dsl.Syntax: methodHeaderMethodHeader :: TypedName MethodHeader
+ Hydra.Java.Dsl.Syntax: methodHeaderParameters :: TypedTerm MethodHeader -> TypedTerm [TypeParameter]
+ Hydra.Java.Dsl.Syntax: methodHeaderResult :: TypedTerm MethodHeader -> TypedTerm Result
+ Hydra.Java.Dsl.Syntax: methodHeaderThrows :: TypedTerm MethodHeader -> TypedTerm (Maybe Throws)
+ Hydra.Java.Dsl.Syntax: methodHeaderWithDeclarator :: TypedTerm MethodHeader -> TypedTerm MethodDeclarator -> TypedTerm MethodHeader
+ Hydra.Java.Dsl.Syntax: methodHeaderWithParameters :: TypedTerm MethodHeader -> TypedTerm [TypeParameter] -> TypedTerm MethodHeader
+ Hydra.Java.Dsl.Syntax: methodHeaderWithResult :: TypedTerm MethodHeader -> TypedTerm Result -> TypedTerm MethodHeader
+ Hydra.Java.Dsl.Syntax: methodHeaderWithThrows :: TypedTerm MethodHeader -> TypedTerm (Maybe Throws) -> TypedTerm MethodHeader
+ Hydra.Java.Dsl.Syntax: methodInvocation :: TypedTerm MethodInvocation_Header -> TypedTerm [Expression] -> TypedTerm MethodInvocation
+ Hydra.Java.Dsl.Syntax: methodInvocationArguments :: TypedTerm MethodInvocation -> TypedTerm [Expression]
+ Hydra.Java.Dsl.Syntax: methodInvocationHeader :: TypedTerm MethodInvocation -> TypedTerm MethodInvocation_Header
+ Hydra.Java.Dsl.Syntax: methodInvocationMethodInvocation :: TypedName MethodInvocation
+ Hydra.Java.Dsl.Syntax: methodInvocationWithArguments :: TypedTerm MethodInvocation -> TypedTerm [Expression] -> TypedTerm MethodInvocation
+ Hydra.Java.Dsl.Syntax: methodInvocationWithHeader :: TypedTerm MethodInvocation -> TypedTerm MethodInvocation_Header -> TypedTerm MethodInvocation
+ Hydra.Java.Dsl.Syntax: methodInvocation_Complex :: TypedTerm MethodInvocation_Variant -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodInvocation_Complex
+ Hydra.Java.Dsl.Syntax: methodInvocation_ComplexIdentifier :: TypedTerm MethodInvocation_Complex -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: methodInvocation_ComplexMethodInvocation_Complex :: TypedName MethodInvocation_Complex
+ Hydra.Java.Dsl.Syntax: methodInvocation_ComplexTypeArguments :: TypedTerm MethodInvocation_Complex -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: methodInvocation_ComplexVariant :: TypedTerm MethodInvocation_Complex -> TypedTerm MethodInvocation_Variant
+ Hydra.Java.Dsl.Syntax: methodInvocation_ComplexWithIdentifier :: TypedTerm MethodInvocation_Complex -> TypedTerm Identifier -> TypedTerm MethodInvocation_Complex
+ Hydra.Java.Dsl.Syntax: methodInvocation_ComplexWithTypeArguments :: TypedTerm MethodInvocation_Complex -> TypedTerm [TypeArgument] -> TypedTerm MethodInvocation_Complex
+ Hydra.Java.Dsl.Syntax: methodInvocation_ComplexWithVariant :: TypedTerm MethodInvocation_Complex -> TypedTerm MethodInvocation_Variant -> TypedTerm MethodInvocation_Complex
+ Hydra.Java.Dsl.Syntax: methodInvocation_HeaderComplex :: TypedTerm MethodInvocation_Complex -> TypedTerm MethodInvocation_Header
+ Hydra.Java.Dsl.Syntax: methodInvocation_HeaderMethodInvocation_Header :: TypedName MethodInvocation_Header
+ Hydra.Java.Dsl.Syntax: methodInvocation_HeaderSimple :: TypedTerm MethodName -> TypedTerm MethodInvocation_Header
+ Hydra.Java.Dsl.Syntax: methodInvocation_VariantExpression :: TypedTerm ExpressionName -> TypedTerm MethodInvocation_Variant
+ Hydra.Java.Dsl.Syntax: methodInvocation_VariantMethodInvocation_Variant :: TypedName MethodInvocation_Variant
+ Hydra.Java.Dsl.Syntax: methodInvocation_VariantPrimary :: TypedTerm Primary -> TypedTerm MethodInvocation_Variant
+ Hydra.Java.Dsl.Syntax: methodInvocation_VariantSuper :: TypedTerm MethodInvocation_Variant
+ Hydra.Java.Dsl.Syntax: methodInvocation_VariantType :: TypedTerm TypeName -> TypedTerm MethodInvocation_Variant
+ Hydra.Java.Dsl.Syntax: methodInvocation_VariantTypeSuper :: TypedTerm TypeName -> TypedTerm MethodInvocation_Variant
+ Hydra.Java.Dsl.Syntax: methodModifierAbstract :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierAnnotation :: TypedTerm Annotation -> TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierFinal :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierMethodModifier :: TypedName MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierNative :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierPrivate :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierProtected :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierPublic :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierStatic :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierStrictfp :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodModifierSynchronized :: TypedTerm MethodModifier
+ Hydra.Java.Dsl.Syntax: methodName :: TypedTerm Identifier -> TypedTerm MethodName
+ Hydra.Java.Dsl.Syntax: methodNameMethodName :: TypedName MethodName
+ Hydra.Java.Dsl.Syntax: methodReferenceArray :: TypedTerm MethodReference_Array -> TypedTerm MethodReference
+ Hydra.Java.Dsl.Syntax: methodReferenceExpression :: TypedTerm MethodReference_Expression -> TypedTerm MethodReference
+ Hydra.Java.Dsl.Syntax: methodReferenceMethodReference :: TypedName MethodReference
+ Hydra.Java.Dsl.Syntax: methodReferenceNew :: TypedTerm MethodReference_New -> TypedTerm MethodReference
+ Hydra.Java.Dsl.Syntax: methodReferencePrimary :: TypedTerm MethodReference_Primary -> TypedTerm MethodReference
+ Hydra.Java.Dsl.Syntax: methodReferenceReferenceType :: TypedTerm MethodReference_ReferenceType -> TypedTerm MethodReference
+ Hydra.Java.Dsl.Syntax: methodReferenceSuper :: TypedTerm MethodReference_Super -> TypedTerm MethodReference
+ Hydra.Java.Dsl.Syntax: methodReference_Array :: TypedTerm ArrayType -> TypedTerm MethodReference_Array
+ Hydra.Java.Dsl.Syntax: methodReference_ArrayMethodReference_Array :: TypedName MethodReference_Array
+ Hydra.Java.Dsl.Syntax: methodReference_Expression :: TypedTerm ExpressionName -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodReference_Expression
+ Hydra.Java.Dsl.Syntax: methodReference_ExpressionIdentifier :: TypedTerm MethodReference_Expression -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: methodReference_ExpressionMethodReference_Expression :: TypedName MethodReference_Expression
+ Hydra.Java.Dsl.Syntax: methodReference_ExpressionName :: TypedTerm MethodReference_Expression -> TypedTerm ExpressionName
+ Hydra.Java.Dsl.Syntax: methodReference_ExpressionTypeArguments :: TypedTerm MethodReference_Expression -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: methodReference_ExpressionWithIdentifier :: TypedTerm MethodReference_Expression -> TypedTerm Identifier -> TypedTerm MethodReference_Expression
+ Hydra.Java.Dsl.Syntax: methodReference_ExpressionWithName :: TypedTerm MethodReference_Expression -> TypedTerm ExpressionName -> TypedTerm MethodReference_Expression
+ Hydra.Java.Dsl.Syntax: methodReference_ExpressionWithTypeArguments :: TypedTerm MethodReference_Expression -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_Expression
+ Hydra.Java.Dsl.Syntax: methodReference_New :: TypedTerm ClassType -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_New
+ Hydra.Java.Dsl.Syntax: methodReference_NewClassType :: TypedTerm MethodReference_New -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: methodReference_NewMethodReference_New :: TypedName MethodReference_New
+ Hydra.Java.Dsl.Syntax: methodReference_NewTypeArguments :: TypedTerm MethodReference_New -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: methodReference_NewWithClassType :: TypedTerm MethodReference_New -> TypedTerm ClassType -> TypedTerm MethodReference_New
+ Hydra.Java.Dsl.Syntax: methodReference_NewWithTypeArguments :: TypedTerm MethodReference_New -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_New
+ Hydra.Java.Dsl.Syntax: methodReference_Primary :: TypedTerm Primary -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodReference_Primary
+ Hydra.Java.Dsl.Syntax: methodReference_PrimaryIdentifier :: TypedTerm MethodReference_Primary -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: methodReference_PrimaryMethodReference_Primary :: TypedName MethodReference_Primary
+ Hydra.Java.Dsl.Syntax: methodReference_PrimaryPrimary :: TypedTerm MethodReference_Primary -> TypedTerm Primary
+ Hydra.Java.Dsl.Syntax: methodReference_PrimaryTypeArguments :: TypedTerm MethodReference_Primary -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: methodReference_PrimaryWithIdentifier :: TypedTerm MethodReference_Primary -> TypedTerm Identifier -> TypedTerm MethodReference_Primary
+ Hydra.Java.Dsl.Syntax: methodReference_PrimaryWithPrimary :: TypedTerm MethodReference_Primary -> TypedTerm Primary -> TypedTerm MethodReference_Primary
+ Hydra.Java.Dsl.Syntax: methodReference_PrimaryWithTypeArguments :: TypedTerm MethodReference_Primary -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_Primary
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceType :: TypedTerm ReferenceType -> TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm MethodReference_ReferenceType
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceTypeIdentifier :: TypedTerm MethodReference_ReferenceType -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceTypeMethodReference_ReferenceType :: TypedName MethodReference_ReferenceType
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceTypeReferenceType :: TypedTerm MethodReference_ReferenceType -> TypedTerm ReferenceType
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceTypeTypeArguments :: TypedTerm MethodReference_ReferenceType -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceTypeWithIdentifier :: TypedTerm MethodReference_ReferenceType -> TypedTerm Identifier -> TypedTerm MethodReference_ReferenceType
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceTypeWithReferenceType :: TypedTerm MethodReference_ReferenceType -> TypedTerm ReferenceType -> TypedTerm MethodReference_ReferenceType
+ Hydra.Java.Dsl.Syntax: methodReference_ReferenceTypeWithTypeArguments :: TypedTerm MethodReference_ReferenceType -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_ReferenceType
+ Hydra.Java.Dsl.Syntax: methodReference_Super :: TypedTerm [TypeArgument] -> TypedTerm Identifier -> TypedTerm Bool -> TypedTerm MethodReference_Super
+ Hydra.Java.Dsl.Syntax: methodReference_SuperIdentifier :: TypedTerm MethodReference_Super -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: methodReference_SuperMethodReference_Super :: TypedName MethodReference_Super
+ Hydra.Java.Dsl.Syntax: methodReference_SuperSuper :: TypedTerm MethodReference_Super -> TypedTerm Bool
+ Hydra.Java.Dsl.Syntax: methodReference_SuperTypeArguments :: TypedTerm MethodReference_Super -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: methodReference_SuperWithIdentifier :: TypedTerm MethodReference_Super -> TypedTerm Identifier -> TypedTerm MethodReference_Super
+ Hydra.Java.Dsl.Syntax: methodReference_SuperWithSuper :: TypedTerm MethodReference_Super -> TypedTerm Bool -> TypedTerm MethodReference_Super
+ Hydra.Java.Dsl.Syntax: methodReference_SuperWithTypeArguments :: TypedTerm MethodReference_Super -> TypedTerm [TypeArgument] -> TypedTerm MethodReference_Super
+ Hydra.Java.Dsl.Syntax: modularCompilationUnit :: TypedTerm [ImportDeclaration] -> TypedTerm ModuleDeclaration -> TypedTerm ModularCompilationUnit
+ Hydra.Java.Dsl.Syntax: modularCompilationUnitImports :: TypedTerm ModularCompilationUnit -> TypedTerm [ImportDeclaration]
+ Hydra.Java.Dsl.Syntax: modularCompilationUnitModularCompilationUnit :: TypedName ModularCompilationUnit
+ Hydra.Java.Dsl.Syntax: modularCompilationUnitModule :: TypedTerm ModularCompilationUnit -> TypedTerm ModuleDeclaration
+ Hydra.Java.Dsl.Syntax: modularCompilationUnitWithImports :: TypedTerm ModularCompilationUnit -> TypedTerm [ImportDeclaration] -> TypedTerm ModularCompilationUnit
+ Hydra.Java.Dsl.Syntax: modularCompilationUnitWithModule :: TypedTerm ModularCompilationUnit -> TypedTerm ModuleDeclaration -> TypedTerm ModularCompilationUnit
+ Hydra.Java.Dsl.Syntax: moduleDeclaration :: TypedTerm [Annotation] -> TypedTerm Bool -> TypedTerm [Identifier] -> TypedTerm [ModuleDirective] -> TypedTerm ModuleDeclaration
+ Hydra.Java.Dsl.Syntax: moduleDeclarationAnnotations :: TypedTerm ModuleDeclaration -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: moduleDeclarationDirectives :: TypedTerm ModuleDeclaration -> TypedTerm [ModuleDirective]
+ Hydra.Java.Dsl.Syntax: moduleDeclarationIdentifiers :: TypedTerm ModuleDeclaration -> TypedTerm [Identifier]
+ Hydra.Java.Dsl.Syntax: moduleDeclarationModuleDeclaration :: TypedName ModuleDeclaration
+ Hydra.Java.Dsl.Syntax: moduleDeclarationOpen :: TypedTerm ModuleDeclaration -> TypedTerm Bool
+ Hydra.Java.Dsl.Syntax: moduleDeclarationWithAnnotations :: TypedTerm ModuleDeclaration -> TypedTerm [Annotation] -> TypedTerm ModuleDeclaration
+ Hydra.Java.Dsl.Syntax: moduleDeclarationWithDirectives :: TypedTerm ModuleDeclaration -> TypedTerm [ModuleDirective] -> TypedTerm ModuleDeclaration
+ Hydra.Java.Dsl.Syntax: moduleDeclarationWithIdentifiers :: TypedTerm ModuleDeclaration -> TypedTerm [Identifier] -> TypedTerm ModuleDeclaration
+ Hydra.Java.Dsl.Syntax: moduleDeclarationWithOpen :: TypedTerm ModuleDeclaration -> TypedTerm Bool -> TypedTerm ModuleDeclaration
+ Hydra.Java.Dsl.Syntax: moduleDirectiveExports :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm ModuleDirective
+ Hydra.Java.Dsl.Syntax: moduleDirectiveModuleDirective :: TypedName ModuleDirective
+ Hydra.Java.Dsl.Syntax: moduleDirectiveOpens :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm ModuleDirective
+ Hydra.Java.Dsl.Syntax: moduleDirectiveProvides :: TypedTerm ModuleDirective_Provides -> TypedTerm ModuleDirective
+ Hydra.Java.Dsl.Syntax: moduleDirectiveRequires :: TypedTerm ModuleDirective_Requires -> TypedTerm ModuleDirective
+ Hydra.Java.Dsl.Syntax: moduleDirectiveUses :: TypedTerm TypeName -> TypedTerm ModuleDirective
+ Hydra.Java.Dsl.Syntax: moduleDirective_ExportsOrOpens :: TypedTerm PackageName -> TypedTerm [ModuleName] -> TypedTerm ModuleDirective_ExportsOrOpens
+ Hydra.Java.Dsl.Syntax: moduleDirective_ExportsOrOpensModuleDirective_ExportsOrOpens :: TypedName ModuleDirective_ExportsOrOpens
+ Hydra.Java.Dsl.Syntax: moduleDirective_ExportsOrOpensModules :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm [ModuleName]
+ Hydra.Java.Dsl.Syntax: moduleDirective_ExportsOrOpensPackage :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm PackageName
+ Hydra.Java.Dsl.Syntax: moduleDirective_ExportsOrOpensWithModules :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm [ModuleName] -> TypedTerm ModuleDirective_ExportsOrOpens
+ Hydra.Java.Dsl.Syntax: moduleDirective_ExportsOrOpensWithPackage :: TypedTerm ModuleDirective_ExportsOrOpens -> TypedTerm PackageName -> TypedTerm ModuleDirective_ExportsOrOpens
+ Hydra.Java.Dsl.Syntax: moduleDirective_Provides :: TypedTerm TypeName -> TypedTerm [TypeName] -> TypedTerm ModuleDirective_Provides
+ Hydra.Java.Dsl.Syntax: moduleDirective_ProvidesModuleDirective_Provides :: TypedName ModuleDirective_Provides
+ Hydra.Java.Dsl.Syntax: moduleDirective_ProvidesTo :: TypedTerm ModuleDirective_Provides -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: moduleDirective_ProvidesWith :: TypedTerm ModuleDirective_Provides -> TypedTerm [TypeName]
+ Hydra.Java.Dsl.Syntax: moduleDirective_ProvidesWithTo :: TypedTerm ModuleDirective_Provides -> TypedTerm TypeName -> TypedTerm ModuleDirective_Provides
+ Hydra.Java.Dsl.Syntax: moduleDirective_ProvidesWithWith :: TypedTerm ModuleDirective_Provides -> TypedTerm [TypeName] -> TypedTerm ModuleDirective_Provides
+ Hydra.Java.Dsl.Syntax: moduleDirective_Requires :: TypedTerm [RequiresModifier] -> TypedTerm ModuleName -> TypedTerm ModuleDirective_Requires
+ Hydra.Java.Dsl.Syntax: moduleDirective_RequiresModifiers :: TypedTerm ModuleDirective_Requires -> TypedTerm [RequiresModifier]
+ Hydra.Java.Dsl.Syntax: moduleDirective_RequiresModule :: TypedTerm ModuleDirective_Requires -> TypedTerm ModuleName
+ Hydra.Java.Dsl.Syntax: moduleDirective_RequiresModuleDirective_Requires :: TypedName ModuleDirective_Requires
+ Hydra.Java.Dsl.Syntax: moduleDirective_RequiresWithModifiers :: TypedTerm ModuleDirective_Requires -> TypedTerm [RequiresModifier] -> TypedTerm ModuleDirective_Requires
+ Hydra.Java.Dsl.Syntax: moduleDirective_RequiresWithModule :: TypedTerm ModuleDirective_Requires -> TypedTerm ModuleName -> TypedTerm ModuleDirective_Requires
+ Hydra.Java.Dsl.Syntax: moduleName :: TypedTerm Identifier -> TypedTerm (Maybe ModuleName) -> TypedTerm ModuleName
+ Hydra.Java.Dsl.Syntax: moduleNameIdentifier :: TypedTerm ModuleName -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: moduleNameModuleName :: TypedName ModuleName
+ Hydra.Java.Dsl.Syntax: moduleNameName :: TypedTerm ModuleName -> TypedTerm (Maybe ModuleName)
+ Hydra.Java.Dsl.Syntax: moduleNameWithIdentifier :: TypedTerm ModuleName -> TypedTerm Identifier -> TypedTerm ModuleName
+ Hydra.Java.Dsl.Syntax: moduleNameWithName :: TypedTerm ModuleName -> TypedTerm (Maybe ModuleName) -> TypedTerm ModuleName
+ Hydra.Java.Dsl.Syntax: multiplicativeExpressionDivide :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
+ Hydra.Java.Dsl.Syntax: multiplicativeExpressionMod :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
+ Hydra.Java.Dsl.Syntax: multiplicativeExpressionMultiplicativeExpression :: TypedName MultiplicativeExpression
+ Hydra.Java.Dsl.Syntax: multiplicativeExpressionTimes :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
+ Hydra.Java.Dsl.Syntax: multiplicativeExpressionUnary :: TypedTerm UnaryExpression -> TypedTerm MultiplicativeExpression
+ Hydra.Java.Dsl.Syntax: multiplicativeExpression_Binary :: TypedTerm MultiplicativeExpression -> TypedTerm UnaryExpression -> TypedTerm MultiplicativeExpression_Binary
+ Hydra.Java.Dsl.Syntax: multiplicativeExpression_BinaryLhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression
+ Hydra.Java.Dsl.Syntax: multiplicativeExpression_BinaryMultiplicativeExpression_Binary :: TypedName MultiplicativeExpression_Binary
+ Hydra.Java.Dsl.Syntax: multiplicativeExpression_BinaryRhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: multiplicativeExpression_BinaryWithLhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm MultiplicativeExpression -> TypedTerm MultiplicativeExpression_Binary
+ Hydra.Java.Dsl.Syntax: multiplicativeExpression_BinaryWithRhs :: TypedTerm MultiplicativeExpression_Binary -> TypedTerm UnaryExpression -> TypedTerm MultiplicativeExpression_Binary
+ Hydra.Java.Dsl.Syntax: normalAnnotation :: TypedTerm TypeName -> TypedTerm [ElementValuePair] -> TypedTerm NormalAnnotation
+ Hydra.Java.Dsl.Syntax: normalAnnotationNormalAnnotation :: TypedName NormalAnnotation
+ Hydra.Java.Dsl.Syntax: normalAnnotationPairs :: TypedTerm NormalAnnotation -> TypedTerm [ElementValuePair]
+ Hydra.Java.Dsl.Syntax: normalAnnotationTypeName :: TypedTerm NormalAnnotation -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: normalAnnotationWithPairs :: TypedTerm NormalAnnotation -> TypedTerm [ElementValuePair] -> TypedTerm NormalAnnotation
+ Hydra.Java.Dsl.Syntax: normalAnnotationWithTypeName :: TypedTerm NormalAnnotation -> TypedTerm TypeName -> TypedTerm NormalAnnotation
+ Hydra.Java.Dsl.Syntax: normalClassDeclaration :: TypedTerm [ClassModifier] -> TypedTerm TypeIdentifier -> TypedTerm [TypeParameter] -> TypedTerm (Maybe ClassType) -> TypedTerm [InterfaceType] -> TypedTerm [TypeName] -> TypedTerm ClassBody -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationBody :: TypedTerm NormalClassDeclaration -> TypedTerm ClassBody
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationExtends :: TypedTerm NormalClassDeclaration -> TypedTerm (Maybe ClassType)
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationIdentifier :: TypedTerm NormalClassDeclaration -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationImplements :: TypedTerm NormalClassDeclaration -> TypedTerm [InterfaceType]
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationModifiers :: TypedTerm NormalClassDeclaration -> TypedTerm [ClassModifier]
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationNormalClassDeclaration :: TypedName NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationParameters :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeParameter]
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationPermits :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeName]
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationWithBody :: TypedTerm NormalClassDeclaration -> TypedTerm ClassBody -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationWithExtends :: TypedTerm NormalClassDeclaration -> TypedTerm (Maybe ClassType) -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationWithIdentifier :: TypedTerm NormalClassDeclaration -> TypedTerm TypeIdentifier -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationWithImplements :: TypedTerm NormalClassDeclaration -> TypedTerm [InterfaceType] -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationWithModifiers :: TypedTerm NormalClassDeclaration -> TypedTerm [ClassModifier] -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationWithParameters :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeParameter] -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalClassDeclarationWithPermits :: TypedTerm NormalClassDeclaration -> TypedTerm [TypeName] -> TypedTerm NormalClassDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclaration :: TypedTerm [InterfaceModifier] -> TypedTerm TypeIdentifier -> TypedTerm [TypeParameter] -> TypedTerm [InterfaceType] -> TypedTerm [TypeName] -> TypedTerm InterfaceBody -> TypedTerm NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationBody :: TypedTerm NormalInterfaceDeclaration -> TypedTerm InterfaceBody
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationExtends :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceType]
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationIdentifier :: TypedTerm NormalInterfaceDeclaration -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationModifiers :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceModifier]
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationNormalInterfaceDeclaration :: TypedName NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationParameters :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeParameter]
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationPermits :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeName]
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationWithBody :: TypedTerm NormalInterfaceDeclaration -> TypedTerm InterfaceBody -> TypedTerm NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationWithExtends :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceType] -> TypedTerm NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationWithIdentifier :: TypedTerm NormalInterfaceDeclaration -> TypedTerm TypeIdentifier -> TypedTerm NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationWithModifiers :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [InterfaceModifier] -> TypedTerm NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationWithParameters :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeParameter] -> TypedTerm NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: normalInterfaceDeclarationWithPermits :: TypedTerm NormalInterfaceDeclaration -> TypedTerm [TypeName] -> TypedTerm NormalInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: numericTypeArrayArray :: TypedTerm NumericTypeArray -> TypedTerm NumericTypeArray
+ Hydra.Java.Dsl.Syntax: numericTypeArrayNumericTypeArray :: TypedName NumericTypeArray
+ Hydra.Java.Dsl.Syntax: numericTypeArraySimple :: TypedTerm NumericType -> TypedTerm NumericTypeArray
+ Hydra.Java.Dsl.Syntax: numericTypeFloatingPoint :: TypedTerm FloatingPointType -> TypedTerm NumericType
+ Hydra.Java.Dsl.Syntax: numericTypeIntegral :: TypedTerm IntegralType -> TypedTerm NumericType
+ Hydra.Java.Dsl.Syntax: numericTypeNumericType :: TypedName NumericType
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnit :: TypedTerm (Maybe PackageDeclaration) -> TypedTerm [ImportDeclaration] -> TypedTerm [TopLevelClassOrInterfaceDeclarationWithComments] -> TypedTerm OrdinaryCompilationUnit
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnitImports :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [ImportDeclaration]
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnitOrdinaryCompilationUnit :: TypedName OrdinaryCompilationUnit
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnitPackage :: TypedTerm OrdinaryCompilationUnit -> TypedTerm (Maybe PackageDeclaration)
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnitTypes :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [TopLevelClassOrInterfaceDeclarationWithComments]
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnitWithImports :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [ImportDeclaration] -> TypedTerm OrdinaryCompilationUnit
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnitWithPackage :: TypedTerm OrdinaryCompilationUnit -> TypedTerm (Maybe PackageDeclaration) -> TypedTerm OrdinaryCompilationUnit
+ Hydra.Java.Dsl.Syntax: ordinaryCompilationUnitWithTypes :: TypedTerm OrdinaryCompilationUnit -> TypedTerm [TopLevelClassOrInterfaceDeclarationWithComments] -> TypedTerm OrdinaryCompilationUnit
+ Hydra.Java.Dsl.Syntax: packageDeclaration :: TypedTerm [PackageModifier] -> TypedTerm [Identifier] -> TypedTerm PackageDeclaration
+ Hydra.Java.Dsl.Syntax: packageDeclarationIdentifiers :: TypedTerm PackageDeclaration -> TypedTerm [Identifier]
+ Hydra.Java.Dsl.Syntax: packageDeclarationModifiers :: TypedTerm PackageDeclaration -> TypedTerm [PackageModifier]
+ Hydra.Java.Dsl.Syntax: packageDeclarationPackageDeclaration :: TypedName PackageDeclaration
+ Hydra.Java.Dsl.Syntax: packageDeclarationWithIdentifiers :: TypedTerm PackageDeclaration -> TypedTerm [Identifier] -> TypedTerm PackageDeclaration
+ Hydra.Java.Dsl.Syntax: packageDeclarationWithModifiers :: TypedTerm PackageDeclaration -> TypedTerm [PackageModifier] -> TypedTerm PackageDeclaration
+ Hydra.Java.Dsl.Syntax: packageModifier :: TypedTerm Annotation -> TypedTerm PackageModifier
+ Hydra.Java.Dsl.Syntax: packageModifierPackageModifier :: TypedName PackageModifier
+ Hydra.Java.Dsl.Syntax: packageName :: TypedTerm [Identifier] -> TypedTerm PackageName
+ Hydra.Java.Dsl.Syntax: packageNamePackageName :: TypedName PackageName
+ Hydra.Java.Dsl.Syntax: packageOrTypeName :: TypedTerm [Identifier] -> TypedTerm PackageOrTypeName
+ Hydra.Java.Dsl.Syntax: packageOrTypeNamePackageOrTypeName :: TypedName PackageOrTypeName
+ Hydra.Java.Dsl.Syntax: patternPattern :: TypedName Pattern
+ Hydra.Java.Dsl.Syntax: patternRecord :: TypedTerm RecordPattern -> TypedTerm Pattern
+ Hydra.Java.Dsl.Syntax: patternType :: TypedTerm TypePattern -> TypedTerm Pattern
+ Hydra.Java.Dsl.Syntax: postDecrementExpression :: TypedTerm PostfixExpression -> TypedTerm PostDecrementExpression
+ Hydra.Java.Dsl.Syntax: postDecrementExpressionPostDecrementExpression :: TypedName PostDecrementExpression
+ Hydra.Java.Dsl.Syntax: postIncrementExpression :: TypedTerm PostfixExpression -> TypedTerm PostIncrementExpression
+ Hydra.Java.Dsl.Syntax: postIncrementExpressionPostIncrementExpression :: TypedName PostIncrementExpression
+ Hydra.Java.Dsl.Syntax: postfixExpressionName :: TypedTerm ExpressionName -> TypedTerm PostfixExpression
+ Hydra.Java.Dsl.Syntax: postfixExpressionPostDecrement :: TypedTerm PostDecrementExpression -> TypedTerm PostfixExpression
+ Hydra.Java.Dsl.Syntax: postfixExpressionPostIncrement :: TypedTerm PostIncrementExpression -> TypedTerm PostfixExpression
+ Hydra.Java.Dsl.Syntax: postfixExpressionPostfixExpression :: TypedName PostfixExpression
+ Hydra.Java.Dsl.Syntax: postfixExpressionPrimary :: TypedTerm Primary -> TypedTerm PostfixExpression
+ Hydra.Java.Dsl.Syntax: preDecrementExpression :: TypedTerm UnaryExpression -> TypedTerm PreDecrementExpression
+ Hydra.Java.Dsl.Syntax: preDecrementExpressionPreDecrementExpression :: TypedName PreDecrementExpression
+ Hydra.Java.Dsl.Syntax: preIncrementExpression :: TypedTerm UnaryExpression -> TypedTerm PreIncrementExpression
+ Hydra.Java.Dsl.Syntax: preIncrementExpressionPreIncrementExpression :: TypedName PreIncrementExpression
+ Hydra.Java.Dsl.Syntax: primaryArrayCreation :: TypedTerm ArrayCreationExpression -> TypedTerm Primary
+ Hydra.Java.Dsl.Syntax: primaryNoNewArray :: TypedTerm PrimaryNoNewArrayExpression -> TypedTerm Primary
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionArrayAccess :: TypedTerm ArrayAccess -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionClassInstance :: TypedTerm ClassInstanceCreationExpression -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionClassLiteral :: TypedTerm ClassLiteral -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionDotThis :: TypedTerm TypeName -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionFieldAccess :: TypedTerm FieldAccess -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionLiteral :: TypedTerm Literal -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionMethodInvocation :: TypedTerm MethodInvocation -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionMethodReference :: TypedTerm MethodReference -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionParens :: TypedTerm Expression -> TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionPrimaryNoNewArrayExpression :: TypedName PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryNoNewArrayExpressionThis :: TypedTerm PrimaryNoNewArrayExpression
+ Hydra.Java.Dsl.Syntax: primaryPrimary :: TypedName Primary
+ Hydra.Java.Dsl.Syntax: primitiveTypeBoolean :: TypedTerm PrimitiveType
+ Hydra.Java.Dsl.Syntax: primitiveTypeNumeric :: TypedTerm NumericType -> TypedTerm PrimitiveType
+ Hydra.Java.Dsl.Syntax: primitiveTypePrimitiveType :: TypedName PrimitiveType
+ Hydra.Java.Dsl.Syntax: primitiveTypeWithAnnotations :: TypedTerm PrimitiveType -> TypedTerm [Annotation] -> TypedTerm PrimitiveTypeWithAnnotations
+ Hydra.Java.Dsl.Syntax: primitiveTypeWithAnnotationsAnnotations :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: primitiveTypeWithAnnotationsPrimitiveTypeWithAnnotations :: TypedName PrimitiveTypeWithAnnotations
+ Hydra.Java.Dsl.Syntax: primitiveTypeWithAnnotationsType :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm PrimitiveType
+ Hydra.Java.Dsl.Syntax: primitiveTypeWithAnnotationsWithAnnotations :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm [Annotation] -> TypedTerm PrimitiveTypeWithAnnotations
+ Hydra.Java.Dsl.Syntax: primitiveTypeWithAnnotationsWithType :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm PrimitiveType -> TypedTerm PrimitiveTypeWithAnnotations
+ Hydra.Java.Dsl.Syntax: receiverParameter :: TypedTerm [Annotation] -> TypedTerm UnannType -> TypedTerm (Maybe Identifier) -> TypedTerm ReceiverParameter
+ Hydra.Java.Dsl.Syntax: receiverParameterAnnotations :: TypedTerm ReceiverParameter -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: receiverParameterIdentifier :: TypedTerm ReceiverParameter -> TypedTerm (Maybe Identifier)
+ Hydra.Java.Dsl.Syntax: receiverParameterReceiverParameter :: TypedName ReceiverParameter
+ Hydra.Java.Dsl.Syntax: receiverParameterUnannType :: TypedTerm ReceiverParameter -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: receiverParameterWithAnnotations :: TypedTerm ReceiverParameter -> TypedTerm [Annotation] -> TypedTerm ReceiverParameter
+ Hydra.Java.Dsl.Syntax: receiverParameterWithIdentifier :: TypedTerm ReceiverParameter -> TypedTerm (Maybe Identifier) -> TypedTerm ReceiverParameter
+ Hydra.Java.Dsl.Syntax: receiverParameterWithUnannType :: TypedTerm ReceiverParameter -> TypedTerm UnannType -> TypedTerm ReceiverParameter
+ Hydra.Java.Dsl.Syntax: recordBody :: TypedTerm [RecordBodyDeclaration] -> TypedTerm RecordBody
+ Hydra.Java.Dsl.Syntax: recordBodyDeclarationClassBody :: TypedTerm ClassBodyDeclaration -> TypedTerm RecordBodyDeclaration
+ Hydra.Java.Dsl.Syntax: recordBodyDeclarationCompactConstructor :: TypedTerm CompactConstructorDeclaration -> TypedTerm RecordBodyDeclaration
+ Hydra.Java.Dsl.Syntax: recordBodyDeclarationRecordBodyDeclaration :: TypedName RecordBodyDeclaration
+ Hydra.Java.Dsl.Syntax: recordBodyRecordBody :: TypedName RecordBody
+ Hydra.Java.Dsl.Syntax: recordComponentModifier :: TypedTerm Annotation -> TypedTerm RecordComponentModifier
+ Hydra.Java.Dsl.Syntax: recordComponentModifierRecordComponentModifier :: TypedName RecordComponentModifier
+ Hydra.Java.Dsl.Syntax: recordComponentRecordComponent :: TypedName RecordComponent
+ Hydra.Java.Dsl.Syntax: recordComponentSimple :: TypedTerm RecordComponent_Simple -> TypedTerm RecordComponent
+ Hydra.Java.Dsl.Syntax: recordComponentVariableArity :: TypedTerm VariableArityRecordComponent -> TypedTerm RecordComponent
+ Hydra.Java.Dsl.Syntax: recordComponent_Simple :: TypedTerm [RecordComponentModifier] -> TypedTerm UnannType -> TypedTerm Identifier -> TypedTerm RecordComponent_Simple
+ Hydra.Java.Dsl.Syntax: recordComponent_SimpleIdentifier :: TypedTerm RecordComponent_Simple -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: recordComponent_SimpleModifiers :: TypedTerm RecordComponent_Simple -> TypedTerm [RecordComponentModifier]
+ Hydra.Java.Dsl.Syntax: recordComponent_SimpleRecordComponent_Simple :: TypedName RecordComponent_Simple
+ Hydra.Java.Dsl.Syntax: recordComponent_SimpleType :: TypedTerm RecordComponent_Simple -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: recordComponent_SimpleWithIdentifier :: TypedTerm RecordComponent_Simple -> TypedTerm Identifier -> TypedTerm RecordComponent_Simple
+ Hydra.Java.Dsl.Syntax: recordComponent_SimpleWithModifiers :: TypedTerm RecordComponent_Simple -> TypedTerm [RecordComponentModifier] -> TypedTerm RecordComponent_Simple
+ Hydra.Java.Dsl.Syntax: recordComponent_SimpleWithType :: TypedTerm RecordComponent_Simple -> TypedTerm UnannType -> TypedTerm RecordComponent_Simple
+ Hydra.Java.Dsl.Syntax: recordDeclaration :: TypedTerm [ClassModifier] -> TypedTerm TypeIdentifier -> TypedTerm [TypeParameter] -> TypedTerm RecordHeader -> TypedTerm [InterfaceType] -> TypedTerm RecordBody -> TypedTerm RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordDeclarationBody :: TypedTerm RecordDeclaration -> TypedTerm RecordBody
+ Hydra.Java.Dsl.Syntax: recordDeclarationHeader :: TypedTerm RecordDeclaration -> TypedTerm RecordHeader
+ Hydra.Java.Dsl.Syntax: recordDeclarationIdentifier :: TypedTerm RecordDeclaration -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: recordDeclarationImplements :: TypedTerm RecordDeclaration -> TypedTerm [InterfaceType]
+ Hydra.Java.Dsl.Syntax: recordDeclarationModifiers :: TypedTerm RecordDeclaration -> TypedTerm [ClassModifier]
+ Hydra.Java.Dsl.Syntax: recordDeclarationParameters :: TypedTerm RecordDeclaration -> TypedTerm [TypeParameter]
+ Hydra.Java.Dsl.Syntax: recordDeclarationRecordDeclaration :: TypedName RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordDeclarationWithBody :: TypedTerm RecordDeclaration -> TypedTerm RecordBody -> TypedTerm RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordDeclarationWithHeader :: TypedTerm RecordDeclaration -> TypedTerm RecordHeader -> TypedTerm RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordDeclarationWithIdentifier :: TypedTerm RecordDeclaration -> TypedTerm TypeIdentifier -> TypedTerm RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordDeclarationWithImplements :: TypedTerm RecordDeclaration -> TypedTerm [InterfaceType] -> TypedTerm RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordDeclarationWithModifiers :: TypedTerm RecordDeclaration -> TypedTerm [ClassModifier] -> TypedTerm RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordDeclarationWithParameters :: TypedTerm RecordDeclaration -> TypedTerm [TypeParameter] -> TypedTerm RecordDeclaration
+ Hydra.Java.Dsl.Syntax: recordHeader :: TypedTerm [RecordComponent] -> TypedTerm RecordHeader
+ Hydra.Java.Dsl.Syntax: recordHeaderRecordHeader :: TypedName RecordHeader
+ Hydra.Java.Dsl.Syntax: recordPattern :: TypedTerm ReferenceType -> TypedTerm [Pattern] -> TypedTerm RecordPattern
+ Hydra.Java.Dsl.Syntax: recordPatternPatterns :: TypedTerm RecordPattern -> TypedTerm [Pattern]
+ Hydra.Java.Dsl.Syntax: recordPatternRecordPattern :: TypedName RecordPattern
+ Hydra.Java.Dsl.Syntax: recordPatternType :: TypedTerm RecordPattern -> TypedTerm ReferenceType
+ Hydra.Java.Dsl.Syntax: recordPatternWithPatterns :: TypedTerm RecordPattern -> TypedTerm [Pattern] -> TypedTerm RecordPattern
+ Hydra.Java.Dsl.Syntax: recordPatternWithType :: TypedTerm RecordPattern -> TypedTerm ReferenceType -> TypedTerm RecordPattern
+ Hydra.Java.Dsl.Syntax: referenceTypeArray :: TypedTerm ArrayType -> TypedTerm ReferenceType
+ Hydra.Java.Dsl.Syntax: referenceTypeClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm ReferenceType
+ Hydra.Java.Dsl.Syntax: referenceTypeReferenceType :: TypedName ReferenceType
+ Hydra.Java.Dsl.Syntax: referenceTypeVariable :: TypedTerm TypeVariable -> TypedTerm ReferenceType
+ Hydra.Java.Dsl.Syntax: relationalExpressionGreaterThan :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpressionGreaterThanEqual :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpressionInstanceofExpression :: TypedTerm InstanceofExpression -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpressionLessThan :: TypedTerm RelationalExpression_LessThan -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpressionLessThanEqual :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpressionRelationalExpression :: TypedName RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpressionSimple :: TypedTerm ShiftExpression -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThan :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThan
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanEqual :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanEqualLhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanEqualRelationalExpression_GreaterThanEqual :: TypedName RelationalExpression_GreaterThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanEqualRhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanEqualWithLhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_GreaterThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanEqualWithRhs :: TypedTerm RelationalExpression_GreaterThanEqual -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanLhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanRelationalExpression_GreaterThan :: TypedName RelationalExpression_GreaterThan
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanRhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanWithLhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_GreaterThan
+ Hydra.Java.Dsl.Syntax: relationalExpression_GreaterThanWithRhs :: TypedTerm RelationalExpression_GreaterThan -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_GreaterThan
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThan :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThan
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanEqual :: TypedTerm RelationalExpression -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanEqualLhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanEqualRelationalExpression_LessThanEqual :: TypedName RelationalExpression_LessThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanEqualRhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanEqualWithLhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_LessThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanEqualWithRhs :: TypedTerm RelationalExpression_LessThanEqual -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThanEqual
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanLhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm RelationalExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanRelationalExpression_LessThan :: TypedName RelationalExpression_LessThan
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanRhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanWithLhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm RelationalExpression -> TypedTerm RelationalExpression_LessThan
+ Hydra.Java.Dsl.Syntax: relationalExpression_LessThanWithRhs :: TypedTerm RelationalExpression_LessThan -> TypedTerm ShiftExpression -> TypedTerm RelationalExpression_LessThan
+ Hydra.Java.Dsl.Syntax: requiresModifierRequiresModifier :: TypedName RequiresModifier
+ Hydra.Java.Dsl.Syntax: requiresModifierStatic :: TypedTerm RequiresModifier
+ Hydra.Java.Dsl.Syntax: requiresModifierTransitive :: TypedTerm RequiresModifier
+ Hydra.Java.Dsl.Syntax: resourceLocal :: TypedTerm Resource_Local -> TypedTerm Resource
+ Hydra.Java.Dsl.Syntax: resourceResource :: TypedName Resource
+ Hydra.Java.Dsl.Syntax: resourceSpecification :: TypedTerm [Resource] -> TypedTerm ResourceSpecification
+ Hydra.Java.Dsl.Syntax: resourceSpecificationResourceSpecification :: TypedName ResourceSpecification
+ Hydra.Java.Dsl.Syntax: resourceVariable :: TypedTerm VariableAccess -> TypedTerm Resource
+ Hydra.Java.Dsl.Syntax: resource_Local :: TypedTerm [VariableModifier] -> TypedTerm LocalVariableType -> TypedTerm Identifier -> TypedTerm Expression -> TypedTerm Resource_Local
+ Hydra.Java.Dsl.Syntax: resource_LocalExpression :: TypedTerm Resource_Local -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: resource_LocalIdentifier :: TypedTerm Resource_Local -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: resource_LocalModifiers :: TypedTerm Resource_Local -> TypedTerm [VariableModifier]
+ Hydra.Java.Dsl.Syntax: resource_LocalResource_Local :: TypedName Resource_Local
+ Hydra.Java.Dsl.Syntax: resource_LocalType :: TypedTerm Resource_Local -> TypedTerm LocalVariableType
+ Hydra.Java.Dsl.Syntax: resource_LocalWithExpression :: TypedTerm Resource_Local -> TypedTerm Expression -> TypedTerm Resource_Local
+ Hydra.Java.Dsl.Syntax: resource_LocalWithIdentifier :: TypedTerm Resource_Local -> TypedTerm Identifier -> TypedTerm Resource_Local
+ Hydra.Java.Dsl.Syntax: resource_LocalWithModifiers :: TypedTerm Resource_Local -> TypedTerm [VariableModifier] -> TypedTerm Resource_Local
+ Hydra.Java.Dsl.Syntax: resource_LocalWithType :: TypedTerm Resource_Local -> TypedTerm LocalVariableType -> TypedTerm Resource_Local
+ Hydra.Java.Dsl.Syntax: resultResult :: TypedName Result
+ Hydra.Java.Dsl.Syntax: resultType :: TypedTerm UnannType -> TypedTerm Result
+ Hydra.Java.Dsl.Syntax: resultVoid :: TypedTerm Result
+ Hydra.Java.Dsl.Syntax: returnStatement :: TypedTerm (Maybe Expression) -> TypedTerm ReturnStatement
+ Hydra.Java.Dsl.Syntax: returnStatementReturnStatement :: TypedName ReturnStatement
+ Hydra.Java.Dsl.Syntax: shiftExpressionShiftExpression :: TypedName ShiftExpression
+ Hydra.Java.Dsl.Syntax: shiftExpressionShiftLeft :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: shiftExpressionShiftRight :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: shiftExpressionShiftRightZeroFill :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: shiftExpressionUnary :: TypedTerm AdditiveExpression -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: shiftExpression_Binary :: TypedTerm ShiftExpression -> TypedTerm AdditiveExpression -> TypedTerm ShiftExpression_Binary
+ Hydra.Java.Dsl.Syntax: shiftExpression_BinaryLhs :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression
+ Hydra.Java.Dsl.Syntax: shiftExpression_BinaryRhs :: TypedTerm ShiftExpression_Binary -> TypedTerm AdditiveExpression
+ Hydra.Java.Dsl.Syntax: shiftExpression_BinaryShiftExpression_Binary :: TypedName ShiftExpression_Binary
+ Hydra.Java.Dsl.Syntax: shiftExpression_BinaryWithLhs :: TypedTerm ShiftExpression_Binary -> TypedTerm ShiftExpression -> TypedTerm ShiftExpression_Binary
+ Hydra.Java.Dsl.Syntax: shiftExpression_BinaryWithRhs :: TypedTerm ShiftExpression_Binary -> TypedTerm AdditiveExpression -> TypedTerm ShiftExpression_Binary
+ Hydra.Java.Dsl.Syntax: simpleTypeName :: TypedTerm TypeIdentifier -> TypedTerm SimpleTypeName
+ Hydra.Java.Dsl.Syntax: simpleTypeNameSimpleTypeName :: TypedName SimpleTypeName
+ Hydra.Java.Dsl.Syntax: singleElementAnnotation :: TypedTerm TypeName -> TypedTerm (Maybe ElementValue) -> TypedTerm SingleElementAnnotation
+ Hydra.Java.Dsl.Syntax: singleElementAnnotationName :: TypedTerm SingleElementAnnotation -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: singleElementAnnotationSingleElementAnnotation :: TypedName SingleElementAnnotation
+ Hydra.Java.Dsl.Syntax: singleElementAnnotationValue :: TypedTerm SingleElementAnnotation -> TypedTerm (Maybe ElementValue)
+ Hydra.Java.Dsl.Syntax: singleElementAnnotationWithName :: TypedTerm SingleElementAnnotation -> TypedTerm TypeName -> TypedTerm SingleElementAnnotation
+ Hydra.Java.Dsl.Syntax: singleElementAnnotationWithValue :: TypedTerm SingleElementAnnotation -> TypedTerm (Maybe ElementValue) -> TypedTerm SingleElementAnnotation
+ Hydra.Java.Dsl.Syntax: singleStaticImportDeclaration :: TypedTerm TypeName -> TypedTerm Identifier -> TypedTerm SingleStaticImportDeclaration
+ Hydra.Java.Dsl.Syntax: singleStaticImportDeclarationIdentifier :: TypedTerm SingleStaticImportDeclaration -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: singleStaticImportDeclarationSingleStaticImportDeclaration :: TypedName SingleStaticImportDeclaration
+ Hydra.Java.Dsl.Syntax: singleStaticImportDeclarationTypeName :: TypedTerm SingleStaticImportDeclaration -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: singleStaticImportDeclarationWithIdentifier :: TypedTerm SingleStaticImportDeclaration -> TypedTerm Identifier -> TypedTerm SingleStaticImportDeclaration
+ Hydra.Java.Dsl.Syntax: singleStaticImportDeclarationWithTypeName :: TypedTerm SingleStaticImportDeclaration -> TypedTerm TypeName -> TypedTerm SingleStaticImportDeclaration
+ Hydra.Java.Dsl.Syntax: singleTypeImportDeclaration :: TypedTerm TypeName -> TypedTerm SingleTypeImportDeclaration
+ Hydra.Java.Dsl.Syntax: singleTypeImportDeclarationSingleTypeImportDeclaration :: TypedName SingleTypeImportDeclaration
+ Hydra.Java.Dsl.Syntax: statementExpressionAssignment :: TypedTerm Assignment -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: statementExpressionClassInstanceCreation :: TypedTerm ClassInstanceCreationExpression -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: statementExpressionMethodInvocation :: TypedTerm MethodInvocation -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: statementExpressionPostDecrement :: TypedTerm PostDecrementExpression -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: statementExpressionPostIncrement :: TypedTerm PostIncrementExpression -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: statementExpressionPreDecrement :: TypedTerm PreDecrementExpression -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: statementExpressionPreIncrement :: TypedTerm PreIncrementExpression -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: statementExpressionStatementExpression :: TypedName StatementExpression
+ Hydra.Java.Dsl.Syntax: statementFor :: TypedTerm ForStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: statementIfThen :: TypedTerm IfThenStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: statementIfThenElse :: TypedTerm IfThenElseStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: statementLabeled :: TypedTerm LabeledStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: statementNoShortIfFor :: TypedTerm ForStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: statementNoShortIfIfThenElse :: TypedTerm IfThenElseStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: statementNoShortIfLabeled :: TypedTerm LabeledStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: statementNoShortIfStatementNoShortIf :: TypedName StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: statementNoShortIfWhile :: TypedTerm WhileStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: statementNoShortIfWithoutTrailing :: TypedTerm StatementWithoutTrailingSubstatement -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: statementStatement :: TypedName Statement
+ Hydra.Java.Dsl.Syntax: statementWhile :: TypedTerm WhileStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailing :: TypedTerm StatementWithoutTrailingSubstatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementAssert :: TypedTerm AssertStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementBlock :: TypedTerm Block -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementBreak :: TypedTerm BreakStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementContinue :: TypedTerm ContinueStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementDo :: TypedTerm DoStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementEmpty :: TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementExpression :: TypedTerm ExpressionStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementReturn :: TypedTerm ReturnStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementStatementWithoutTrailingSubstatement :: TypedName StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementSwitch :: TypedTerm SwitchStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementSynchronized :: TypedTerm SynchronizedStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementThrow :: TypedTerm ThrowStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementTry :: TypedTerm TryStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: statementWithoutTrailingSubstatementYield :: TypedTerm YieldStatement -> TypedTerm StatementWithoutTrailingSubstatement
+ Hydra.Java.Dsl.Syntax: staticImportOnDemandDeclaration :: TypedTerm TypeName -> TypedTerm StaticImportOnDemandDeclaration
+ Hydra.Java.Dsl.Syntax: staticImportOnDemandDeclarationStaticImportOnDemandDeclaration :: TypedName StaticImportOnDemandDeclaration
+ Hydra.Java.Dsl.Syntax: staticInitializer :: TypedTerm Block -> TypedTerm StaticInitializer
+ Hydra.Java.Dsl.Syntax: staticInitializerStaticInitializer :: TypedName StaticInitializer
+ Hydra.Java.Dsl.Syntax: stringLiteral :: TypedTerm String -> TypedTerm StringLiteral
+ Hydra.Java.Dsl.Syntax: stringLiteralStringLiteral :: TypedName StringLiteral
+ Hydra.Java.Dsl.Syntax: switchBlockLegacy :: TypedTerm SwitchBlock_Legacy -> TypedTerm SwitchBlock
+ Hydra.Java.Dsl.Syntax: switchBlockRules :: TypedTerm [SwitchRule] -> TypedTerm SwitchBlock
+ Hydra.Java.Dsl.Syntax: switchBlockStatementGroup :: TypedTerm [SwitchLabel] -> TypedTerm [BlockStatement] -> TypedTerm SwitchBlockStatementGroup
+ Hydra.Java.Dsl.Syntax: switchBlockStatementGroupLabels :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [SwitchLabel]
+ Hydra.Java.Dsl.Syntax: switchBlockStatementGroupStatements :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [BlockStatement]
+ Hydra.Java.Dsl.Syntax: switchBlockStatementGroupSwitchBlockStatementGroup :: TypedName SwitchBlockStatementGroup
+ Hydra.Java.Dsl.Syntax: switchBlockStatementGroupWithLabels :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [SwitchLabel] -> TypedTerm SwitchBlockStatementGroup
+ Hydra.Java.Dsl.Syntax: switchBlockStatementGroupWithStatements :: TypedTerm SwitchBlockStatementGroup -> TypedTerm [BlockStatement] -> TypedTerm SwitchBlockStatementGroup
+ Hydra.Java.Dsl.Syntax: switchBlockSwitchBlock :: TypedName SwitchBlock
+ Hydra.Java.Dsl.Syntax: switchBlock_Legacy :: TypedTerm [SwitchBlockStatementGroup] -> TypedTerm [SwitchLabel] -> TypedTerm SwitchBlock_Legacy
+ Hydra.Java.Dsl.Syntax: switchBlock_LegacyGroups :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchBlockStatementGroup]
+ Hydra.Java.Dsl.Syntax: switchBlock_LegacySwitchBlock_Legacy :: TypedName SwitchBlock_Legacy
+ Hydra.Java.Dsl.Syntax: switchBlock_LegacyTrailingLabels :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchLabel]
+ Hydra.Java.Dsl.Syntax: switchBlock_LegacyWithGroups :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchBlockStatementGroup] -> TypedTerm SwitchBlock_Legacy
+ Hydra.Java.Dsl.Syntax: switchBlock_LegacyWithTrailingLabels :: TypedTerm SwitchBlock_Legacy -> TypedTerm [SwitchLabel] -> TypedTerm SwitchBlock_Legacy
+ Hydra.Java.Dsl.Syntax: switchExpression :: TypedTerm Expression -> TypedTerm SwitchBlock -> TypedTerm SwitchExpression
+ Hydra.Java.Dsl.Syntax: switchExpressionBlock :: TypedTerm SwitchExpression -> TypedTerm SwitchBlock
+ Hydra.Java.Dsl.Syntax: switchExpressionCond :: TypedTerm SwitchExpression -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: switchExpressionSwitchExpression :: TypedName SwitchExpression
+ Hydra.Java.Dsl.Syntax: switchExpressionWithBlock :: TypedTerm SwitchExpression -> TypedTerm SwitchBlock -> TypedTerm SwitchExpression
+ Hydra.Java.Dsl.Syntax: switchExpressionWithCond :: TypedTerm SwitchExpression -> TypedTerm Expression -> TypedTerm SwitchExpression
+ Hydra.Java.Dsl.Syntax: switchLabelCase :: TypedTerm [CaseConstant] -> TypedTerm SwitchLabel
+ Hydra.Java.Dsl.Syntax: switchLabelCasePattern :: TypedTerm CasePattern -> TypedTerm SwitchLabel
+ Hydra.Java.Dsl.Syntax: switchLabelDefault :: TypedTerm SwitchLabel
+ Hydra.Java.Dsl.Syntax: switchLabelNull :: TypedTerm Bool -> TypedTerm SwitchLabel
+ Hydra.Java.Dsl.Syntax: switchLabelSwitchLabel :: TypedName SwitchLabel
+ Hydra.Java.Dsl.Syntax: switchRule :: TypedTerm SwitchLabel -> TypedTerm SwitchRule_Body -> TypedTerm SwitchRule
+ Hydra.Java.Dsl.Syntax: switchRuleBody :: TypedTerm SwitchRule -> TypedTerm SwitchRule_Body
+ Hydra.Java.Dsl.Syntax: switchRuleLabel :: TypedTerm SwitchRule -> TypedTerm SwitchLabel
+ Hydra.Java.Dsl.Syntax: switchRuleSwitchRule :: TypedName SwitchRule
+ Hydra.Java.Dsl.Syntax: switchRuleWithBody :: TypedTerm SwitchRule -> TypedTerm SwitchRule_Body -> TypedTerm SwitchRule
+ Hydra.Java.Dsl.Syntax: switchRuleWithLabel :: TypedTerm SwitchRule -> TypedTerm SwitchLabel -> TypedTerm SwitchRule
+ Hydra.Java.Dsl.Syntax: switchRule_BodyBlock :: TypedTerm Block -> TypedTerm SwitchRule_Body
+ Hydra.Java.Dsl.Syntax: switchRule_BodyExpression :: TypedTerm Expression -> TypedTerm SwitchRule_Body
+ Hydra.Java.Dsl.Syntax: switchRule_BodySwitchRule_Body :: TypedName SwitchRule_Body
+ Hydra.Java.Dsl.Syntax: switchRule_BodyThrow :: TypedTerm ThrowStatement -> TypedTerm SwitchRule_Body
+ Hydra.Java.Dsl.Syntax: switchStatement :: TypedTerm Expression -> TypedTerm SwitchBlock -> TypedTerm SwitchStatement
+ Hydra.Java.Dsl.Syntax: switchStatementBlock :: TypedTerm SwitchStatement -> TypedTerm SwitchBlock
+ Hydra.Java.Dsl.Syntax: switchStatementCond :: TypedTerm SwitchStatement -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: switchStatementSwitchStatement :: TypedName SwitchStatement
+ Hydra.Java.Dsl.Syntax: switchStatementWithBlock :: TypedTerm SwitchStatement -> TypedTerm SwitchBlock -> TypedTerm SwitchStatement
+ Hydra.Java.Dsl.Syntax: switchStatementWithCond :: TypedTerm SwitchStatement -> TypedTerm Expression -> TypedTerm SwitchStatement
+ Hydra.Java.Dsl.Syntax: synchronizedStatement :: TypedTerm Expression -> TypedTerm Block -> TypedTerm SynchronizedStatement
+ Hydra.Java.Dsl.Syntax: synchronizedStatementBlock :: TypedTerm SynchronizedStatement -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: synchronizedStatementExpression :: TypedTerm SynchronizedStatement -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: synchronizedStatementSynchronizedStatement :: TypedName SynchronizedStatement
+ Hydra.Java.Dsl.Syntax: synchronizedStatementWithBlock :: TypedTerm SynchronizedStatement -> TypedTerm Block -> TypedTerm SynchronizedStatement
+ Hydra.Java.Dsl.Syntax: synchronizedStatementWithExpression :: TypedTerm SynchronizedStatement -> TypedTerm Expression -> TypedTerm SynchronizedStatement
+ Hydra.Java.Dsl.Syntax: textBlock :: TypedTerm String -> TypedTerm TextBlock
+ Hydra.Java.Dsl.Syntax: textBlockTextBlock :: TypedName TextBlock
+ Hydra.Java.Dsl.Syntax: throwStatement :: TypedTerm Expression -> TypedTerm ThrowStatement
+ Hydra.Java.Dsl.Syntax: throwStatementThrowStatement :: TypedName ThrowStatement
+ Hydra.Java.Dsl.Syntax: throws :: TypedTerm [ExceptionType] -> TypedTerm Throws
+ Hydra.Java.Dsl.Syntax: throwsThrows :: TypedName Throws
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationClass :: TypedTerm ClassDeclaration -> TypedTerm TopLevelClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationInterface :: TypedTerm InterfaceDeclaration -> TypedTerm TopLevelClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationNone :: TypedTerm TopLevelClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationTopLevelClassOrInterfaceDeclaration :: TypedName TopLevelClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationWithComments :: TypedTerm TopLevelClassOrInterfaceDeclaration -> TypedTerm (Maybe String) -> TypedTerm TopLevelClassOrInterfaceDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsComments :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm (Maybe String)
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsTopLevelClassOrInterfaceDeclarationWithComments :: TypedName TopLevelClassOrInterfaceDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsValue :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm TopLevelClassOrInterfaceDeclaration
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsWithComments :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm (Maybe String) -> TypedTerm TopLevelClassOrInterfaceDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsWithValue :: TypedTerm TopLevelClassOrInterfaceDeclarationWithComments -> TypedTerm TopLevelClassOrInterfaceDeclaration -> TypedTerm TopLevelClassOrInterfaceDeclarationWithComments
+ Hydra.Java.Dsl.Syntax: tryStatementSimple :: TypedTerm TryStatement_Simple -> TypedTerm TryStatement
+ Hydra.Java.Dsl.Syntax: tryStatementTryStatement :: TypedName TryStatement
+ Hydra.Java.Dsl.Syntax: tryStatementWithFinally :: TypedTerm TryStatement_WithFinally -> TypedTerm TryStatement
+ Hydra.Java.Dsl.Syntax: tryStatementWithResources :: TypedTerm TryWithResourcesStatement -> TypedTerm TryStatement
+ Hydra.Java.Dsl.Syntax: tryStatement_Simple :: TypedTerm Block -> TypedTerm Catches -> TypedTerm TryStatement_Simple
+ Hydra.Java.Dsl.Syntax: tryStatement_SimpleBlock :: TypedTerm TryStatement_Simple -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: tryStatement_SimpleCatches :: TypedTerm TryStatement_Simple -> TypedTerm Catches
+ Hydra.Java.Dsl.Syntax: tryStatement_SimpleTryStatement_Simple :: TypedName TryStatement_Simple
+ Hydra.Java.Dsl.Syntax: tryStatement_SimpleWithBlock :: TypedTerm TryStatement_Simple -> TypedTerm Block -> TypedTerm TryStatement_Simple
+ Hydra.Java.Dsl.Syntax: tryStatement_SimpleWithCatches :: TypedTerm TryStatement_Simple -> TypedTerm Catches -> TypedTerm TryStatement_Simple
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinally :: TypedTerm Block -> TypedTerm (Maybe Catches) -> TypedTerm Finally -> TypedTerm TryStatement_WithFinally
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinallyBlock :: TypedTerm TryStatement_WithFinally -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinallyCatches :: TypedTerm TryStatement_WithFinally -> TypedTerm (Maybe Catches)
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinallyFinally :: TypedTerm TryStatement_WithFinally -> TypedTerm Finally
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinallyTryStatement_WithFinally :: TypedName TryStatement_WithFinally
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinallyWithBlock :: TypedTerm TryStatement_WithFinally -> TypedTerm Block -> TypedTerm TryStatement_WithFinally
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinallyWithCatches :: TypedTerm TryStatement_WithFinally -> TypedTerm (Maybe Catches) -> TypedTerm TryStatement_WithFinally
+ Hydra.Java.Dsl.Syntax: tryStatement_WithFinallyWithFinally :: TypedTerm TryStatement_WithFinally -> TypedTerm Finally -> TypedTerm TryStatement_WithFinally
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatement :: TypedTerm ResourceSpecification -> TypedTerm Block -> TypedTerm (Maybe Catches) -> TypedTerm (Maybe Finally) -> TypedTerm TryWithResourcesStatement
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementBlock :: TypedTerm TryWithResourcesStatement -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementCatches :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Catches)
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementFinally :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Finally)
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementResourceSpecification :: TypedTerm TryWithResourcesStatement -> TypedTerm ResourceSpecification
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementTryWithResourcesStatement :: TypedName TryWithResourcesStatement
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementWithBlock :: TypedTerm TryWithResourcesStatement -> TypedTerm Block -> TypedTerm TryWithResourcesStatement
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementWithCatches :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Catches) -> TypedTerm TryWithResourcesStatement
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementWithFinally :: TypedTerm TryWithResourcesStatement -> TypedTerm (Maybe Finally) -> TypedTerm TryWithResourcesStatement
+ Hydra.Java.Dsl.Syntax: tryWithResourcesStatementWithResourceSpecification :: TypedTerm TryWithResourcesStatement -> TypedTerm ResourceSpecification -> TypedTerm TryWithResourcesStatement
+ Hydra.Java.Dsl.Syntax: typeArgumentReference :: TypedTerm ReferenceType -> TypedTerm TypeArgument
+ Hydra.Java.Dsl.Syntax: typeArgumentTypeArgument :: TypedName TypeArgument
+ Hydra.Java.Dsl.Syntax: typeArgumentWildcard :: TypedTerm Wildcard -> TypedTerm TypeArgument
+ Hydra.Java.Dsl.Syntax: typeArgumentsOrDiamondArguments :: TypedTerm [TypeArgument] -> TypedTerm TypeArgumentsOrDiamond
+ Hydra.Java.Dsl.Syntax: typeArgumentsOrDiamondDiamond :: TypedTerm TypeArgumentsOrDiamond
+ Hydra.Java.Dsl.Syntax: typeArgumentsOrDiamondTypeArgumentsOrDiamond :: TypedName TypeArgumentsOrDiamond
+ Hydra.Java.Dsl.Syntax: typeBoundClassOrInterface :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm TypeBound
+ Hydra.Java.Dsl.Syntax: typeBoundTypeBound :: TypedName TypeBound
+ Hydra.Java.Dsl.Syntax: typeBoundVariable :: TypedTerm TypeVariable -> TypedTerm TypeBound
+ Hydra.Java.Dsl.Syntax: typeBound_ClassOrInterface :: TypedTerm ClassOrInterfaceType -> TypedTerm [AdditionalBound] -> TypedTerm TypeBound_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: typeBound_ClassOrInterfaceAdditional :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm [AdditionalBound]
+ Hydra.Java.Dsl.Syntax: typeBound_ClassOrInterfaceType :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm ClassOrInterfaceType
+ Hydra.Java.Dsl.Syntax: typeBound_ClassOrInterfaceTypeBound_ClassOrInterface :: TypedName TypeBound_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: typeBound_ClassOrInterfaceWithAdditional :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm [AdditionalBound] -> TypedTerm TypeBound_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: typeBound_ClassOrInterfaceWithType :: TypedTerm TypeBound_ClassOrInterface -> TypedTerm ClassOrInterfaceType -> TypedTerm TypeBound_ClassOrInterface
+ Hydra.Java.Dsl.Syntax: typeIdentifier :: TypedTerm Identifier -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: typeIdentifierTypeIdentifier :: TypedName TypeIdentifier
+ Hydra.Java.Dsl.Syntax: typeImportOnDemandDeclaration :: TypedTerm PackageOrTypeName -> TypedTerm TypeImportOnDemandDeclaration
+ Hydra.Java.Dsl.Syntax: typeImportOnDemandDeclarationTypeImportOnDemandDeclaration :: TypedName TypeImportOnDemandDeclaration
+ Hydra.Java.Dsl.Syntax: typeName :: TypedTerm TypeIdentifier -> TypedTerm (Maybe PackageOrTypeName) -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: typeNameArrayArray :: TypedTerm TypeNameArray -> TypedTerm TypeNameArray
+ Hydra.Java.Dsl.Syntax: typeNameArraySimple :: TypedTerm TypeName -> TypedTerm TypeNameArray
+ Hydra.Java.Dsl.Syntax: typeNameArrayTypeNameArray :: TypedName TypeNameArray
+ Hydra.Java.Dsl.Syntax: typeNameIdentifier :: TypedTerm TypeName -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: typeNameQualifier :: TypedTerm TypeName -> TypedTerm (Maybe PackageOrTypeName)
+ Hydra.Java.Dsl.Syntax: typeNameTypeName :: TypedName TypeName
+ Hydra.Java.Dsl.Syntax: typeNameWithIdentifier :: TypedTerm TypeName -> TypedTerm TypeIdentifier -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: typeNameWithQualifier :: TypedTerm TypeName -> TypedTerm (Maybe PackageOrTypeName) -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: typeParameter :: TypedTerm [TypeParameterModifier] -> TypedTerm TypeIdentifier -> TypedTerm (Maybe TypeBound) -> TypedTerm TypeParameter
+ Hydra.Java.Dsl.Syntax: typeParameterBound :: TypedTerm TypeParameter -> TypedTerm (Maybe TypeBound)
+ Hydra.Java.Dsl.Syntax: typeParameterIdentifier :: TypedTerm TypeParameter -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: typeParameterModifier :: TypedTerm Annotation -> TypedTerm TypeParameterModifier
+ Hydra.Java.Dsl.Syntax: typeParameterModifierTypeParameterModifier :: TypedName TypeParameterModifier
+ Hydra.Java.Dsl.Syntax: typeParameterModifiers :: TypedTerm TypeParameter -> TypedTerm [TypeParameterModifier]
+ Hydra.Java.Dsl.Syntax: typeParameterTypeParameter :: TypedName TypeParameter
+ Hydra.Java.Dsl.Syntax: typeParameterWithBound :: TypedTerm TypeParameter -> TypedTerm (Maybe TypeBound) -> TypedTerm TypeParameter
+ Hydra.Java.Dsl.Syntax: typeParameterWithIdentifier :: TypedTerm TypeParameter -> TypedTerm TypeIdentifier -> TypedTerm TypeParameter
+ Hydra.Java.Dsl.Syntax: typeParameterWithModifiers :: TypedTerm TypeParameter -> TypedTerm [TypeParameterModifier] -> TypedTerm TypeParameter
+ Hydra.Java.Dsl.Syntax: typePattern :: TypedTerm LocalVariableDeclaration -> TypedTerm TypePattern
+ Hydra.Java.Dsl.Syntax: typePatternTypePattern :: TypedName TypePattern
+ Hydra.Java.Dsl.Syntax: typePrimitive :: TypedTerm PrimitiveTypeWithAnnotations -> TypedTerm Type
+ Hydra.Java.Dsl.Syntax: typeReference :: TypedTerm ReferenceType -> TypedTerm Type
+ Hydra.Java.Dsl.Syntax: typeType :: TypedName Type
+ Hydra.Java.Dsl.Syntax: typeVariable :: TypedTerm [Annotation] -> TypedTerm TypeIdentifier -> TypedTerm TypeVariable
+ Hydra.Java.Dsl.Syntax: typeVariableAnnotations :: TypedTerm TypeVariable -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: typeVariableIdentifier :: TypedTerm TypeVariable -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: typeVariableTypeVariable :: TypedName TypeVariable
+ Hydra.Java.Dsl.Syntax: typeVariableWithAnnotations :: TypedTerm TypeVariable -> TypedTerm [Annotation] -> TypedTerm TypeVariable
+ Hydra.Java.Dsl.Syntax: typeVariableWithIdentifier :: TypedTerm TypeVariable -> TypedTerm TypeIdentifier -> TypedTerm TypeVariable
+ Hydra.Java.Dsl.Syntax: unAdditionalBound :: TypedTerm AdditionalBound -> TypedTerm InterfaceType
+ Hydra.Java.Dsl.Syntax: unAmbiguousName :: TypedTerm AmbiguousName -> TypedTerm [Identifier]
+ Hydra.Java.Dsl.Syntax: unAndExpression :: TypedTerm AndExpression -> TypedTerm [EqualityExpression]
+ Hydra.Java.Dsl.Syntax: unAnnotationInterfaceBody :: TypedTerm AnnotationInterfaceBody -> TypedTerm [AnnotationInterfaceMemberDeclaration]
+ Hydra.Java.Dsl.Syntax: unArrayInitializer :: TypedTerm ArrayInitializer -> TypedTerm [[VariableInitializer]]
+ Hydra.Java.Dsl.Syntax: unBlock :: TypedTerm Block -> TypedTerm [BlockStatement]
+ Hydra.Java.Dsl.Syntax: unBreakStatement :: TypedTerm BreakStatement -> TypedTerm (Maybe Identifier)
+ Hydra.Java.Dsl.Syntax: unCaseConstant :: TypedTerm CaseConstant -> TypedTerm ConditionalExpression
+ Hydra.Java.Dsl.Syntax: unCatches :: TypedTerm Catches -> TypedTerm [CatchClause]
+ Hydra.Java.Dsl.Syntax: unClassBody :: TypedTerm ClassBody -> TypedTerm [ClassBodyDeclarationWithComments]
+ Hydra.Java.Dsl.Syntax: unConditionalAndExpression :: TypedTerm ConditionalAndExpression -> TypedTerm [InclusiveOrExpression]
+ Hydra.Java.Dsl.Syntax: unConditionalOrExpression :: TypedTerm ConditionalOrExpression -> TypedTerm [ConditionalAndExpression]
+ Hydra.Java.Dsl.Syntax: unConstantExpression :: TypedTerm ConstantExpression -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: unContinueStatement :: TypedTerm ContinueStatement -> TypedTerm (Maybe Identifier)
+ Hydra.Java.Dsl.Syntax: unDefaultValue :: TypedTerm DefaultValue -> TypedTerm ElementValue
+ Hydra.Java.Dsl.Syntax: unDims :: TypedTerm Dims -> TypedTerm [[Annotation]]
+ Hydra.Java.Dsl.Syntax: unElementValueArrayInitializer :: TypedTerm ElementValueArrayInitializer -> TypedTerm [ElementValue]
+ Hydra.Java.Dsl.Syntax: unEnumBody :: TypedTerm EnumBody -> TypedTerm [EnumBody_Element]
+ Hydra.Java.Dsl.Syntax: unEnumConstantModifier :: TypedTerm EnumConstantModifier -> TypedTerm Annotation
+ Hydra.Java.Dsl.Syntax: unExclusiveOrExpression :: TypedTerm ExclusiveOrExpression -> TypedTerm [AndExpression]
+ Hydra.Java.Dsl.Syntax: unExpressionStatement :: TypedTerm ExpressionStatement -> TypedTerm StatementExpression
+ Hydra.Java.Dsl.Syntax: unFinally :: TypedTerm Finally -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: unFloatingPointLiteral :: TypedTerm FloatingPointLiteral -> TypedTerm Double
+ Hydra.Java.Dsl.Syntax: unForUpdate :: TypedTerm ForUpdate -> TypedTerm [StatementExpression]
+ Hydra.Java.Dsl.Syntax: unGuard :: TypedTerm Guard -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: unIdentifier :: TypedTerm Identifier -> TypedTerm String
+ Hydra.Java.Dsl.Syntax: unInclusiveOrExpression :: TypedTerm InclusiveOrExpression -> TypedTerm [ExclusiveOrExpression]
+ Hydra.Java.Dsl.Syntax: unInstanceInitializer :: TypedTerm InstanceInitializer -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: unIntegerLiteral :: TypedTerm IntegerLiteral -> TypedTerm Integer
+ Hydra.Java.Dsl.Syntax: unInterfaceBody :: TypedTerm InterfaceBody -> TypedTerm [InterfaceMemberDeclarationWithComments]
+ Hydra.Java.Dsl.Syntax: unInterfaceType :: TypedTerm InterfaceType -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: unLocalVariableDeclarationStatement :: TypedTerm LocalVariableDeclarationStatement -> TypedTerm LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: unMarkerAnnotation :: TypedTerm MarkerAnnotation -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: unMethodName :: TypedTerm MethodName -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: unMethodReference_Array :: TypedTerm MethodReference_Array -> TypedTerm ArrayType
+ Hydra.Java.Dsl.Syntax: unPackageModifier :: TypedTerm PackageModifier -> TypedTerm Annotation
+ Hydra.Java.Dsl.Syntax: unPackageName :: TypedTerm PackageName -> TypedTerm [Identifier]
+ Hydra.Java.Dsl.Syntax: unPackageOrTypeName :: TypedTerm PackageOrTypeName -> TypedTerm [Identifier]
+ Hydra.Java.Dsl.Syntax: unPostDecrementExpression :: TypedTerm PostDecrementExpression -> TypedTerm PostfixExpression
+ Hydra.Java.Dsl.Syntax: unPostIncrementExpression :: TypedTerm PostIncrementExpression -> TypedTerm PostfixExpression
+ Hydra.Java.Dsl.Syntax: unPreDecrementExpression :: TypedTerm PreDecrementExpression -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: unPreIncrementExpression :: TypedTerm PreIncrementExpression -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: unRecordBody :: TypedTerm RecordBody -> TypedTerm [RecordBodyDeclaration]
+ Hydra.Java.Dsl.Syntax: unRecordComponentModifier :: TypedTerm RecordComponentModifier -> TypedTerm Annotation
+ Hydra.Java.Dsl.Syntax: unRecordHeader :: TypedTerm RecordHeader -> TypedTerm [RecordComponent]
+ Hydra.Java.Dsl.Syntax: unResourceSpecification :: TypedTerm ResourceSpecification -> TypedTerm [Resource]
+ Hydra.Java.Dsl.Syntax: unReturnStatement :: TypedTerm ReturnStatement -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: unSimpleTypeName :: TypedTerm SimpleTypeName -> TypedTerm TypeIdentifier
+ Hydra.Java.Dsl.Syntax: unSingleTypeImportDeclaration :: TypedTerm SingleTypeImportDeclaration -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: unStaticImportOnDemandDeclaration :: TypedTerm StaticImportOnDemandDeclaration -> TypedTerm TypeName
+ Hydra.Java.Dsl.Syntax: unStaticInitializer :: TypedTerm StaticInitializer -> TypedTerm Block
+ Hydra.Java.Dsl.Syntax: unStringLiteral :: TypedTerm StringLiteral -> TypedTerm String
+ Hydra.Java.Dsl.Syntax: unTextBlock :: TypedTerm TextBlock -> TypedTerm String
+ Hydra.Java.Dsl.Syntax: unThrowStatement :: TypedTerm ThrowStatement -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: unThrows :: TypedTerm Throws -> TypedTerm [ExceptionType]
+ Hydra.Java.Dsl.Syntax: unTypeIdentifier :: TypedTerm TypeIdentifier -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: unTypeImportOnDemandDeclaration :: TypedTerm TypeImportOnDemandDeclaration -> TypedTerm PackageOrTypeName
+ Hydra.Java.Dsl.Syntax: unTypeParameterModifier :: TypedTerm TypeParameterModifier -> TypedTerm Annotation
+ Hydra.Java.Dsl.Syntax: unTypePattern :: TypedTerm TypePattern -> TypedTerm LocalVariableDeclaration
+ Hydra.Java.Dsl.Syntax: unUnannClassType :: TypedTerm UnannClassType -> TypedTerm ClassType
+ Hydra.Java.Dsl.Syntax: unUnannType :: TypedTerm UnannType -> TypedTerm Type
+ Hydra.Java.Dsl.Syntax: unYieldStatement :: TypedTerm YieldStatement -> TypedTerm Expression
+ Hydra.Java.Dsl.Syntax: unannClassType :: TypedTerm ClassType -> TypedTerm UnannClassType
+ Hydra.Java.Dsl.Syntax: unannClassTypeUnannClassType :: TypedName UnannClassType
+ Hydra.Java.Dsl.Syntax: unannType :: TypedTerm Type -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: unannTypeUnannType :: TypedName UnannType
+ Hydra.Java.Dsl.Syntax: unaryExpressionMinus :: TypedTerm UnaryExpression -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: unaryExpressionNotPlusMinusCast :: TypedTerm CastExpression -> TypedTerm UnaryExpressionNotPlusMinus
+ Hydra.Java.Dsl.Syntax: unaryExpressionNotPlusMinusNot :: TypedTerm UnaryExpression -> TypedTerm UnaryExpressionNotPlusMinus
+ Hydra.Java.Dsl.Syntax: unaryExpressionNotPlusMinusPostfix :: TypedTerm PostfixExpression -> TypedTerm UnaryExpressionNotPlusMinus
+ Hydra.Java.Dsl.Syntax: unaryExpressionNotPlusMinusSwitchExpression :: TypedTerm SwitchExpression -> TypedTerm UnaryExpressionNotPlusMinus
+ Hydra.Java.Dsl.Syntax: unaryExpressionNotPlusMinusTilde :: TypedTerm UnaryExpression -> TypedTerm UnaryExpressionNotPlusMinus
+ Hydra.Java.Dsl.Syntax: unaryExpressionNotPlusMinusUnaryExpressionNotPlusMinus :: TypedName UnaryExpressionNotPlusMinus
+ Hydra.Java.Dsl.Syntax: unaryExpressionOther :: TypedTerm UnaryExpressionNotPlusMinus -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: unaryExpressionPlus :: TypedTerm UnaryExpression -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: unaryExpressionPreDecrement :: TypedTerm PreDecrementExpression -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: unaryExpressionPreIncrement :: TypedTerm PreIncrementExpression -> TypedTerm UnaryExpression
+ Hydra.Java.Dsl.Syntax: unaryExpressionUnaryExpression :: TypedName UnaryExpression
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpression :: TypedTerm [TypeArgument] -> TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm [Expression] -> TypedTerm (Maybe ClassBody) -> TypedTerm UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [Expression]
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionBody :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm (Maybe ClassBody)
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionClassOrInterface :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassOrInterfaceTypeToInstantiate
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionTypeArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [TypeArgument]
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionUnqualifiedClassInstanceCreationExpression :: TypedName UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionWithArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [Expression] -> TypedTerm UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionWithBody :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm (Maybe ClassBody) -> TypedTerm UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionWithClassOrInterface :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm ClassOrInterfaceTypeToInstantiate -> TypedTerm UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: unqualifiedClassInstanceCreationExpressionWithTypeArguments :: TypedTerm UnqualifiedClassInstanceCreationExpression -> TypedTerm [TypeArgument] -> TypedTerm UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Dsl.Syntax: variableAccessExpressionName :: TypedTerm ExpressionName -> TypedTerm VariableAccess
+ Hydra.Java.Dsl.Syntax: variableAccessFieldAccess :: TypedTerm FieldAccess -> TypedTerm VariableAccess
+ Hydra.Java.Dsl.Syntax: variableAccessVariableAccess :: TypedName VariableAccess
+ Hydra.Java.Dsl.Syntax: variableArityParameter :: TypedTerm [VariableModifier] -> TypedTerm UnannType -> TypedTerm [Annotation] -> TypedTerm Identifier -> TypedTerm VariableArityParameter
+ Hydra.Java.Dsl.Syntax: variableArityParameterAnnotations :: TypedTerm VariableArityParameter -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: variableArityParameterIdentifier :: TypedTerm VariableArityParameter -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: variableArityParameterModifiers :: TypedTerm VariableArityParameter -> TypedTerm [VariableModifier]
+ Hydra.Java.Dsl.Syntax: variableArityParameterType :: TypedTerm VariableArityParameter -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: variableArityParameterVariableArityParameter :: TypedName VariableArityParameter
+ Hydra.Java.Dsl.Syntax: variableArityParameterWithAnnotations :: TypedTerm VariableArityParameter -> TypedTerm [Annotation] -> TypedTerm VariableArityParameter
+ Hydra.Java.Dsl.Syntax: variableArityParameterWithIdentifier :: TypedTerm VariableArityParameter -> TypedTerm Identifier -> TypedTerm VariableArityParameter
+ Hydra.Java.Dsl.Syntax: variableArityParameterWithModifiers :: TypedTerm VariableArityParameter -> TypedTerm [VariableModifier] -> TypedTerm VariableArityParameter
+ Hydra.Java.Dsl.Syntax: variableArityParameterWithType :: TypedTerm VariableArityParameter -> TypedTerm UnannType -> TypedTerm VariableArityParameter
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponent :: TypedTerm [RecordComponentModifier] -> TypedTerm UnannType -> TypedTerm [Annotation] -> TypedTerm Identifier -> TypedTerm VariableArityRecordComponent
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentAnnotations :: TypedTerm VariableArityRecordComponent -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentIdentifier :: TypedTerm VariableArityRecordComponent -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentModifiers :: TypedTerm VariableArityRecordComponent -> TypedTerm [RecordComponentModifier]
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentType :: TypedTerm VariableArityRecordComponent -> TypedTerm UnannType
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentVariableArityRecordComponent :: TypedName VariableArityRecordComponent
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentWithAnnotations :: TypedTerm VariableArityRecordComponent -> TypedTerm [Annotation] -> TypedTerm VariableArityRecordComponent
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentWithIdentifier :: TypedTerm VariableArityRecordComponent -> TypedTerm Identifier -> TypedTerm VariableArityRecordComponent
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentWithModifiers :: TypedTerm VariableArityRecordComponent -> TypedTerm [RecordComponentModifier] -> TypedTerm VariableArityRecordComponent
+ Hydra.Java.Dsl.Syntax: variableArityRecordComponentWithType :: TypedTerm VariableArityRecordComponent -> TypedTerm UnannType -> TypedTerm VariableArityRecordComponent
+ Hydra.Java.Dsl.Syntax: variableDeclarator :: TypedTerm VariableDeclaratorId -> TypedTerm (Maybe VariableInitializer) -> TypedTerm VariableDeclarator
+ Hydra.Java.Dsl.Syntax: variableDeclaratorId :: TypedTerm VariableDeclarator -> TypedTerm VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: variableDeclaratorId2 :: TypedTerm Identifier -> TypedTerm (Maybe Dims) -> TypedTerm VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: variableDeclaratorIdDims :: TypedTerm VariableDeclaratorId -> TypedTerm (Maybe Dims)
+ Hydra.Java.Dsl.Syntax: variableDeclaratorIdIdentifier :: TypedTerm VariableDeclaratorId -> TypedTerm Identifier
+ Hydra.Java.Dsl.Syntax: variableDeclaratorIdVariableDeclaratorId :: TypedName VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: variableDeclaratorIdWithDims :: TypedTerm VariableDeclaratorId -> TypedTerm (Maybe Dims) -> TypedTerm VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: variableDeclaratorIdWithIdentifier :: TypedTerm VariableDeclaratorId -> TypedTerm Identifier -> TypedTerm VariableDeclaratorId
+ Hydra.Java.Dsl.Syntax: variableDeclaratorInitializer :: TypedTerm VariableDeclarator -> TypedTerm (Maybe VariableInitializer)
+ Hydra.Java.Dsl.Syntax: variableDeclaratorVariableDeclarator :: TypedName VariableDeclarator
+ Hydra.Java.Dsl.Syntax: variableDeclaratorWithId :: TypedTerm VariableDeclarator -> TypedTerm VariableDeclaratorId -> TypedTerm VariableDeclarator
+ Hydra.Java.Dsl.Syntax: variableDeclaratorWithInitializer :: TypedTerm VariableDeclarator -> TypedTerm (Maybe VariableInitializer) -> TypedTerm VariableDeclarator
+ Hydra.Java.Dsl.Syntax: variableInitializerArrayInitializer :: TypedTerm ArrayInitializer -> TypedTerm VariableInitializer
+ Hydra.Java.Dsl.Syntax: variableInitializerExpression :: TypedTerm Expression -> TypedTerm VariableInitializer
+ Hydra.Java.Dsl.Syntax: variableInitializerVariableInitializer :: TypedName VariableInitializer
+ Hydra.Java.Dsl.Syntax: variableModifierAnnotation :: TypedTerm Annotation -> TypedTerm VariableModifier
+ Hydra.Java.Dsl.Syntax: variableModifierFinal :: TypedTerm VariableModifier
+ Hydra.Java.Dsl.Syntax: variableModifierVariableModifier :: TypedName VariableModifier
+ Hydra.Java.Dsl.Syntax: whileStatement :: TypedTerm (Maybe Expression) -> TypedTerm Statement -> TypedTerm WhileStatement
+ Hydra.Java.Dsl.Syntax: whileStatementBody :: TypedTerm WhileStatement -> TypedTerm Statement
+ Hydra.Java.Dsl.Syntax: whileStatementCond :: TypedTerm WhileStatement -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: whileStatementNoShortIf :: TypedTerm (Maybe Expression) -> TypedTerm StatementNoShortIf -> TypedTerm WhileStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: whileStatementNoShortIfBody :: TypedTerm WhileStatementNoShortIf -> TypedTerm StatementNoShortIf
+ Hydra.Java.Dsl.Syntax: whileStatementNoShortIfCond :: TypedTerm WhileStatementNoShortIf -> TypedTerm (Maybe Expression)
+ Hydra.Java.Dsl.Syntax: whileStatementNoShortIfWhileStatementNoShortIf :: TypedName WhileStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: whileStatementNoShortIfWithBody :: TypedTerm WhileStatementNoShortIf -> TypedTerm StatementNoShortIf -> TypedTerm WhileStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: whileStatementNoShortIfWithCond :: TypedTerm WhileStatementNoShortIf -> TypedTerm (Maybe Expression) -> TypedTerm WhileStatementNoShortIf
+ Hydra.Java.Dsl.Syntax: whileStatementWhileStatement :: TypedName WhileStatement
+ Hydra.Java.Dsl.Syntax: whileStatementWithBody :: TypedTerm WhileStatement -> TypedTerm Statement -> TypedTerm WhileStatement
+ Hydra.Java.Dsl.Syntax: whileStatementWithCond :: TypedTerm WhileStatement -> TypedTerm (Maybe Expression) -> TypedTerm WhileStatement
+ Hydra.Java.Dsl.Syntax: wildcard :: TypedTerm [Annotation] -> TypedTerm (Maybe WildcardBounds) -> TypedTerm Wildcard
+ Hydra.Java.Dsl.Syntax: wildcardAnnotations :: TypedTerm Wildcard -> TypedTerm [Annotation]
+ Hydra.Java.Dsl.Syntax: wildcardBoundsExtends :: TypedTerm ReferenceType -> TypedTerm WildcardBounds
+ Hydra.Java.Dsl.Syntax: wildcardBoundsSuper :: TypedTerm ReferenceType -> TypedTerm WildcardBounds
+ Hydra.Java.Dsl.Syntax: wildcardBoundsWildcardBounds :: TypedName WildcardBounds
+ Hydra.Java.Dsl.Syntax: wildcardWildcard :: TypedName Wildcard
+ Hydra.Java.Dsl.Syntax: wildcardWildcard2 :: TypedTerm Wildcard -> TypedTerm (Maybe WildcardBounds)
+ Hydra.Java.Dsl.Syntax: wildcardWithAnnotations :: TypedTerm Wildcard -> TypedTerm [Annotation] -> TypedTerm Wildcard
+ Hydra.Java.Dsl.Syntax: wildcardWithWildcard :: TypedTerm Wildcard -> TypedTerm (Maybe WildcardBounds) -> TypedTerm Wildcard
+ Hydra.Java.Dsl.Syntax: yieldStatement :: TypedTerm Expression -> TypedTerm YieldStatement
+ Hydra.Java.Dsl.Syntax: yieldStatementYieldStatement :: TypedName YieldStatement
+ Hydra.Java.Environment: instance GHC.Internal.Read.Read Hydra.Java.Environment.Aliases
+ Hydra.Java.Environment: instance GHC.Internal.Read.Read Hydra.Java.Environment.JavaFeatures
+ Hydra.Java.Environment: instance GHC.Internal.Read.Read Hydra.Java.Environment.JavaSymbolClass
+ Hydra.Java.Environment: instance GHC.Internal.Show.Show Hydra.Java.Environment.Aliases
+ Hydra.Java.Environment: instance GHC.Internal.Show.Show Hydra.Java.Environment.JavaFeatures
+ Hydra.Java.Environment: instance GHC.Internal.Show.Show Hydra.Java.Environment.JavaSymbolClass
+ Hydra.Java.Gradle: AntlrConfig :: [String] -> FilePath -> AntlrConfig
+ Hydra.Java.Gradle: GradleBuildConfiguration :: [PackageDependency] -> [String] -> [FilePath] -> [String] -> Maybe AntlrConfig -> GradleBuildConfiguration
+ Hydra.Java.Gradle: [antlrConfigArguments] :: AntlrConfig -> [String]
+ Hydra.Java.Gradle: [antlrConfigOutputDirectory] :: AntlrConfig -> FilePath
+ Hydra.Java.Gradle: [gradleBuildConfigurationAntlr] :: GradleBuildConfiguration -> Maybe AntlrConfig
+ Hydra.Java.Gradle: [gradleBuildConfigurationDependencies] :: GradleBuildConfiguration -> [PackageDependency]
+ Hydra.Java.Gradle: [gradleBuildConfigurationExcludes] :: GradleBuildConfiguration -> [String]
+ Hydra.Java.Gradle: [gradleBuildConfigurationExtraSourceDirs] :: GradleBuildConfiguration -> [FilePath]
+ Hydra.Java.Gradle: [gradleBuildConfigurationPlugins] :: GradleBuildConfiguration -> [String]
+ Hydra.Java.Gradle: _AntlrConfig :: Name
+ Hydra.Java.Gradle: _AntlrConfig_arguments :: Name
+ Hydra.Java.Gradle: _AntlrConfig_outputDirectory :: Name
+ Hydra.Java.Gradle: _GradleBuildConfiguration :: Name
+ Hydra.Java.Gradle: _GradleBuildConfiguration_antlr :: Name
+ Hydra.Java.Gradle: _GradleBuildConfiguration_dependencies :: Name
+ Hydra.Java.Gradle: _GradleBuildConfiguration_excludes :: Name
+ Hydra.Java.Gradle: _GradleBuildConfiguration_extraSourceDirs :: Name
+ Hydra.Java.Gradle: _GradleBuildConfiguration_plugins :: Name
+ Hydra.Java.Gradle: data AntlrConfig
+ Hydra.Java.Gradle: data GradleBuildConfiguration
+ Hydra.Java.Gradle: instance GHC.Classes.Eq Hydra.Java.Gradle.AntlrConfig
+ Hydra.Java.Gradle: instance GHC.Classes.Eq Hydra.Java.Gradle.GradleBuildConfiguration
+ Hydra.Java.Gradle: instance GHC.Classes.Ord Hydra.Java.Gradle.AntlrConfig
+ Hydra.Java.Gradle: instance GHC.Classes.Ord Hydra.Java.Gradle.GradleBuildConfiguration
+ Hydra.Java.Gradle: instance GHC.Internal.Read.Read Hydra.Java.Gradle.AntlrConfig
+ Hydra.Java.Gradle: instance GHC.Internal.Read.Read Hydra.Java.Gradle.GradleBuildConfiguration
+ Hydra.Java.Gradle: instance GHC.Internal.Show.Show Hydra.Java.Gradle.AntlrConfig
+ Hydra.Java.Gradle: instance GHC.Internal.Show.Show Hydra.Java.Gradle.GradleBuildConfiguration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AdditionalBound
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AdditiveExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AdditiveExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AmbiguousName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AndExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AnnotatedIdentifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Annotation
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AnnotationInterfaceBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AnnotationInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AnnotationInterfaceElementDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AnnotationInterfaceElementModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AnnotationInterfaceMemberDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayAccess
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayAccess_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayCreationExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ArrayType_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AssertStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AssertStatement_Pair
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Assignment
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AssignmentExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.AssignmentOperator
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.BasicForStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.BasicForStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Block
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.BlockStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.BooleanArray
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.BreakStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CaseConstant
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CasePattern
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CastExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CastExpression_Lambda
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CastExpression_NotPlusMinus
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CastExpression_Primitive
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CastExpression_RefAndBounds
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CatchClause
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CatchFormalParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CatchType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Catches
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassBodyDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassBodyDeclarationWithComments
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassInstanceCreationExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassInstanceCreationExpression_Qualifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassMemberDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassOrInterfaceType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassOrInterfaceTypeToInstantiate
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ClassTypeQualifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CompactConstructorDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.CompilationUnit
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConditionalAndExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConditionalExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConditionalExpression_TernaryCond
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConditionalExpression_TernaryLambda
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConditionalOrExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConstantDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConstantExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConstantModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConstructorBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConstructorDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConstructorDeclarator
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ConstructorModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ContinueStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.DefaultValue
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.DimExpr
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Dims
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.DoStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ElementValue
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ElementValueArrayInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ElementValuePair
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnhancedForCond
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnhancedForStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnhancedForStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnumBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnumBody_Element
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnumConstant
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnumConstantModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EnumDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EqualityExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.EqualityExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ExceptionType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ExclusiveOrExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ExplicitConstructorInvocation
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ExplicitConstructorInvocation_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Expression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ExpressionName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ExpressionStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FieldAccess
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FieldAccess_Qualifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FieldDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FieldModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Finally
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FloatingPointLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FloatingPointType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ForCond
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ForInit
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ForStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ForStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ForUpdate
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FormalParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.FormalParameter_Simple
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Guard
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Identifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.IfThenElseStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.IfThenElseStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.IfThenStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ImportDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InclusiveOrExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InstanceInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InstanceofExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InstanceofExpression_Rhs
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.IntegerLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.IntegralType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceMemberDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceMemberDeclarationWithComments
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceMethodDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceMethodModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.InterfaceType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LabeledStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LabeledStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LambdaBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LambdaExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LambdaParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LambdaParameterType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LambdaParameter_Normal
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LambdaParameters
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LeftHandSide
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Literal
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LocalClassOrInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LocalVariableDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LocalVariableDeclarationStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.LocalVariableType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MarkerAnnotation
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodDeclarator
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodHeader
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodInvocation
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodInvocation_Complex
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodInvocation_Header
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodInvocation_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodReference
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodReference_Array
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodReference_Expression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodReference_New
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodReference_Primary
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodReference_ReferenceType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MethodReference_Super
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ModularCompilationUnit
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ModuleDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ModuleDirective
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ModuleDirective_ExportsOrOpens
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ModuleDirective_Provides
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ModuleDirective_Requires
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ModuleName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MultiplicativeExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.MultiplicativeExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.NormalAnnotation
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.NormalClassDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.NormalInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.NumericType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.NumericTypeArray
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.OrdinaryCompilationUnit
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PackageDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PackageModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PackageName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PackageOrTypeName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Pattern
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PostDecrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PostIncrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PostfixExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PreDecrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PreIncrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Primary
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PrimaryNoNewArrayExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PrimitiveType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.PrimitiveTypeWithAnnotations
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ReceiverParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordBody
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordBodyDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordComponent
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordComponentModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordComponent_Simple
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordHeader
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RecordPattern
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ReferenceType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RelationalExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RelationalExpression_GreaterThan
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RelationalExpression_GreaterThanEqual
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RelationalExpression_LessThan
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RelationalExpression_LessThanEqual
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.RequiresModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Resource
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ResourceSpecification
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Resource_Local
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Result
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ReturnStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ShiftExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ShiftExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SimpleTypeName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SingleElementAnnotation
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SingleStaticImportDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SingleTypeImportDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Statement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.StatementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.StatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.StatementWithoutTrailingSubstatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.StaticImportOnDemandDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.StaticInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.StringLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchBlock
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchBlockStatementGroup
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchBlock_Legacy
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchLabel
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchRule
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchRule_Body
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SwitchStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.SynchronizedStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TextBlock
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.ThrowStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Throws
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclarationWithComments
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TryStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TryStatement_Simple
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TryStatement_WithFinally
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TryWithResourcesStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Type
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeArgument
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeArgumentsOrDiamond
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeBound
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeBound_ClassOrInterface
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeIdentifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeImportOnDemandDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeName
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeNameArray
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeParameterModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypePattern
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.TypeVariable
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.UnannClassType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.UnannType
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.UnaryExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.UnaryExpressionNotPlusMinus
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.VariableAccess
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.VariableArityParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.VariableArityRecordComponent
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.VariableDeclarator
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.VariableDeclaratorId
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.VariableInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.VariableModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.WhileStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.WhileStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.Wildcard
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.WildcardBounds
+ Hydra.Java.Syntax: instance GHC.Internal.Read.Read Hydra.Java.Syntax.YieldStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AdditionalBound
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AdditiveExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AdditiveExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AmbiguousName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AndExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AnnotatedIdentifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Annotation
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AnnotationInterfaceBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AnnotationInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AnnotationInterfaceElementDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AnnotationInterfaceElementModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AnnotationInterfaceMemberDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayAccess
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayAccess_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayCreationExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ArrayType_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AssertStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AssertStatement_Pair
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Assignment
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AssignmentExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.AssignmentOperator
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.BasicForStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.BasicForStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Block
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.BlockStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.BooleanArray
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.BreakStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CaseConstant
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CasePattern
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CastExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CastExpression_Lambda
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CastExpression_NotPlusMinus
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CastExpression_Primitive
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CastExpression_RefAndBounds
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CatchClause
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CatchFormalParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CatchType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Catches
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassBodyDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassBodyDeclarationWithComments
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassInstanceCreationExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassInstanceCreationExpression_Qualifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassMemberDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassOrInterfaceType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassOrInterfaceTypeToInstantiate
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ClassTypeQualifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CompactConstructorDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.CompilationUnit
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConditionalAndExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConditionalExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConditionalExpression_TernaryCond
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConditionalExpression_TernaryLambda
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConditionalOrExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConstantDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConstantExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConstantModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConstructorBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConstructorDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConstructorDeclarator
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ConstructorModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ContinueStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.DefaultValue
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.DimExpr
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Dims
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.DoStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ElementValue
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ElementValueArrayInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ElementValuePair
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnhancedForCond
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnhancedForStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnhancedForStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnumBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnumBody_Element
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnumConstant
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnumConstantModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EnumDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EqualityExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.EqualityExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ExceptionType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ExclusiveOrExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ExplicitConstructorInvocation
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ExplicitConstructorInvocation_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Expression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ExpressionName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ExpressionStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FieldAccess
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FieldAccess_Qualifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FieldDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FieldModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Finally
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FloatingPointLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FloatingPointType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ForCond
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ForInit
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ForStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ForStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ForUpdate
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FormalParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.FormalParameter_Simple
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Guard
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Identifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.IfThenElseStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.IfThenElseStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.IfThenStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ImportDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InclusiveOrExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InstanceInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InstanceofExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InstanceofExpression_Rhs
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.IntegerLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.IntegralType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceMemberDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceMemberDeclarationWithComments
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceMethodDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceMethodModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.InterfaceType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LabeledStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LabeledStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LambdaBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LambdaExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LambdaParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LambdaParameterType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LambdaParameter_Normal
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LambdaParameters
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LeftHandSide
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Literal
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LocalClassOrInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LocalVariableDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LocalVariableDeclarationStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.LocalVariableType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MarkerAnnotation
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodDeclarator
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodHeader
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodInvocation
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodInvocation_Complex
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodInvocation_Header
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodInvocation_Variant
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodReference
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodReference_Array
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodReference_Expression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodReference_New
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodReference_Primary
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodReference_ReferenceType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MethodReference_Super
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ModularCompilationUnit
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ModuleDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ModuleDirective
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ModuleDirective_ExportsOrOpens
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ModuleDirective_Provides
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ModuleDirective_Requires
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ModuleName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MultiplicativeExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.MultiplicativeExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.NormalAnnotation
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.NormalClassDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.NormalInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.NumericType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.NumericTypeArray
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.OrdinaryCompilationUnit
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PackageDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PackageModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PackageName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PackageOrTypeName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Pattern
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PostDecrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PostIncrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PostfixExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PreDecrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PreIncrementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Primary
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PrimaryNoNewArrayExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PrimitiveType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.PrimitiveTypeWithAnnotations
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ReceiverParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordBody
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordBodyDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordComponent
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordComponentModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordComponent_Simple
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordHeader
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RecordPattern
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ReferenceType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RelationalExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RelationalExpression_GreaterThan
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RelationalExpression_GreaterThanEqual
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RelationalExpression_LessThan
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RelationalExpression_LessThanEqual
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.RequiresModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Resource
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ResourceSpecification
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Resource_Local
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Result
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ReturnStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ShiftExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ShiftExpression_Binary
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SimpleTypeName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SingleElementAnnotation
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SingleStaticImportDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SingleTypeImportDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Statement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.StatementExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.StatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.StatementWithoutTrailingSubstatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.StaticImportOnDemandDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.StaticInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.StringLiteral
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchBlock
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchBlockStatementGroup
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchBlock_Legacy
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchLabel
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchRule
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchRule_Body
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SwitchStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.SynchronizedStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TextBlock
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.ThrowStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Throws
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TopLevelClassOrInterfaceDeclarationWithComments
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TryStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TryStatement_Simple
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TryStatement_WithFinally
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TryWithResourcesStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Type
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeArgument
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeArgumentsOrDiamond
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeBound
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeBound_ClassOrInterface
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeIdentifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeImportOnDemandDeclaration
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeName
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeNameArray
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeParameterModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypePattern
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.TypeVariable
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.UnannClassType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.UnannType
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.UnaryExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.UnaryExpressionNotPlusMinus
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.UnqualifiedClassInstanceCreationExpression
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.VariableAccess
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.VariableArityParameter
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.VariableArityRecordComponent
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.VariableDeclarator
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.VariableDeclaratorId
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.VariableInitializer
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.VariableModifier
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.WhileStatement
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.WhileStatementNoShortIf
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.Wildcard
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.WildcardBounds
+ Hydra.Java.Syntax: instance GHC.Internal.Show.Show Hydra.Java.Syntax.YieldStatement
Files
- CHANGELOG.md +80/−0
- hydra-java.cabal +7/−7
- src/main/haskell/Hydra/Dsl/Java/Environment.hs +0/−1559
- src/main/haskell/Hydra/Dsl/Java/Language.hs +0/−47
- src/main/haskell/Hydra/Dsl/Java/Syntax.hs +0/−16885
- src/main/haskell/Hydra/Gradle.hs +0/−54
- src/main/haskell/Hydra/Java/Coder.hs +3246/−3243
- src/main/haskell/Hydra/Java/Dsl/Environment.hs +1559/−0
- src/main/haskell/Hydra/Java/Dsl/Language.hs +47/−0
- src/main/haskell/Hydra/Java/Dsl/Syntax.hs +16885/−0
- src/main/haskell/Hydra/Java/Environment.hs +40/−40
- src/main/haskell/Hydra/Java/Gradle.hs +54/−0
- src/main/haskell/Hydra/Java/Language.hs +40/−37
- src/main/haskell/Hydra/Java/Names.hs +27/−26
- src/main/haskell/Hydra/Java/Serde.hs +36/−36
- src/main/haskell/Hydra/Java/Syntax.hs +3572/−3572
- src/main/haskell/Hydra/Java/Testing.hs +35/−35
- src/main/haskell/Hydra/Java/Utils.hs +79/−78
CHANGELOG.md view
@@ -15,6 +15,86 @@ --- +## [0.18.0] - 2026-09-29++Module-naming systematization release: every kernel and package module moves onto a uniform+`hydra.core.*` / `hydra.<pkg>.*` grammar, completing the package ⊃ module ⊃ definition containment+tower. The rename touches every module, definition, and cross-host reference in the codebase; this+release exists primarily to ship it as its own coordinated batch. Also lands the translingual regex+primitive pipeline and several silent-correctness fixes in the coder layer.++### Highlights++- **Module-name grammar systematization** ([#729](https://github.com/CategoricalData/hydra/issues/729)):+ every `hydra.*` module renamed onto a uniform package-derived prefix — kernel modules move to+ `hydra.core.*`, package modules to `hydra.<pkg>.*` — closing the long-standing inconsistency where+ a package name had no structural relationship to the module names it contained. The rename spans+ every host (Haskell, Java, Python, Scala, TypeScript, all four Lisp dialects) and required fixing+ stale namespace references, overlay-directory paths, and `hostOverrides` shims across every driver+ and bootstrap script that had hardcoded the old grammar. Further consolidation (a structurally+ enforced package↔prefix law) is tracked for 0.18.1. The kernel package itself is still published as+ `hydra-kernel` (its modules are under `hydra.core.*`); the `hydra-core` package rename #729 called for+ is under review because that name is taken on PyPI and npm+ ([#770](https://github.com/CategoricalData/hydra/issues/770)).+- **Translingual regex primitives** ([#603](https://github.com/CategoricalData/hydra/issues/603)):+ `hydra.lib.regex` primitives (`find`, `findAll`, `matches`, `replace`, `replaceAll`, `split`) now run+ every pattern through the shared `hydra.regex` parse/print pipeline instead of handing raw pattern+ strings to each host's native engine, so a pattern means the same thing on every host. Includes a+ host-independent conformance suite and a leftmost-longest alternation fix in the PCRE/POSIX printers.+- **Silent-corruption fixes across the coder layer**+ ([#744](https://github.com/CategoricalData/hydra/issues/744),+ [#765](https://github.com/CategoricalData/hydra/issues/765),+ [#649](https://github.com/CategoricalData/hydra/issues/649)): fixed data-corrupting bugs in the+ JSON-Schema/Avro/GraphQL/GraphSON/Protobuf coders (extended integer widths, map-key handling), the+ kernel's encode/decode generators (reversed type-parameter order on 2+-param polymorphic types), and+ the Python coder (silently dropping a module's types when types and terms share a file path).+- **Self-hosted specification docs** ([#723](https://github.com/CategoricalData/hydra/issues/723)):+ the module-reference pages under `docs/specification/` are now generated directly from the kernel+ (`bin/regenerate-spec.sh`) via a new metadata-only doc coder, rather than hand-maintained.++### New features++- **[#603](https://github.com/CategoricalData/hydra/issues/603)** host-independent regex conformance+ suite covering the minimal-core grammar (literals, classes, quantifiers, alternation, anchors,+ grouping) across all 9 hosts.+- **[#723](https://github.com/CategoricalData/hydra/issues/723)** `hydra.markdown` type module and+ `generateModuleDoc`, the metadata-only doc coder backing the self-generated spec pages.+- **[#382](https://github.com/CategoricalData/hydra/issues/382)** the Rust coder is split out of+ `hydra-ext` into its own first-class `hydra-rust` package.++### Bug fixes++- **[#744](https://github.com/CategoricalData/hydra/issues/744)** silent data corruption in+ JSON-Schema/Avro/GraphQL/GraphSON/Protobuf coders for extended integer widths and map-key handling.+- **[#765](https://github.com/CategoricalData/hydra/issues/765)** kernel encode/decode generators+ emitted reversed type-parameter order for 2+-param polymorphic types.+- **[#649](https://github.com/CategoricalData/hydra/issues/649)** Python coder silently dropped a+ module's types when types and terms targeted the same output file path.+- **[#572](https://github.com/CategoricalData/hydra/issues/572)** TypeScript kernel-JSON test+ bridge's compact-form decode heuristic mishandled nullary union arms.+- **[#761](https://github.com/CategoricalData/hydra/issues/761)** cold-seed generation ignored+ `hostOverrides.java=local`, silently pulling the published Java host jar instead.+- **[#736](https://github.com/CategoricalData/hydra/issues/736)** Java build now pins JDK 11 via a+ Gradle toolchain block, instead of depending on ambient `JAVA_HOME`.++### Improvements++- **[#327](https://github.com/CategoricalData/hydra/issues/327)** new `hydra.diff` schema-diff type+ module; `Term.Inject` comparison is now by variant name.+- **[#573](https://github.com/CategoricalData/hydra/issues/573)** per-registry publish sets (Hackage,+ Maven, PyPI, npm) are now derived from the package registry itself instead of 13 hand-maintained+ lists — closes a recurring class of silent release-time drift.+- **[#735](https://github.com/CategoricalData/hydra/issues/735)** cross-host decimal-scale test+ filtering now driven by a translingual `scaleDistinct` capability tag instead of hand-copied+ per-host skip lists.++### Documentation++- **[#655](https://github.com/CategoricalData/hydra/issues/655)** documented the overlay-emission+ "implementation wins" decision for bare primitive references (`docs/overlays.md`).++---+ ## [0.17.7] - 2026-09-14 Correctness-hardening point release on the 0.17.x line, consolidating the 0.17.6 breaking batch. It
hydra-java.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: hydra-java-version: 0.17.7+version: 0.18.0 synopsis: Hydra's Java coder: emit Java source from Hydra modules description: Hydra is an implementation of the LambdaGraph data model, which takes advantage of an isomorphism between labeled hypergraphs and typed lambda calculus: in Hydra, "graphs are programs, and programs are graphs". Java support for Hydra category: Data@@ -27,12 +27,12 @@ library exposed-modules:- Hydra.Dsl.Java.Environment- Hydra.Dsl.Java.Language- Hydra.Dsl.Java.Syntax- Hydra.Gradle Hydra.Java.Coder+ Hydra.Java.Dsl.Environment+ Hydra.Java.Dsl.Language+ Hydra.Java.Dsl.Syntax Hydra.Java.Environment+ Hydra.Java.Gradle Hydra.Java.Language Hydra.Java.Names Hydra.Java.Serde@@ -46,7 +46,7 @@ build-depends: base >=4.19.0 && <4.22 , containers >=0.6.7 && <0.8- , hydra-jvm ==0.17.7- , hydra-kernel ==0.17.7+ , hydra-jvm ==0.18.0+ , hydra-kernel ==0.18.0 , scientific >=0.3.7 && <0.4 default-language: Haskell2010
− src/main/haskell/Hydra/Dsl/Java/Environment.hs
@@ -1,1559 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | DSL functions for hydra.java.environment--module Hydra.Dsl.Java.Environment where--import qualified Hydra.Core as Core-import qualified Hydra.Dsl.Java.Syntax as JavaSyntax-import qualified Hydra.Graph as Graph-import qualified Hydra.Java.Environment as Environment-import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void-import qualified Data.Map as M-import qualified Data.Set as S---- | DSL constructor for hydra.java.environment.Aliases-aliases :: Typed.TypedTerm Packaging.ModuleName -> Typed.TypedTerm (M.Map Packaging.ModuleName Syntax.PackageName) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm (M.Map Core.Name Core.Name) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm (M.Map Core.Name Core.Name) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm (Maybe Core.Type) -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliases currentNamespace packages branchVars recursiveVars inScopeTypeParams polymorphicLocals inScopeJavaVars varRenames lambdaVars typeVarSubst trustedTypeVars methodCodomain thunkedVars =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Typed.unTypedTerm currentNamespace)},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Typed.unTypedTerm packages)},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Typed.unTypedTerm branchVars)},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Typed.unTypedTerm recursiveVars)},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Typed.unTypedTerm inScopeTypeParams)},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Typed.unTypedTerm polymorphicLocals)},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Typed.unTypedTerm inScopeJavaVars)},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Typed.unTypedTerm varRenames)},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Typed.unTypedTerm lambdaVars)},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Typed.unTypedTerm typeVarSubst)},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Typed.unTypedTerm trustedTypeVars)},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Typed.unTypedTerm methodCodomain)},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Typed.unTypedTerm thunkedVars)}]}))---- | DSL name token for hydra.java.environment.Aliases-aliasesAliases :: Typed.TypedName Environment.Aliases-aliasesAliases = Typed.TypedName (Core.Name "hydra.java.environment.Aliases")---- | DSL accessor for the branchVars field of hydra.java.environment.Aliases-aliasesBranchVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesBranchVars x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the currentNamespace field of hydra.java.environment.Aliases-aliasesCurrentNamespace :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Packaging.ModuleName-aliasesCurrentNamespace x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the inScopeJavaVars field of hydra.java.environment.Aliases-aliasesInScopeJavaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesInScopeJavaVars x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the inScopeTypeParams field of hydra.java.environment.Aliases-aliasesInScopeTypeParams :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesInScopeTypeParams x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the lambdaVars field of hydra.java.environment.Aliases-aliasesLambdaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesLambdaVars x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the methodCodomain field of hydra.java.environment.Aliases-aliasesMethodCodomain :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (Maybe Core.Type)-aliasesMethodCodomain x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the packages field of hydra.java.environment.Aliases-aliasesPackages :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Packaging.ModuleName Syntax.PackageName)-aliasesPackages x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the polymorphicLocals field of hydra.java.environment.Aliases-aliasesPolymorphicLocals :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesPolymorphicLocals x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the recursiveVars field of hydra.java.environment.Aliases-aliasesRecursiveVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesRecursiveVars x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the thunkedVars field of hydra.java.environment.Aliases-aliasesThunkedVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesThunkedVars x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the trustedTypeVars field of hydra.java.environment.Aliases-aliasesTrustedTypeVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name)-aliasesTrustedTypeVars x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeVarSubst field of hydra.java.environment.Aliases-aliasesTypeVarSubst :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Core.Name Core.Name)-aliasesTypeVarSubst x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the varRenames field of hydra.java.environment.Aliases-aliasesVarRenames :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Core.Name Core.Name)-aliasesVarRenames x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the branchVars field of hydra.java.environment.Aliases-aliasesWithBranchVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithBranchVars original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the currentNamespace field of hydra.java.environment.Aliases-aliasesWithCurrentNamespace :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Packaging.ModuleName -> Typed.TypedTerm Environment.Aliases-aliasesWithCurrentNamespace original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the inScopeJavaVars field of hydra.java.environment.Aliases-aliasesWithInScopeJavaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithInScopeJavaVars original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the inScopeTypeParams field of hydra.java.environment.Aliases-aliasesWithInScopeTypeParams :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithInScopeTypeParams original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the lambdaVars field of hydra.java.environment.Aliases-aliasesWithLambdaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithLambdaVars original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the methodCodomain field of hydra.java.environment.Aliases-aliasesWithMethodCodomain :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (Maybe Core.Type) -> Typed.TypedTerm Environment.Aliases-aliasesWithMethodCodomain original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the packages field of hydra.java.environment.Aliases-aliasesWithPackages :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Packaging.ModuleName Syntax.PackageName) -> Typed.TypedTerm Environment.Aliases-aliasesWithPackages original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the polymorphicLocals field of hydra.java.environment.Aliases-aliasesWithPolymorphicLocals :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithPolymorphicLocals original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the recursiveVars field of hydra.java.environment.Aliases-aliasesWithRecursiveVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithRecursiveVars original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the thunkedVars field of hydra.java.environment.Aliases-aliasesWithThunkedVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithThunkedVars original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the trustedTypeVars field of hydra.java.environment.Aliases-aliasesWithTrustedTypeVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithTrustedTypeVars original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeVarSubst field of hydra.java.environment.Aliases-aliasesWithTypeVarSubst :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Core.Name Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithTypeVarSubst original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "varRenames")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the varRenames field of hydra.java.environment.Aliases-aliasesWithVarRenames :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Core.Name Core.Name) -> Typed.TypedTerm Environment.Aliases-aliasesWithVarRenames original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "currentNamespace"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "currentNamespace")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "packages"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "packages")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "branchVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "branchVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "recursiveVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "recursiveVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeTypeParams"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeTypeParams")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "polymorphicLocals"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "polymorphicLocals")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "inScopeJavaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "inScopeJavaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "varRenames"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "lambdaVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "lambdaVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeVarSubst"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "typeVarSubst")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trustedTypeVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "trustedTypeVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "methodCodomain"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "methodCodomain")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "thunkedVars"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.Aliases"),- Core.projectionFieldName = (Core.Name "thunkedVars")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.environment.JavaEnvironment-javaEnvironment :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Graph.Graph -> Typed.TypedTerm Environment.JavaEnvironment-javaEnvironment aliases graph =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.JavaEnvironment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "aliases"),- Core.fieldTerm = (Typed.unTypedTerm aliases)},- Core.Field {- Core.fieldName = (Core.Name "graph"),- Core.fieldTerm = (Typed.unTypedTerm graph)}]}))---- | DSL accessor for the aliases field of hydra.java.environment.JavaEnvironment-javaEnvironmentAliases :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Environment.Aliases-javaEnvironmentAliases x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.JavaEnvironment"),- Core.projectionFieldName = (Core.Name "aliases")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the graph field of hydra.java.environment.JavaEnvironment-javaEnvironmentGraph :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Graph.Graph-javaEnvironmentGraph x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.JavaEnvironment"),- Core.projectionFieldName = (Core.Name "graph")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.environment.JavaEnvironment-javaEnvironmentJavaEnvironment :: Typed.TypedName Environment.JavaEnvironment-javaEnvironmentJavaEnvironment = Typed.TypedName (Core.Name "hydra.java.environment.JavaEnvironment")---- | DSL updater for the aliases field of hydra.java.environment.JavaEnvironment-javaEnvironmentWithAliases :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Environment.JavaEnvironment-javaEnvironmentWithAliases original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.JavaEnvironment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "aliases"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "graph"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.JavaEnvironment"),- Core.projectionFieldName = (Core.Name "graph")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the graph field of hydra.java.environment.JavaEnvironment-javaEnvironmentWithGraph :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Graph.Graph -> Typed.TypedTerm Environment.JavaEnvironment-javaEnvironmentWithGraph original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.JavaEnvironment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "aliases"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.JavaEnvironment"),- Core.projectionFieldName = (Core.Name "aliases")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "graph"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.environment.JavaFeatures-javaFeatures :: Typed.TypedTerm Bool -> Typed.TypedTerm Environment.JavaFeatures-javaFeatures supportsDiamondOperator =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.JavaFeatures"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "supportsDiamondOperator"),- Core.fieldTerm = (Typed.unTypedTerm supportsDiamondOperator)}]}))---- | DSL name token for hydra.java.environment.JavaFeatures-javaFeaturesJavaFeatures :: Typed.TypedName Environment.JavaFeatures-javaFeaturesJavaFeatures = Typed.TypedName (Core.Name "hydra.java.environment.JavaFeatures")---- | DSL accessor for the supportsDiamondOperator field of hydra.java.environment.JavaFeatures-javaFeaturesSupportsDiamondOperator :: Typed.TypedTerm Environment.JavaFeatures -> Typed.TypedTerm Bool-javaFeaturesSupportsDiamondOperator x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.environment.JavaFeatures"),- Core.projectionFieldName = (Core.Name "supportsDiamondOperator")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the supportsDiamondOperator field of hydra.java.environment.JavaFeatures-javaFeaturesWithSupportsDiamondOperator :: Typed.TypedTerm Environment.JavaFeatures -> Typed.TypedTerm Bool -> Typed.TypedTerm Environment.JavaFeatures-javaFeaturesWithSupportsDiamondOperator original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.environment.JavaFeatures"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "supportsDiamondOperator"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the constant variant of hydra.java.environment.JavaSymbolClass-javaSymbolClassConstant :: Typed.TypedTerm Environment.JavaSymbolClass-javaSymbolClassConstant =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.environment.JavaSymbolClass"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "constant"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the hoistedLambda variant of hydra.java.environment.JavaSymbolClass-javaSymbolClassHoistedLambda :: Typed.TypedTerm Int -> Typed.TypedTerm Environment.JavaSymbolClass-javaSymbolClassHoistedLambda x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.environment.JavaSymbolClass"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "hoistedLambda"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.environment.JavaSymbolClass-javaSymbolClassJavaSymbolClass :: Typed.TypedName Environment.JavaSymbolClass-javaSymbolClassJavaSymbolClass = Typed.TypedName (Core.Name "hydra.java.environment.JavaSymbolClass")---- | DSL injection for the localVariable variant of hydra.java.environment.JavaSymbolClass-javaSymbolClassLocalVariable :: Typed.TypedTerm Environment.JavaSymbolClass-javaSymbolClassLocalVariable =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.environment.JavaSymbolClass"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "localVariable"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the nullaryFunction variant of hydra.java.environment.JavaSymbolClass-javaSymbolClassNullaryFunction :: Typed.TypedTerm Environment.JavaSymbolClass-javaSymbolClassNullaryFunction =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.environment.JavaSymbolClass"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "nullaryFunction"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the unaryFunction variant of hydra.java.environment.JavaSymbolClass-javaSymbolClassUnaryFunction :: Typed.TypedTerm Environment.JavaSymbolClass-javaSymbolClassUnaryFunction =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.environment.JavaSymbolClass"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "unaryFunction"),- Core.fieldTerm = Core.TermUnit}}))
− src/main/haskell/Hydra/Dsl/Java/Language.hs
@@ -1,47 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | DSL functions for hydra.java.language--module Hydra.Dsl.Java.Language where--import qualified Hydra.Ast as Ast-import qualified Hydra.Classes as Classes-import qualified Hydra.Coders as Coders-import qualified Hydra.Core as Core-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Errors as Errors-import qualified Hydra.Graph as Graph-import qualified Hydra.Java.Language as Language-import qualified Hydra.Json.Model as Model-import qualified Hydra.Lexical as Lexical-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants-import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void-import qualified Data.Set as S---- | DSL reference to hydra.java.language.javaLanguage-javaLanguage :: Typed.TypedTerm Coders.Language-javaLanguage = Typed.TypedTerm (Core.TermVariable (Core.Name "hydra.java.language.javaLanguage"))---- | DSL reference to hydra.java.language.javaMaxTupleLength-javaMaxTupleLength :: Typed.TypedTerm Int-javaMaxTupleLength = Typed.TypedTerm (Core.TermVariable (Core.Name "hydra.java.language.javaMaxTupleLength"))---- | DSL reference to hydra.java.language.reservedWords-reservedWords :: Typed.TypedTerm (S.Set String)-reservedWords = Typed.TypedTerm (Core.TermVariable (Core.Name "hydra.java.language.reservedWords"))
− src/main/haskell/Hydra/Dsl/Java/Syntax.hs
@@ -1,16885 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | DSL functions for hydra.java.syntax--module Hydra.Dsl.Java.Syntax where--import qualified Hydra.Core as Core-import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Typed as Typed-import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void---- | DSL constructor for the hydra.java.syntax.AdditionalBound wrapper-additionalBound :: Typed.TypedTerm Syntax.InterfaceType -> Typed.TypedTerm Syntax.AdditionalBound-additionalBound x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.AdditionalBound"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.AdditionalBound-additionalBoundAdditionalBound :: Typed.TypedName Syntax.AdditionalBound-additionalBoundAdditionalBound = Typed.TypedName (Core.Name "hydra.java.syntax.AdditionalBound")---- | DSL name token for hydra.java.syntax.AdditiveExpression-additiveExpressionAdditiveExpression :: Typed.TypedName Syntax.AdditiveExpression-additiveExpressionAdditiveExpression = Typed.TypedName (Core.Name "hydra.java.syntax.AdditiveExpression")---- | DSL injection for the minus variant of hydra.java.syntax.AdditiveExpression-additiveExpressionMinus :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression-additiveExpressionMinus x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "minus"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the plus variant of hydra.java.syntax.AdditiveExpression-additiveExpressionPlus :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression-additiveExpressionPlus x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "plus"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the unary variant of hydra.java.syntax.AdditiveExpression-additiveExpressionUnary :: Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.AdditiveExpression-additiveExpressionUnary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "unary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.AdditiveExpression_Binary-additiveExpression_Binary :: Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.AdditiveExpression_Binary-additiveExpression_Binary lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL name token for hydra.java.syntax.AdditiveExpression_Binary-additiveExpression_BinaryAdditiveExpression_Binary :: Typed.TypedName Syntax.AdditiveExpression_Binary-additiveExpression_BinaryAdditiveExpression_Binary =- Typed.TypedName (Core.Name "hydra.java.syntax.AdditiveExpression_Binary")---- | DSL accessor for the lhs field of hydra.java.syntax.AdditiveExpression_Binary-additiveExpression_BinaryLhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression-additiveExpression_BinaryLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.java.syntax.AdditiveExpression_Binary-additiveExpression_BinaryRhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression-additiveExpression_BinaryRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.AdditiveExpression_Binary-additiveExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.AdditiveExpression_Binary-additiveExpression_BinaryWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.AdditiveExpression_Binary-additiveExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.AdditiveExpression_Binary-additiveExpression_BinaryWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AdditiveExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.java.syntax.AmbiguousName wrapper-ambiguousName :: Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.AmbiguousName-ambiguousName x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.AmbiguousName"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.AmbiguousName-ambiguousNameAmbiguousName :: Typed.TypedName Syntax.AmbiguousName-ambiguousNameAmbiguousName = Typed.TypedName (Core.Name "hydra.java.syntax.AmbiguousName")---- | DSL constructor for the hydra.java.syntax.AndExpression wrapper-andExpression :: Typed.TypedTerm [Syntax.EqualityExpression] -> Typed.TypedTerm Syntax.AndExpression-andExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.AndExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.AndExpression-andExpressionAndExpression :: Typed.TypedName Syntax.AndExpression-andExpressionAndExpression = Typed.TypedName (Core.Name "hydra.java.syntax.AndExpression")---- | DSL constructor for hydra.java.syntax.AnnotatedIdentifier-annotatedIdentifier :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.AnnotatedIdentifier-annotatedIdentifier annotations identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotatedIdentifier"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL name token for hydra.java.syntax.AnnotatedIdentifier-annotatedIdentifierAnnotatedIdentifier :: Typed.TypedName Syntax.AnnotatedIdentifier-annotatedIdentifierAnnotatedIdentifier = Typed.TypedName (Core.Name "hydra.java.syntax.AnnotatedIdentifier")---- | DSL accessor for the annotations field of hydra.java.syntax.AnnotatedIdentifier-annotatedIdentifierAnnotations :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm [Syntax.Annotation]-annotatedIdentifierAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotatedIdentifier"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.AnnotatedIdentifier-annotatedIdentifierIdentifier :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm Syntax.Identifier-annotatedIdentifierIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotatedIdentifier"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annotations field of hydra.java.syntax.AnnotatedIdentifier-annotatedIdentifierWithAnnotations :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.AnnotatedIdentifier-annotatedIdentifierWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotatedIdentifier"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotatedIdentifier"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.AnnotatedIdentifier-annotatedIdentifierWithIdentifier :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.AnnotatedIdentifier-annotatedIdentifierWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotatedIdentifier"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotatedIdentifier"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.Annotation-annotationAnnotation :: Typed.TypedName Syntax.Annotation-annotationAnnotation = Typed.TypedName (Core.Name "hydra.java.syntax.Annotation")---- | DSL constructor for the hydra.java.syntax.AnnotationInterfaceBody wrapper-annotationInterfaceBody :: Typed.TypedTerm [Syntax.AnnotationInterfaceMemberDeclaration] -> Typed.TypedTerm Syntax.AnnotationInterfaceBody-annotationInterfaceBody x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceBody"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.AnnotationInterfaceBody-annotationInterfaceBodyAnnotationInterfaceBody :: Typed.TypedName Syntax.AnnotationInterfaceBody-annotationInterfaceBodyAnnotationInterfaceBody = Typed.TypedName (Core.Name "hydra.java.syntax.AnnotationInterfaceBody")---- | DSL constructor for hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclaration :: Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.AnnotationInterfaceBody -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclaration modifiers identifier body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL name token for hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationAnnotationInterfaceDeclaration :: Typed.TypedName Syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationAnnotationInterfaceDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration")---- | DSL accessor for the body field of hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationBody :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceBody-annotationInterfaceDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier-annotationInterfaceDeclarationIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier]-annotationInterfaceDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationWithBody :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceBody -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationWithIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationWithModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration-annotationInterfaceDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclaration :: Typed.TypedTerm [Syntax.AnnotationInterfaceElementModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm (Maybe Syntax.DefaultValue) -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclaration modifiers type_ identifier dims default_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm dims)},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Typed.unTypedTerm default_)}]}))---- | DSL name token for hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationAnnotationInterfaceElementDeclaration :: Typed.TypedName Syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationAnnotationInterfaceElementDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration")---- | DSL accessor for the default field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationDefault :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.DefaultValue)-annotationInterfaceElementDeclarationDefault x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the dims field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationDims :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.Dims)-annotationInterfaceElementDeclarationDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.Identifier-annotationInterfaceElementDeclarationIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm [Syntax.AnnotationInterfaceElementModifier]-annotationInterfaceElementDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationType :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.UnannType-annotationInterfaceElementDeclarationType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the default field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithDefault :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.DefaultValue) -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithDefault original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the dims field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithDims :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithDims original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm [Syntax.AnnotationInterfaceElementModifier] -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithType :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration-annotationInterfaceElementDeclarationWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),- Core.projectionFieldName = (Core.Name "default")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the abstract variant of hydra.java.syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierAbstract :: Typed.TypedTerm Syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierAbstract =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "abstract"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the annotation variant of hydra.java.syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierAnnotationInterfaceElementModifier :: Typed.TypedName Syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierAnnotationInterfaceElementModifier =- Typed.TypedName (Core.Name "hydra.java.syntax.AnnotationInterfaceElementModifier")---- | DSL injection for the public variant of hydra.java.syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierPublic :: Typed.TypedTerm Syntax.AnnotationInterfaceElementModifier-annotationInterfaceElementModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the annotationInterface variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationAnnotationInterface :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationAnnotationInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotationInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationAnnotationInterfaceMemberDeclaration :: Typed.TypedName Syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationAnnotationInterfaceMemberDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration")---- | DSL injection for the class variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationClass x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "class"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the constant variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationConstant :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationConstant x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "constant"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the interface variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration-annotationInterfaceMemberDeclarationInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "interface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the marker variant of hydra.java.syntax.Annotation-annotationMarker :: Typed.TypedTerm Syntax.MarkerAnnotation -> Typed.TypedTerm Syntax.Annotation-annotationMarker x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Annotation"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "marker"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the normal variant of hydra.java.syntax.Annotation-annotationNormal :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm Syntax.Annotation-annotationNormal x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Annotation"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "normal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the singleElement variant of hydra.java.syntax.Annotation-annotationSingleElement :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm Syntax.Annotation-annotationSingleElement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Annotation"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "singleElement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ArrayAccess-arrayAccess :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ArrayAccess_Variant -> Typed.TypedTerm Syntax.ArrayAccess-arrayAccess expression variant =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm variant)}]}))---- | DSL name token for hydra.java.syntax.ArrayAccess-arrayAccessArrayAccess :: Typed.TypedName Syntax.ArrayAccess-arrayAccessArrayAccess = Typed.TypedName (Core.Name "hydra.java.syntax.ArrayAccess")---- | DSL accessor for the expression field of hydra.java.syntax.ArrayAccess-arrayAccessExpression :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm (Maybe Syntax.Expression)-arrayAccessExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayAccess"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the variant field of hydra.java.syntax.ArrayAccess-arrayAccessVariant :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.ArrayAccess_Variant-arrayAccessVariant x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayAccess"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expression field of hydra.java.syntax.ArrayAccess-arrayAccessWithExpression :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ArrayAccess-arrayAccessWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayAccess"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the variant field of hydra.java.syntax.ArrayAccess-arrayAccessWithVariant :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.ArrayAccess_Variant -> Typed.TypedTerm Syntax.ArrayAccess-arrayAccessWithVariant original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayAccess"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.ArrayAccess_Variant-arrayAccess_VariantArrayAccess_Variant :: Typed.TypedName Syntax.ArrayAccess_Variant-arrayAccess_VariantArrayAccess_Variant = Typed.TypedName (Core.Name "hydra.java.syntax.ArrayAccess_Variant")---- | DSL injection for the arrayCreationWithInitializer variant of hydra.java.syntax.ArrayAccess_Variant-arrayAccess_VariantArrayCreationWithInitializer :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer -> Typed.TypedTerm Syntax.ArrayAccess_Variant-arrayAccess_VariantArrayCreationWithInitializer x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayAccess_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "arrayCreationWithInitializer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the name variant of hydra.java.syntax.ArrayAccess_Variant-arrayAccess_VariantName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.ArrayAccess_Variant-arrayAccess_VariantName x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayAccess_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the primary variant of hydra.java.syntax.ArrayAccess_Variant-arrayAccess_VariantPrimary :: Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression -> Typed.TypedTerm Syntax.ArrayAccess_Variant-arrayAccess_VariantPrimary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayAccess_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ArrayCreationExpression-arrayCreationExpressionArrayCreationExpression :: Typed.TypedName Syntax.ArrayCreationExpression-arrayCreationExpressionArrayCreationExpression = Typed.TypedName (Core.Name "hydra.java.syntax.ArrayCreationExpression")---- | DSL injection for the noInit variant of hydra.java.syntax.ArrayCreationExpression-arrayCreationExpressionNoInit :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpression-arrayCreationExpressionNoInit x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "noInit"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the withInit variant of hydra.java.syntax.ArrayCreationExpression-arrayCreationExpressionWithInit :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpression-arrayCreationExpressionWithInit x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "withInit"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithInitializer-arrayCreationExpressionWithInitializerArrayCreationExpressionWithInitializer :: Typed.TypedName Syntax.ArrayCreationExpressionWithInitializer-arrayCreationExpressionWithInitializerArrayCreationExpressionWithInitializer =- Typed.TypedName (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer")---- | DSL injection for the classOrInterface variant of hydra.java.syntax.ArrayCreationExpressionWithInitializer-arrayCreationExpressionWithInitializerClassOrInterface :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer-arrayCreationExpressionWithInitializerClassOrInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the primitive variant of hydra.java.syntax.ArrayCreationExpressionWithInitializer-arrayCreationExpressionWithInitializerPrimitive :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer-arrayCreationExpressionWithInitializerPrimitive x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primitive"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterface type_ dims array =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm dims)},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm array)}]}))---- | DSL accessor for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayInitializer-arrayCreationExpressionWithInitializer_ClassOrInterfaceArray x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "array")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceArrayCreationExpressionWithInitializer_ClassOrInterface :: Typed.TypedName Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceArrayCreationExpressionWithInitializer_ClassOrInterface =- Typed.TypedName (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface")---- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.Dims]-arrayCreationExpressionWithInitializer_ClassOrInterfaceDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType-arrayCreationExpressionWithInitializer_ClassOrInterfaceType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceWithArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceWithArray original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceWithDims original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "array")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface-arrayCreationExpressionWithInitializer_ClassOrInterfaceWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "array")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_Primitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_Primitive type_ dims array =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm dims)},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm array)}]}))---- | DSL accessor for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayInitializer-arrayCreationExpressionWithInitializer_PrimitiveArray x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "array")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveArrayCreationExpressionWithInitializer_Primitive :: Typed.TypedName Syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveArrayCreationExpressionWithInitializer_Primitive =- Typed.TypedName (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive")---- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm [Syntax.Dims]-arrayCreationExpressionWithInitializer_PrimitiveDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations-arrayCreationExpressionWithInitializer_PrimitiveType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveWithArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveWithArray original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveWithDims original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "array")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive-arrayCreationExpressionWithInitializer_PrimitiveWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "array")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer-arrayCreationExpressionWithoutInitializerArrayCreationExpressionWithoutInitializer :: Typed.TypedName Syntax.ArrayCreationExpressionWithoutInitializer-arrayCreationExpressionWithoutInitializerArrayCreationExpressionWithoutInitializer =- Typed.TypedName (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer")---- | DSL injection for the classOrInterface variant of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer-arrayCreationExpressionWithoutInitializerClassOrInterface :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer-arrayCreationExpressionWithoutInitializerClassOrInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the primitive variant of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer-arrayCreationExpressionWithoutInitializerPrimitive :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer-arrayCreationExpressionWithoutInitializerPrimitive x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primitive"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterface type_ dimExprs dims =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Typed.unTypedTerm dimExprs)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm dims)}]}))---- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceArrayCreationExpressionWithoutInitializer_ClassOrInterface :: Typed.TypedName Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceArrayCreationExpressionWithoutInitializer_ClassOrInterface =- Typed.TypedName (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface")---- | DSL accessor for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.DimExpr]-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dimExprs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm (Maybe Syntax.Dims)-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDimExprs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDims original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dimExprs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface-arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dimExprs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_Primitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_Primitive type_ dimExprs dims =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Typed.unTypedTerm dimExprs)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm dims)}]}))---- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveArrayCreationExpressionWithoutInitializer_Primitive :: Typed.TypedName Syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveArrayCreationExpressionWithoutInitializer_Primitive =- Typed.TypedName (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive")---- | DSL accessor for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm [Syntax.DimExpr]-arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dimExprs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm (Maybe Syntax.Dims)-arrayCreationExpressionWithoutInitializer_PrimitiveDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations-arrayCreationExpressionWithoutInitializer_PrimitiveType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveWithDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveWithDimExprs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveWithDims original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dimExprs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive-arrayCreationExpressionWithoutInitializer_PrimitiveWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dimExprs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dimExprs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.ArrayInitializer wrapper-arrayInitializer :: Typed.TypedTerm [[Syntax.VariableInitializer]] -> Typed.TypedTerm Syntax.ArrayInitializer-arrayInitializer x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ArrayInitializer"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ArrayInitializer-arrayInitializerArrayInitializer :: Typed.TypedName Syntax.ArrayInitializer-arrayInitializerArrayInitializer = Typed.TypedName (Core.Name "hydra.java.syntax.ArrayInitializer")---- | DSL constructor for hydra.java.syntax.ArrayType-arrayType :: Typed.TypedTerm Syntax.Dims -> Typed.TypedTerm Syntax.ArrayType_Variant -> Typed.TypedTerm Syntax.ArrayType-arrayType dims variant =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm dims)},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm variant)}]}))---- | DSL name token for hydra.java.syntax.ArrayType-arrayTypeArrayType :: Typed.TypedName Syntax.ArrayType-arrayTypeArrayType = Typed.TypedName (Core.Name "hydra.java.syntax.ArrayType")---- | DSL accessor for the dims field of hydra.java.syntax.ArrayType-arrayTypeDims :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.Dims-arrayTypeDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayType"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the variant field of hydra.java.syntax.ArrayType-arrayTypeVariant :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.ArrayType_Variant-arrayTypeVariant x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayType"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the dims field of hydra.java.syntax.ArrayType-arrayTypeWithDims :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.Dims -> Typed.TypedTerm Syntax.ArrayType-arrayTypeWithDims original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayType"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the variant field of hydra.java.syntax.ArrayType-arrayTypeWithVariant :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.ArrayType_Variant -> Typed.TypedTerm Syntax.ArrayType-arrayTypeWithVariant original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ArrayType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ArrayType"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.ArrayType_Variant-arrayType_VariantArrayType_Variant :: Typed.TypedName Syntax.ArrayType_Variant-arrayType_VariantArrayType_Variant = Typed.TypedName (Core.Name "hydra.java.syntax.ArrayType_Variant")---- | DSL injection for the classOrInterface variant of hydra.java.syntax.ArrayType_Variant-arrayType_VariantClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ArrayType_Variant-arrayType_VariantClassOrInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayType_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the primitive variant of hydra.java.syntax.ArrayType_Variant-arrayType_VariantPrimitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.ArrayType_Variant-arrayType_VariantPrimitive x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayType_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primitive"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the variable variant of hydra.java.syntax.ArrayType_Variant-arrayType_VariantVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.ArrayType_Variant-arrayType_VariantVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayType_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.AssertStatement-assertStatementAssertStatement :: Typed.TypedName Syntax.AssertStatement-assertStatementAssertStatement = Typed.TypedName (Core.Name "hydra.java.syntax.AssertStatement")---- | DSL injection for the pair variant of hydra.java.syntax.AssertStatement-assertStatementPair :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.AssertStatement-assertStatementPair x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssertStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "pair"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the single variant of hydra.java.syntax.AssertStatement-assertStatementSingle :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement-assertStatementSingle x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssertStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "single"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.AssertStatement_Pair-assertStatement_Pair :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement_Pair-assertStatement_Pair first second =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AssertStatement_Pair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "first"),- Core.fieldTerm = (Typed.unTypedTerm first)},- Core.Field {- Core.fieldName = (Core.Name "second"),- Core.fieldTerm = (Typed.unTypedTerm second)}]}))---- | DSL name token for hydra.java.syntax.AssertStatement_Pair-assertStatement_PairAssertStatement_Pair :: Typed.TypedName Syntax.AssertStatement_Pair-assertStatement_PairAssertStatement_Pair = Typed.TypedName (Core.Name "hydra.java.syntax.AssertStatement_Pair")---- | DSL accessor for the first field of hydra.java.syntax.AssertStatement_Pair-assertStatement_PairFirst :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression-assertStatement_PairFirst x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AssertStatement_Pair"),- Core.projectionFieldName = (Core.Name "first")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the second field of hydra.java.syntax.AssertStatement_Pair-assertStatement_PairSecond :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression-assertStatement_PairSecond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AssertStatement_Pair"),- Core.projectionFieldName = (Core.Name "second")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the first field of hydra.java.syntax.AssertStatement_Pair-assertStatement_PairWithFirst :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement_Pair-assertStatement_PairWithFirst original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AssertStatement_Pair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "first"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "second"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AssertStatement_Pair"),- Core.projectionFieldName = (Core.Name "second")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the second field of hydra.java.syntax.AssertStatement_Pair-assertStatement_PairWithSecond :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement_Pair-assertStatement_PairWithSecond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.AssertStatement_Pair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "first"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.AssertStatement_Pair"),- Core.projectionFieldName = (Core.Name "first")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "second"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.Assignment-assignment :: Typed.TypedTerm Syntax.LeftHandSide -> Typed.TypedTerm Syntax.AssignmentOperator -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Assignment-assignment lhs op expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "op"),- Core.fieldTerm = (Typed.unTypedTerm op)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL name token for hydra.java.syntax.Assignment-assignmentAssignment :: Typed.TypedName Syntax.Assignment-assignmentAssignment = Typed.TypedName (Core.Name "hydra.java.syntax.Assignment")---- | DSL accessor for the expression field of hydra.java.syntax.Assignment-assignmentExpression :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.Expression-assignmentExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL injection for the assignment variant of hydra.java.syntax.AssignmentExpression-assignmentExpressionAssignment :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.AssignmentExpression-assignmentExpressionAssignment x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "assignment"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.AssignmentExpression-assignmentExpressionAssignmentExpression :: Typed.TypedName Syntax.AssignmentExpression-assignmentExpressionAssignmentExpression = Typed.TypedName (Core.Name "hydra.java.syntax.AssignmentExpression")---- | DSL injection for the conditional variant of hydra.java.syntax.AssignmentExpression-assignmentExpressionConditional :: Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.AssignmentExpression-assignmentExpressionConditional x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "conditional"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL accessor for the lhs field of hydra.java.syntax.Assignment-assignmentLhs :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.LeftHandSide-assignmentLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the op field of hydra.java.syntax.Assignment-assignmentOp :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.AssignmentOperator-assignmentOp x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "op")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL injection for the and variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorAnd :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorAnd =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "and"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.AssignmentOperator-assignmentOperatorAssignmentOperator :: Typed.TypedName Syntax.AssignmentOperator-assignmentOperatorAssignmentOperator = Typed.TypedName (Core.Name "hydra.java.syntax.AssignmentOperator")---- | DSL injection for the div variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorDiv :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorDiv =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "div"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the minus variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorMinus :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorMinus =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "minus"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the mod variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorMod :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorMod =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "mod"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the or variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorOr :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorOr =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "or"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the plus variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorPlus :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorPlus =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "plus"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the shiftLeft variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorShiftLeft :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorShiftLeft =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "shiftLeft"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the shiftRight variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorShiftRight :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorShiftRight =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "shiftRight"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the shiftRightZeroFill variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorShiftRightZeroFill :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorShiftRightZeroFill =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "shiftRightZeroFill"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the simple variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorSimple :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorSimple =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the times variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorTimes :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorTimes =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "times"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the xor variant of hydra.java.syntax.AssignmentOperator-assignmentOperatorXor :: Typed.TypedTerm Syntax.AssignmentOperator-assignmentOperatorXor =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.AssignmentOperator"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "xor"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL updater for the expression field of hydra.java.syntax.Assignment-assignmentWithExpression :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Assignment-assignmentWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "op"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "op")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the lhs field of hydra.java.syntax.Assignment-assignmentWithLhs :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.LeftHandSide -> Typed.TypedTerm Syntax.Assignment-assignmentWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "op"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "op")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the op field of hydra.java.syntax.Assignment-assignmentWithOp :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.AssignmentOperator -> Typed.TypedTerm Syntax.Assignment-assignmentWithOp original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "op"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Assignment"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.BasicForStatement-basicForStatement :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.BasicForStatement-basicForStatement cond body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.BasicForStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL name token for hydra.java.syntax.BasicForStatement-basicForStatementBasicForStatement :: Typed.TypedName Syntax.BasicForStatement-basicForStatementBasicForStatement = Typed.TypedName (Core.Name "hydra.java.syntax.BasicForStatement")---- | DSL accessor for the body field of hydra.java.syntax.BasicForStatement-basicForStatementBody :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.Statement-basicForStatementBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.BasicForStatement-basicForStatementCond :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.ForCond-basicForStatementCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.java.syntax.BasicForStatementNoShortIf-basicForStatementNoShortIf :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.BasicForStatementNoShortIf-basicForStatementNoShortIf cond body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL name token for hydra.java.syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfBasicForStatementNoShortIf :: Typed.TypedName Syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfBasicForStatementNoShortIf =- Typed.TypedName (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf")---- | DSL accessor for the body field of hydra.java.syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfBody :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-basicForStatementNoShortIfBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfCond :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.ForCond-basicForStatementNoShortIfCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfWithBody :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.BasicForStatementNoShortIf-basicForStatementNoShortIfWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the body field of hydra.java.syntax.BasicForStatement-basicForStatementWithBody :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.BasicForStatement-basicForStatementWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.BasicForStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.BasicForStatement-basicForStatementWithCond :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.BasicForStatement-basicForStatementWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.BasicForStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.BasicForStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.Block wrapper-block :: Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.Block-block x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.Block"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Block-blockBlock :: Typed.TypedName Syntax.Block-blockBlock = Typed.TypedName (Core.Name "hydra.java.syntax.Block")---- | DSL name token for hydra.java.syntax.BlockStatement-blockStatementBlockStatement :: Typed.TypedName Syntax.BlockStatement-blockStatementBlockStatement = Typed.TypedName (Core.Name "hydra.java.syntax.BlockStatement")---- | DSL injection for the localClassOrInterface variant of hydra.java.syntax.BlockStatement-blockStatementLocalClassOrInterface :: Typed.TypedTerm Syntax.LocalClassOrInterfaceDeclaration -> Typed.TypedTerm Syntax.BlockStatement-blockStatementLocalClassOrInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.BlockStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "localClassOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the localVariableDeclaration variant of hydra.java.syntax.BlockStatement-blockStatementLocalVariableDeclaration :: Typed.TypedTerm Syntax.LocalVariableDeclarationStatement -> Typed.TypedTerm Syntax.BlockStatement-blockStatementLocalVariableDeclaration x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.BlockStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "localVariableDeclaration"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the statement variant of hydra.java.syntax.BlockStatement-blockStatementStatement :: Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.BlockStatement-blockStatementStatement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.BlockStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the array variant of hydra.java.syntax.BooleanArray-booleanArrayArray :: Typed.TypedTerm Syntax.BooleanArray -> Typed.TypedTerm Syntax.BooleanArray-booleanArrayArray x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.BooleanArray"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.BooleanArray-booleanArrayBooleanArray :: Typed.TypedName Syntax.BooleanArray-booleanArrayBooleanArray = Typed.TypedName (Core.Name "hydra.java.syntax.BooleanArray")---- | DSL injection for the simple variant of hydra.java.syntax.BooleanArray-booleanArraySimple :: Typed.TypedTerm Syntax.BooleanArray-booleanArraySimple =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.BooleanArray"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.BreakStatement wrapper-breakStatement :: Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.BreakStatement-breakStatement x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.BreakStatement"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.BreakStatement-breakStatementBreakStatement :: Typed.TypedName Syntax.BreakStatement-breakStatementBreakStatement = Typed.TypedName (Core.Name "hydra.java.syntax.BreakStatement")---- | DSL constructor for the hydra.java.syntax.CaseConstant wrapper-caseConstant :: Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.CaseConstant-caseConstant x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.CaseConstant"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.CaseConstant-caseConstantCaseConstant :: Typed.TypedName Syntax.CaseConstant-caseConstantCaseConstant = Typed.TypedName (Core.Name "hydra.java.syntax.CaseConstant")---- | DSL constructor for hydra.java.syntax.CasePattern-casePattern :: Typed.TypedTerm Syntax.Pattern -> Typed.TypedTerm (Maybe Syntax.Guard) -> Typed.TypedTerm Syntax.CasePattern-casePattern pattern guard =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CasePattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "pattern"),- Core.fieldTerm = (Typed.unTypedTerm pattern)},- Core.Field {- Core.fieldName = (Core.Name "guard"),- Core.fieldTerm = (Typed.unTypedTerm guard)}]}))---- | DSL name token for hydra.java.syntax.CasePattern-casePatternCasePattern :: Typed.TypedName Syntax.CasePattern-casePatternCasePattern = Typed.TypedName (Core.Name "hydra.java.syntax.CasePattern")---- | DSL accessor for the guard field of hydra.java.syntax.CasePattern-casePatternGuard :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm (Maybe Syntax.Guard)-casePatternGuard x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CasePattern"),- Core.projectionFieldName = (Core.Name "guard")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the pattern field of hydra.java.syntax.CasePattern-casePatternPattern :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm Syntax.Pattern-casePatternPattern x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CasePattern"),- Core.projectionFieldName = (Core.Name "pattern")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the guard field of hydra.java.syntax.CasePattern-casePatternWithGuard :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm (Maybe Syntax.Guard) -> Typed.TypedTerm Syntax.CasePattern-casePatternWithGuard original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CasePattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "pattern"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CasePattern"),- Core.projectionFieldName = (Core.Name "pattern")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "guard"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the pattern field of hydra.java.syntax.CasePattern-casePatternWithPattern :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm Syntax.Pattern -> Typed.TypedTerm Syntax.CasePattern-casePatternWithPattern original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CasePattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "pattern"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "guard"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CasePattern"),- Core.projectionFieldName = (Core.Name "guard")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.CastExpression-castExpressionCastExpression :: Typed.TypedName Syntax.CastExpression-castExpressionCastExpression = Typed.TypedName (Core.Name "hydra.java.syntax.CastExpression")---- | DSL injection for the lambda variant of hydra.java.syntax.CastExpression-castExpressionLambda :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.CastExpression-castExpressionLambda x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.CastExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "lambda"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the notPlusMinus variant of hydra.java.syntax.CastExpression-castExpressionNotPlusMinus :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.CastExpression-castExpressionNotPlusMinus x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.CastExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "notPlusMinus"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the primitive variant of hydra.java.syntax.CastExpression-castExpressionPrimitive :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.CastExpression-castExpressionPrimitive x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.CastExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primitive"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.CastExpression_Lambda-castExpression_Lambda :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.CastExpression_Lambda-castExpression_Lambda refAndBounds expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_Lambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "refAndBounds"),- Core.fieldTerm = (Typed.unTypedTerm refAndBounds)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL name token for hydra.java.syntax.CastExpression_Lambda-castExpression_LambdaCastExpression_Lambda :: Typed.TypedName Syntax.CastExpression_Lambda-castExpression_LambdaCastExpression_Lambda = Typed.TypedName (Core.Name "hydra.java.syntax.CastExpression_Lambda")---- | DSL accessor for the expression field of hydra.java.syntax.CastExpression_Lambda-castExpression_LambdaExpression :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.LambdaExpression-castExpression_LambdaExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Lambda"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the refAndBounds field of hydra.java.syntax.CastExpression_Lambda-castExpression_LambdaRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds-castExpression_LambdaRefAndBounds x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Lambda"),- Core.projectionFieldName = (Core.Name "refAndBounds")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expression field of hydra.java.syntax.CastExpression_Lambda-castExpression_LambdaWithExpression :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.CastExpression_Lambda-castExpression_LambdaWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_Lambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "refAndBounds"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Lambda"),- Core.projectionFieldName = (Core.Name "refAndBounds")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the refAndBounds field of hydra.java.syntax.CastExpression_Lambda-castExpression_LambdaWithRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.CastExpression_Lambda-castExpression_LambdaWithRefAndBounds original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_Lambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "refAndBounds"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Lambda"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinus :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinus refAndBounds expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "refAndBounds"),- Core.fieldTerm = (Typed.unTypedTerm refAndBounds)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL name token for hydra.java.syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusCastExpression_NotPlusMinus :: Typed.TypedName Syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusCastExpression_NotPlusMinus =- Typed.TypedName (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus")---- | DSL accessor for the expression field of hydra.java.syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusExpression :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.UnaryExpression-castExpression_NotPlusMinusExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the refAndBounds field of hydra.java.syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds-castExpression_NotPlusMinusRefAndBounds x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),- Core.projectionFieldName = (Core.Name "refAndBounds")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expression field of hydra.java.syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusWithExpression :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "refAndBounds"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),- Core.projectionFieldName = (Core.Name "refAndBounds")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the refAndBounds field of hydra.java.syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusWithRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.CastExpression_NotPlusMinus-castExpression_NotPlusMinusWithRefAndBounds original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "refAndBounds"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.CastExpression_Primitive-castExpression_Primitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_Primitive-castExpression_Primitive type_ expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL name token for hydra.java.syntax.CastExpression_Primitive-castExpression_PrimitiveCastExpression_Primitive :: Typed.TypedName Syntax.CastExpression_Primitive-castExpression_PrimitiveCastExpression_Primitive =- Typed.TypedName (Core.Name "hydra.java.syntax.CastExpression_Primitive")---- | DSL accessor for the expression field of hydra.java.syntax.CastExpression_Primitive-castExpression_PrimitiveExpression :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.UnaryExpression-castExpression_PrimitiveExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Primitive"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.CastExpression_Primitive-castExpression_PrimitiveType :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations-castExpression_PrimitiveType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expression field of hydra.java.syntax.CastExpression_Primitive-castExpression_PrimitiveWithExpression :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_Primitive-castExpression_PrimitiveWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Primitive"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the type field of hydra.java.syntax.CastExpression_Primitive-castExpression_PrimitiveWithType :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.CastExpression_Primitive-castExpression_PrimitiveWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_Primitive"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_Primitive"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.CastExpression_RefAndBounds-castExpression_RefAndBounds :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds-castExpression_RefAndBounds type_ bounds =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "bounds"),- Core.fieldTerm = (Typed.unTypedTerm bounds)}]}))---- | DSL accessor for the bounds field of hydra.java.syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsBounds :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm [Syntax.AdditionalBound]-castExpression_RefAndBoundsBounds x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"),- Core.projectionFieldName = (Core.Name "bounds")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsCastExpression_RefAndBounds :: Typed.TypedName Syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsCastExpression_RefAndBounds =- Typed.TypedName (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds")---- | DSL accessor for the type field of hydra.java.syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsType :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.ReferenceType-castExpression_RefAndBoundsType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the bounds field of hydra.java.syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsWithBounds :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsWithBounds original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "bounds"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the type field of hydra.java.syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsWithType :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds-castExpression_RefAndBoundsWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "bounds"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"),- Core.projectionFieldName = (Core.Name "bounds")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.CatchClause-catchClause :: Typed.TypedTerm (Maybe Syntax.CatchFormalParameter) -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.CatchClause-catchClause parameter block =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameter"),- Core.fieldTerm = (Typed.unTypedTerm parameter)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm block)}]}))---- | DSL accessor for the block field of hydra.java.syntax.CatchClause-catchClauseBlock :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm Syntax.Block-catchClauseBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchClause"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.CatchClause-catchClauseCatchClause :: Typed.TypedName Syntax.CatchClause-catchClauseCatchClause = Typed.TypedName (Core.Name "hydra.java.syntax.CatchClause")---- | DSL accessor for the parameter field of hydra.java.syntax.CatchClause-catchClauseParameter :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm (Maybe Syntax.CatchFormalParameter)-catchClauseParameter x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchClause"),- Core.projectionFieldName = (Core.Name "parameter")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the block field of hydra.java.syntax.CatchClause-catchClauseWithBlock :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.CatchClause-catchClauseWithBlock original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameter"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchClause"),- Core.projectionFieldName = (Core.Name "parameter")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the parameter field of hydra.java.syntax.CatchClause-catchClauseWithParameter :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm (Maybe Syntax.CatchFormalParameter) -> Typed.TypedTerm Syntax.CatchClause-catchClauseWithParameter original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchClause"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameter"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchClause"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.CatchFormalParameter-catchFormalParameter :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.CatchFormalParameter-catchFormalParameter modifiers type_ id =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm id)}]}))---- | DSL name token for hydra.java.syntax.CatchFormalParameter-catchFormalParameterCatchFormalParameter :: Typed.TypedName Syntax.CatchFormalParameter-catchFormalParameterCatchFormalParameter = Typed.TypedName (Core.Name "hydra.java.syntax.CatchFormalParameter")---- | DSL accessor for the id field of hydra.java.syntax.CatchFormalParameter-catchFormalParameterId :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.VariableDeclaratorId-catchFormalParameterId x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.CatchFormalParameter-catchFormalParameterModifiers :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm [Syntax.VariableModifier]-catchFormalParameterModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.CatchFormalParameter-catchFormalParameterType :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.CatchType-catchFormalParameterType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the id field of hydra.java.syntax.CatchFormalParameter-catchFormalParameterWithId :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.CatchFormalParameter-catchFormalParameterWithId original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.CatchFormalParameter-catchFormalParameterWithModifiers :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.CatchFormalParameter-catchFormalParameterWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.CatchFormalParameter-catchFormalParameterWithType :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.CatchFormalParameter-catchFormalParameterWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchFormalParameter"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.CatchType-catchType :: Typed.TypedTerm Syntax.UnannClassType -> Typed.TypedTerm [Syntax.ClassType] -> Typed.TypedTerm Syntax.CatchType-catchType type_ types =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "types"),- Core.fieldTerm = (Typed.unTypedTerm types)}]}))---- | DSL name token for hydra.java.syntax.CatchType-catchTypeCatchType :: Typed.TypedName Syntax.CatchType-catchTypeCatchType = Typed.TypedName (Core.Name "hydra.java.syntax.CatchType")---- | DSL accessor for the type field of hydra.java.syntax.CatchType-catchTypeType :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.UnannClassType-catchTypeType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchType"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the types field of hydra.java.syntax.CatchType-catchTypeTypes :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm [Syntax.ClassType]-catchTypeTypes x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchType"),- Core.projectionFieldName = (Core.Name "types")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the type field of hydra.java.syntax.CatchType-catchTypeWithType :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.UnannClassType -> Typed.TypedTerm Syntax.CatchType-catchTypeWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "types"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchType"),- Core.projectionFieldName = (Core.Name "types")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the types field of hydra.java.syntax.CatchType-catchTypeWithTypes :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm [Syntax.ClassType] -> Typed.TypedTerm Syntax.CatchType-catchTypeWithTypes original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CatchType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CatchType"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "types"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.java.syntax.Catches wrapper-catches :: Typed.TypedTerm [Syntax.CatchClause] -> Typed.TypedTerm Syntax.Catches-catches x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.Catches"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Catches-catchesCatches :: Typed.TypedName Syntax.Catches-catchesCatches = Typed.TypedName (Core.Name "hydra.java.syntax.Catches")---- | DSL constructor for the hydra.java.syntax.ClassBody wrapper-classBody :: Typed.TypedTerm [Syntax.ClassBodyDeclarationWithComments] -> Typed.TypedTerm Syntax.ClassBody-classBody x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ClassBody"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ClassBody-classBodyClassBody :: Typed.TypedName Syntax.ClassBody-classBodyClassBody = Typed.TypedName (Core.Name "hydra.java.syntax.ClassBody")---- | DSL name token for hydra.java.syntax.ClassBodyDeclaration-classBodyDeclarationClassBodyDeclaration :: Typed.TypedName Syntax.ClassBodyDeclaration-classBodyDeclarationClassBodyDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.ClassBodyDeclaration")---- | DSL injection for the classMember variant of hydra.java.syntax.ClassBodyDeclaration-classBodyDeclarationClassMember :: Typed.TypedTerm Syntax.ClassMemberDeclaration -> Typed.TypedTerm Syntax.ClassBodyDeclaration-classBodyDeclarationClassMember x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classMember"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the constructorDeclaration variant of hydra.java.syntax.ClassBodyDeclaration-classBodyDeclarationConstructorDeclaration :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ClassBodyDeclaration-classBodyDeclarationConstructorDeclaration x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "constructorDeclaration"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the instanceInitializer variant of hydra.java.syntax.ClassBodyDeclaration-classBodyDeclarationInstanceInitializer :: Typed.TypedTerm Syntax.InstanceInitializer -> Typed.TypedTerm Syntax.ClassBodyDeclaration-classBodyDeclarationInstanceInitializer x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "instanceInitializer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the staticInitializer variant of hydra.java.syntax.ClassBodyDeclaration-classBodyDeclarationStaticInitializer :: Typed.TypedTerm Syntax.StaticInitializer -> Typed.TypedTerm Syntax.ClassBodyDeclaration-classBodyDeclarationStaticInitializer x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "staticInitializer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithComments :: Typed.TypedTerm Syntax.ClassBodyDeclaration -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithComments value comments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Typed.unTypedTerm comments)}]}))---- | DSL name token for hydra.java.syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsClassBodyDeclarationWithComments :: Typed.TypedName Syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsClassBodyDeclarationWithComments =- Typed.TypedName (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments")---- | DSL accessor for the comments field of hydra.java.syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsComments :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm (Maybe String)-classBodyDeclarationWithCommentsComments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "comments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the value field of hydra.java.syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsValue :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm Syntax.ClassBodyDeclaration-classBodyDeclarationWithCommentsValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the comments field of hydra.java.syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsWithComments :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsWithComments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the value field of hydra.java.syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsWithValue :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm Syntax.ClassBodyDeclaration -> Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments-classBodyDeclarationWithCommentsWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "comments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.ClassDeclaration-classDeclarationClassDeclaration :: Typed.TypedName Syntax.ClassDeclaration-classDeclarationClassDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.ClassDeclaration")---- | DSL injection for the enum variant of hydra.java.syntax.ClassDeclaration-classDeclarationEnum :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.ClassDeclaration-classDeclarationEnum x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "enum"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the normal variant of hydra.java.syntax.ClassDeclaration-classDeclarationNormal :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.ClassDeclaration-classDeclarationNormal x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "normal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the record variant of hydra.java.syntax.ClassDeclaration-classDeclarationRecord :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.ClassDeclaration-classDeclarationRecord x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "record"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ClassInstanceCreationExpression-classInstanceCreationExpression :: Typed.TypedTerm (Maybe Syntax.ClassInstanceCreationExpression_Qualifier) -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression-classInstanceCreationExpression qualifier expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm qualifier)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL name token for hydra.java.syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionClassInstanceCreationExpression :: Typed.TypedName Syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionClassInstanceCreationExpression =- Typed.TypedName (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression")---- | DSL accessor for the expression field of hydra.java.syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionExpression :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression-classInstanceCreationExpressionExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qualifier field of hydra.java.syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionQualifier :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassInstanceCreationExpression_Qualifier)-classInstanceCreationExpressionQualifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expression field of hydra.java.syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionWithExpression :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the qualifier field of hydra.java.syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionWithQualifier :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassInstanceCreationExpression_Qualifier) -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression-classInstanceCreationExpressionWithQualifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.ClassInstanceCreationExpression_Qualifier-classInstanceCreationExpression_QualifierClassInstanceCreationExpression_Qualifier :: Typed.TypedName Syntax.ClassInstanceCreationExpression_Qualifier-classInstanceCreationExpression_QualifierClassInstanceCreationExpression_Qualifier =- Typed.TypedName (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier")---- | DSL injection for the expression variant of hydra.java.syntax.ClassInstanceCreationExpression_Qualifier-classInstanceCreationExpression_QualifierExpression :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression_Qualifier-classInstanceCreationExpression_QualifierExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the primary variant of hydra.java.syntax.ClassInstanceCreationExpression_Qualifier-classInstanceCreationExpression_QualifierPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression_Qualifier-classInstanceCreationExpression_QualifierPrimary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the boolean variant of hydra.java.syntax.ClassLiteral-classLiteralBoolean :: Typed.TypedTerm Syntax.BooleanArray -> Typed.TypedTerm Syntax.ClassLiteral-classLiteralBoolean x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassLiteral"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "boolean"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ClassLiteral-classLiteralClassLiteral :: Typed.TypedName Syntax.ClassLiteral-classLiteralClassLiteral = Typed.TypedName (Core.Name "hydra.java.syntax.ClassLiteral")---- | DSL injection for the numericType variant of hydra.java.syntax.ClassLiteral-classLiteralNumericType :: Typed.TypedTerm Syntax.NumericTypeArray -> Typed.TypedTerm Syntax.ClassLiteral-classLiteralNumericType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassLiteral"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "numericType"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the type variant of hydra.java.syntax.ClassLiteral-classLiteralType :: Typed.TypedTerm Syntax.TypeNameArray -> Typed.TypedTerm Syntax.ClassLiteral-classLiteralType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassLiteral"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the void variant of hydra.java.syntax.ClassLiteral-classLiteralVoid :: Typed.TypedTerm Syntax.ClassLiteral-classLiteralVoid =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassLiteral"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "void"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the class variant of hydra.java.syntax.ClassMemberDeclaration-classMemberDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration-classMemberDeclarationClass x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "class"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ClassMemberDeclaration-classMemberDeclarationClassMemberDeclaration :: Typed.TypedName Syntax.ClassMemberDeclaration-classMemberDeclarationClassMemberDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.ClassMemberDeclaration")---- | DSL injection for the field variant of hydra.java.syntax.ClassMemberDeclaration-classMemberDeclarationField :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration-classMemberDeclarationField x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "field"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the interface variant of hydra.java.syntax.ClassMemberDeclaration-classMemberDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration-classMemberDeclarationInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "interface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the method variant of hydra.java.syntax.ClassMemberDeclaration-classMemberDeclarationMethod :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration-classMemberDeclarationMethod x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "method"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the none variant of hydra.java.syntax.ClassMemberDeclaration-classMemberDeclarationNone :: Typed.TypedTerm Syntax.ClassMemberDeclaration-classMemberDeclarationNone =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "none"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the abstract variant of hydra.java.syntax.ClassModifier-classModifierAbstract :: Typed.TypedTerm Syntax.ClassModifier-classModifierAbstract =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "abstract"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the annotation variant of hydra.java.syntax.ClassModifier-classModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ClassModifier-classModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ClassModifier-classModifierClassModifier :: Typed.TypedName Syntax.ClassModifier-classModifierClassModifier = Typed.TypedName (Core.Name "hydra.java.syntax.ClassModifier")---- | DSL injection for the final variant of hydra.java.syntax.ClassModifier-classModifierFinal :: Typed.TypedTerm Syntax.ClassModifier-classModifierFinal =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "final"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the nonSealed variant of hydra.java.syntax.ClassModifier-classModifierNonSealed :: Typed.TypedTerm Syntax.ClassModifier-classModifierNonSealed =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "nonSealed"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the private variant of hydra.java.syntax.ClassModifier-classModifierPrivate :: Typed.TypedTerm Syntax.ClassModifier-classModifierPrivate =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "private"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the protected variant of hydra.java.syntax.ClassModifier-classModifierProtected :: Typed.TypedTerm Syntax.ClassModifier-classModifierProtected =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "protected"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the public variant of hydra.java.syntax.ClassModifier-classModifierPublic :: Typed.TypedTerm Syntax.ClassModifier-classModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the sealed variant of hydra.java.syntax.ClassModifier-classModifierSealed :: Typed.TypedTerm Syntax.ClassModifier-classModifierSealed =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "sealed"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the static variant of hydra.java.syntax.ClassModifier-classModifierStatic :: Typed.TypedTerm Syntax.ClassModifier-classModifierStatic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "static"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the strictfp variant of hydra.java.syntax.ClassModifier-classModifierStrictfp :: Typed.TypedTerm Syntax.ClassModifier-classModifierStrictfp =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "strictfp"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the class variant of hydra.java.syntax.ClassOrInterfaceType-classOrInterfaceTypeClass :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ClassOrInterfaceType-classOrInterfaceTypeClass x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "class"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ClassOrInterfaceType-classOrInterfaceTypeClassOrInterfaceType :: Typed.TypedName Syntax.ClassOrInterfaceType-classOrInterfaceTypeClassOrInterfaceType = Typed.TypedName (Core.Name "hydra.java.syntax.ClassOrInterfaceType")---- | DSL injection for the interface variant of hydra.java.syntax.ClassOrInterfaceType-classOrInterfaceTypeInterface :: Typed.TypedTerm Syntax.InterfaceType -> Typed.TypedTerm Syntax.ClassOrInterfaceType-classOrInterfaceTypeInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "interface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiate :: Typed.TypedTerm [Syntax.AnnotatedIdentifier] -> Typed.TypedTerm (Maybe Syntax.TypeArgumentsOrDiamond) -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiate identifiers typeArguments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Typed.unTypedTerm identifiers)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)}]}))---- | DSL name token for hydra.java.syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateClassOrInterfaceTypeToInstantiate :: Typed.TypedName Syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateClassOrInterfaceTypeToInstantiate =- Typed.TypedName (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate")---- | DSL accessor for the identifiers field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateIdentifiers :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm [Syntax.AnnotatedIdentifier]-classOrInterfaceTypeToInstantiateIdentifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeArguments field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateTypeArguments :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm (Maybe Syntax.TypeArgumentsOrDiamond)-classOrInterfaceTypeToInstantiateTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifiers field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateWithIdentifiers :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm [Syntax.AnnotatedIdentifier] -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateWithIdentifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateWithTypeArguments :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm (Maybe Syntax.TypeArgumentsOrDiamond) -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate-classOrInterfaceTypeToInstantiateWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.ClassType-classType :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ClassTypeQualifier -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ClassType-classType annotations qualifier identifier arguments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm qualifier)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm arguments)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.ClassType-classTypeAnnotations :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.Annotation]-classTypeAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the arguments field of hydra.java.syntax.ClassType-classTypeArguments :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.TypeArgument]-classTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ClassType-classTypeClassType :: Typed.TypedName Syntax.ClassType-classTypeClassType = Typed.TypedName (Core.Name "hydra.java.syntax.ClassType")---- | DSL accessor for the identifier field of hydra.java.syntax.ClassType-classTypeIdentifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.TypeIdentifier-classTypeIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qualifier field of hydra.java.syntax.ClassType-classTypeQualifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ClassTypeQualifier-classTypeQualifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ClassTypeQualifier-classTypeQualifierClassTypeQualifier :: Typed.TypedName Syntax.ClassTypeQualifier-classTypeQualifierClassTypeQualifier = Typed.TypedName (Core.Name "hydra.java.syntax.ClassTypeQualifier")---- | DSL injection for the none variant of hydra.java.syntax.ClassTypeQualifier-classTypeQualifierNone :: Typed.TypedTerm Syntax.ClassTypeQualifier-classTypeQualifierNone =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassTypeQualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "none"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the package variant of hydra.java.syntax.ClassTypeQualifier-classTypeQualifierPackage :: Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm Syntax.ClassTypeQualifier-classTypeQualifierPackage x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassTypeQualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the parent variant of hydra.java.syntax.ClassTypeQualifier-classTypeQualifierParent :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ClassTypeQualifier-classTypeQualifierParent x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ClassTypeQualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "parent"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL updater for the annotations field of hydra.java.syntax.ClassType-classTypeWithAnnotations :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ClassType-classTypeWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the arguments field of hydra.java.syntax.ClassType-classTypeWithArguments :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ClassType-classTypeWithArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.ClassType-classTypeWithIdentifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.ClassType-classTypeWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the qualifier field of hydra.java.syntax.ClassType-classTypeWithQualifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ClassTypeQualifier -> Typed.TypedTerm Syntax.ClassType-classTypeWithQualifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ClassType"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclaration :: Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.CompactConstructorDeclaration-compactConstructorDeclaration modifiers name body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclarationBody :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody-compactConstructorDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclarationCompactConstructorDeclaration :: Typed.TypedName Syntax.CompactConstructorDeclaration-compactConstructorDeclarationCompactConstructorDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.CompactConstructorDeclaration")---- | DSL accessor for the modifiers field of hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclarationModifiers :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier]-compactConstructorDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclarationName :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.SimpleTypeName-compactConstructorDeclarationName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclarationWithBody :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.CompactConstructorDeclaration-compactConstructorDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclarationWithModifiers :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.CompactConstructorDeclaration-compactConstructorDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.java.syntax.CompactConstructorDeclaration-compactConstructorDeclarationWithName :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.CompactConstructorDeclaration-compactConstructorDeclarationWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.CompactConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.CompilationUnit-compilationUnitCompilationUnit :: Typed.TypedName Syntax.CompilationUnit-compilationUnitCompilationUnit = Typed.TypedName (Core.Name "hydra.java.syntax.CompilationUnit")---- | DSL injection for the modular variant of hydra.java.syntax.CompilationUnit-compilationUnitModular :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm Syntax.CompilationUnit-compilationUnitModular x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.CompilationUnit"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "modular"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ordinary variant of hydra.java.syntax.CompilationUnit-compilationUnitOrdinary :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm Syntax.CompilationUnit-compilationUnitOrdinary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.CompilationUnit"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "ordinary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.ConditionalAndExpression wrapper-conditionalAndExpression :: Typed.TypedTerm [Syntax.InclusiveOrExpression] -> Typed.TypedTerm Syntax.ConditionalAndExpression-conditionalAndExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ConditionalAndExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ConditionalAndExpression-conditionalAndExpressionConditionalAndExpression :: Typed.TypedName Syntax.ConditionalAndExpression-conditionalAndExpressionConditionalAndExpression =- Typed.TypedName (Core.Name "hydra.java.syntax.ConditionalAndExpression")---- | DSL name token for hydra.java.syntax.ConditionalExpression-conditionalExpressionConditionalExpression :: Typed.TypedName Syntax.ConditionalExpression-conditionalExpressionConditionalExpression = Typed.TypedName (Core.Name "hydra.java.syntax.ConditionalExpression")---- | DSL injection for the simple variant of hydra.java.syntax.ConditionalExpression-conditionalExpressionSimple :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.ConditionalExpression-conditionalExpressionSimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ternaryCond variant of hydra.java.syntax.ConditionalExpression-conditionalExpressionTernaryCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalExpression-conditionalExpressionTernaryCond x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "ternaryCond"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ternaryLambda variant of hydra.java.syntax.ConditionalExpression-conditionalExpressionTernaryLambda :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.ConditionalExpression-conditionalExpressionTernaryLambda x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "ternaryLambda"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCond :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCond cond ifTrue ifFalse =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Typed.unTypedTerm ifTrue)},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Typed.unTypedTerm ifFalse)}]}))---- | DSL accessor for the cond field of hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalOrExpression-conditionalExpression_TernaryCondCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondConditionalExpression_TernaryCond :: Typed.TypedName Syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondConditionalExpression_TernaryCond =- Typed.TypedName (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond")---- | DSL accessor for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalExpression-conditionalExpression_TernaryCondIfFalse x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "ifFalse")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.Expression-conditionalExpression_TernaryCondIfTrue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "ifTrue")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cond field of hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondWithCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "ifTrue")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "ifFalse")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondWithIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondWithIfFalse original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "ifTrue")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondWithIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond-conditionalExpression_TernaryCondWithIfTrue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),- Core.projectionFieldName = (Core.Name "ifFalse")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambda :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambda cond ifTrue ifFalse =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Typed.unTypedTerm ifTrue)},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Typed.unTypedTerm ifFalse)}]}))---- | DSL accessor for the cond field of hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.ConditionalOrExpression-conditionalExpression_TernaryLambdaCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaConditionalExpression_TernaryLambda :: Typed.TypedName Syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaConditionalExpression_TernaryLambda =- Typed.TypedName (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda")---- | DSL accessor for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.LambdaExpression-conditionalExpression_TernaryLambdaIfFalse x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "ifFalse")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.Expression-conditionalExpression_TernaryLambdaIfTrue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "ifTrue")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cond field of hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaWithCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "ifTrue")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "ifFalse")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaWithIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaWithIfFalse original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "ifTrue")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaWithIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda-conditionalExpression_TernaryLambdaWithIfTrue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "ifTrue"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "ifFalse"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),- Core.projectionFieldName = (Core.Name "ifFalse")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.ConditionalOrExpression wrapper-conditionalOrExpression :: Typed.TypedTerm [Syntax.ConditionalAndExpression] -> Typed.TypedTerm Syntax.ConditionalOrExpression-conditionalOrExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ConditionalOrExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ConditionalOrExpression-conditionalOrExpressionConditionalOrExpression :: Typed.TypedName Syntax.ConditionalOrExpression-conditionalOrExpressionConditionalOrExpression = Typed.TypedName (Core.Name "hydra.java.syntax.ConditionalOrExpression")---- | DSL constructor for hydra.java.syntax.ConstantDeclaration-constantDeclaration :: Typed.TypedTerm [Syntax.ConstantModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.ConstantDeclaration-constantDeclaration modifiers type_ variables =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "variables"),- Core.fieldTerm = (Typed.unTypedTerm variables)}]}))---- | DSL name token for hydra.java.syntax.ConstantDeclaration-constantDeclarationConstantDeclaration :: Typed.TypedName Syntax.ConstantDeclaration-constantDeclarationConstantDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.ConstantDeclaration")---- | DSL accessor for the modifiers field of hydra.java.syntax.ConstantDeclaration-constantDeclarationModifiers :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.ConstantModifier]-constantDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.ConstantDeclaration-constantDeclarationType :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.UnannType-constantDeclarationType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the variables field of hydra.java.syntax.ConstantDeclaration-constantDeclarationVariables :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator]-constantDeclarationVariables x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "variables")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the modifiers field of hydra.java.syntax.ConstantDeclaration-constantDeclarationWithModifiers :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.ConstantModifier] -> Typed.TypedTerm Syntax.ConstantDeclaration-constantDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variables"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "variables")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.ConstantDeclaration-constantDeclarationWithType :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.ConstantDeclaration-constantDeclarationWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "variables"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "variables")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the variables field of hydra.java.syntax.ConstantDeclaration-constantDeclarationWithVariables :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.ConstantDeclaration-constantDeclarationWithVariables original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstantDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variables"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.java.syntax.ConstantExpression wrapper-constantExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConstantExpression-constantExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ConstantExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ConstantExpression-constantExpressionConstantExpression :: Typed.TypedName Syntax.ConstantExpression-constantExpressionConstantExpression = Typed.TypedName (Core.Name "hydra.java.syntax.ConstantExpression")---- | DSL injection for the annotation variant of hydra.java.syntax.ConstantModifier-constantModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ConstantModifier-constantModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstantModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ConstantModifier-constantModifierConstantModifier :: Typed.TypedName Syntax.ConstantModifier-constantModifierConstantModifier = Typed.TypedName (Core.Name "hydra.java.syntax.ConstantModifier")---- | DSL injection for the final variant of hydra.java.syntax.ConstantModifier-constantModifierFinal :: Typed.TypedTerm Syntax.ConstantModifier-constantModifierFinal =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstantModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "final"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the public variant of hydra.java.syntax.ConstantModifier-constantModifierPublic :: Typed.TypedTerm Syntax.ConstantModifier-constantModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstantModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the static variant of hydra.java.syntax.ConstantModifier-constantModifierStatic :: Typed.TypedTerm Syntax.ConstantModifier-constantModifierStatic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstantModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "static"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.java.syntax.ConstructorBody-constructorBody :: Typed.TypedTerm (Maybe Syntax.ExplicitConstructorInvocation) -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.ConstructorBody-constructorBody invocation statements =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorBody"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "invocation"),- Core.fieldTerm = (Typed.unTypedTerm invocation)},- Core.Field {- Core.fieldName = (Core.Name "statements"),- Core.fieldTerm = (Typed.unTypedTerm statements)}]}))---- | DSL name token for hydra.java.syntax.ConstructorBody-constructorBodyConstructorBody :: Typed.TypedName Syntax.ConstructorBody-constructorBodyConstructorBody = Typed.TypedName (Core.Name "hydra.java.syntax.ConstructorBody")---- | DSL accessor for the invocation field of hydra.java.syntax.ConstructorBody-constructorBodyInvocation :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm (Maybe Syntax.ExplicitConstructorInvocation)-constructorBodyInvocation x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorBody"),- Core.projectionFieldName = (Core.Name "invocation")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the statements field of hydra.java.syntax.ConstructorBody-constructorBodyStatements :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm [Syntax.BlockStatement]-constructorBodyStatements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorBody"),- Core.projectionFieldName = (Core.Name "statements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the invocation field of hydra.java.syntax.ConstructorBody-constructorBodyWithInvocation :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm (Maybe Syntax.ExplicitConstructorInvocation) -> Typed.TypedTerm Syntax.ConstructorBody-constructorBodyWithInvocation original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorBody"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "invocation"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "statements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorBody"),- Core.projectionFieldName = (Core.Name "statements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the statements field of hydra.java.syntax.ConstructorBody-constructorBodyWithStatements :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.ConstructorBody-constructorBodyWithStatements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorBody"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "invocation"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorBody"),- Core.projectionFieldName = (Core.Name "invocation")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "statements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.ConstructorDeclaration-constructorDeclaration :: Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.ConstructorDeclaration-constructorDeclaration modifiers constructor throws body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Typed.unTypedTerm constructor)},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Typed.unTypedTerm throws)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationBody :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody-constructorDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the constructor field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationConstructor :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorDeclarator-constructorDeclarationConstructor x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "constructor")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ConstructorDeclaration-constructorDeclarationConstructorDeclaration :: Typed.TypedName Syntax.ConstructorDeclaration-constructorDeclarationConstructorDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.ConstructorDeclaration")---- | DSL accessor for the modifiers field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationModifiers :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier]-constructorDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the throws field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationThrows :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm (Maybe Syntax.Throws)-constructorDeclarationThrows x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationWithBody :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.ConstructorDeclaration-constructorDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "constructor")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the constructor field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationWithConstructor :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm Syntax.ConstructorDeclaration-constructorDeclarationWithConstructor original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationWithModifiers :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.ConstructorDeclaration-constructorDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "constructor")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the throws field of hydra.java.syntax.ConstructorDeclaration-constructorDeclarationWithThrows :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.ConstructorDeclaration-constructorDeclarationWithThrows original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "constructor"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "constructor")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.ConstructorDeclarator-constructorDeclarator :: Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.ConstructorDeclarator-constructorDeclarator parameters name receiverParameter formalParameters =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm parameters)},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Typed.unTypedTerm receiverParameter)},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Typed.unTypedTerm formalParameters)}]}))---- | DSL name token for hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorConstructorDeclarator :: Typed.TypedName Syntax.ConstructorDeclarator-constructorDeclaratorConstructorDeclarator = Typed.TypedName (Core.Name "hydra.java.syntax.ConstructorDeclarator")---- | DSL accessor for the formalParameters field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorFormalParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.FormalParameter]-constructorDeclaratorFormalParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "formalParameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorName :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm Syntax.SimpleTypeName-constructorDeclaratorName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the parameters field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.TypeParameter]-constructorDeclaratorParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the receiverParameter field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorReceiverParameter :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter)-constructorDeclaratorReceiverParameter x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "receiverParameter")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the formalParameters field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorWithFormalParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.ConstructorDeclarator-constructorDeclaratorWithFormalParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "receiverParameter")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorWithName :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.ConstructorDeclarator-constructorDeclaratorWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "receiverParameter")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "formalParameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the parameters field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorWithParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.ConstructorDeclarator-constructorDeclaratorWithParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "receiverParameter")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "formalParameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the receiverParameter field of hydra.java.syntax.ConstructorDeclarator-constructorDeclaratorWithReceiverParameter :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm Syntax.ConstructorDeclarator-constructorDeclaratorWithReceiverParameter original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ConstructorDeclarator"),- Core.projectionFieldName = (Core.Name "formalParameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the annotation variant of hydra.java.syntax.ConstructorModifier-constructorModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ConstructorModifier-constructorModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstructorModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ConstructorModifier-constructorModifierConstructorModifier :: Typed.TypedName Syntax.ConstructorModifier-constructorModifierConstructorModifier = Typed.TypedName (Core.Name "hydra.java.syntax.ConstructorModifier")---- | DSL injection for the private variant of hydra.java.syntax.ConstructorModifier-constructorModifierPrivate :: Typed.TypedTerm Syntax.ConstructorModifier-constructorModifierPrivate =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstructorModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "private"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the protected variant of hydra.java.syntax.ConstructorModifier-constructorModifierProtected :: Typed.TypedTerm Syntax.ConstructorModifier-constructorModifierProtected =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstructorModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "protected"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the public variant of hydra.java.syntax.ConstructorModifier-constructorModifierPublic :: Typed.TypedTerm Syntax.ConstructorModifier-constructorModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ConstructorModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.ContinueStatement wrapper-continueStatement :: Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.ContinueStatement-continueStatement x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ContinueStatement"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ContinueStatement-continueStatementContinueStatement :: Typed.TypedName Syntax.ContinueStatement-continueStatementContinueStatement = Typed.TypedName (Core.Name "hydra.java.syntax.ContinueStatement")---- | DSL constructor for the hydra.java.syntax.DefaultValue wrapper-defaultValue :: Typed.TypedTerm Syntax.ElementValue -> Typed.TypedTerm Syntax.DefaultValue-defaultValue x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.DefaultValue"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.DefaultValue-defaultValueDefaultValue :: Typed.TypedName Syntax.DefaultValue-defaultValueDefaultValue = Typed.TypedName (Core.Name "hydra.java.syntax.DefaultValue")---- | DSL constructor for hydra.java.syntax.DimExpr-dimExpr :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.DimExpr-dimExpr annotations expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.DimExpr"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.DimExpr-dimExprAnnotations :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm [Syntax.Annotation]-dimExprAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DimExpr"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.DimExpr-dimExprDimExpr :: Typed.TypedName Syntax.DimExpr-dimExprDimExpr = Typed.TypedName (Core.Name "hydra.java.syntax.DimExpr")---- | DSL accessor for the expression field of hydra.java.syntax.DimExpr-dimExprExpression :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm (Maybe Syntax.Expression)-dimExprExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DimExpr"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annotations field of hydra.java.syntax.DimExpr-dimExprWithAnnotations :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.DimExpr-dimExprWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.DimExpr"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DimExpr"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the expression field of hydra.java.syntax.DimExpr-dimExprWithExpression :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.DimExpr-dimExprWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.DimExpr"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DimExpr"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.java.syntax.Dims wrapper-dims :: Typed.TypedTerm [[Syntax.Annotation]] -> Typed.TypedTerm Syntax.Dims-dims x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.Dims"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Dims-dimsDims :: Typed.TypedName Syntax.Dims-dimsDims = Typed.TypedName (Core.Name "hydra.java.syntax.Dims")---- | DSL constructor for hydra.java.syntax.DoStatement-doStatement :: Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DoStatement-doStatement body cond =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.DoStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)},- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)}]}))---- | DSL accessor for the body field of hydra.java.syntax.DoStatement-doStatementBody :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Statement-doStatementBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DoStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.DoStatement-doStatementCond :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Expression-doStatementCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DoStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.DoStatement-doStatementDoStatement :: Typed.TypedName Syntax.DoStatement-doStatementDoStatement = Typed.TypedName (Core.Name "hydra.java.syntax.DoStatement")---- | DSL updater for the body field of hydra.java.syntax.DoStatement-doStatementWithBody :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.DoStatement-doStatementWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.DoStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DoStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the cond field of hydra.java.syntax.DoStatement-doStatementWithCond :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DoStatement-doStatementWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.DoStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.DoStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the annotation variant of hydra.java.syntax.ElementValue-elementValueAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ElementValue-elementValueAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ElementValue"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.ElementValueArrayInitializer wrapper-elementValueArrayInitializer :: Typed.TypedTerm [Syntax.ElementValue] -> Typed.TypedTerm Syntax.ElementValueArrayInitializer-elementValueArrayInitializer x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ElementValueArrayInitializer"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ElementValueArrayInitializer-elementValueArrayInitializerElementValueArrayInitializer :: Typed.TypedName Syntax.ElementValueArrayInitializer-elementValueArrayInitializerElementValueArrayInitializer =- Typed.TypedName (Core.Name "hydra.java.syntax.ElementValueArrayInitializer")---- | DSL injection for the conditionalExpression variant of hydra.java.syntax.ElementValue-elementValueConditionalExpression :: Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.ElementValue-elementValueConditionalExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ElementValue"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "conditionalExpression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ElementValue-elementValueElementValue :: Typed.TypedName Syntax.ElementValue-elementValueElementValue = Typed.TypedName (Core.Name "hydra.java.syntax.ElementValue")---- | DSL injection for the elementValueArrayInitializer variant of hydra.java.syntax.ElementValue-elementValueElementValueArrayInitializer :: Typed.TypedTerm Syntax.ElementValueArrayInitializer -> Typed.TypedTerm Syntax.ElementValue-elementValueElementValueArrayInitializer x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ElementValue"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "elementValueArrayInitializer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ElementValuePair-elementValuePair :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ElementValue -> Typed.TypedTerm Syntax.ElementValuePair-elementValuePair key value =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ElementValuePair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "key"),- Core.fieldTerm = (Typed.unTypedTerm key)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL name token for hydra.java.syntax.ElementValuePair-elementValuePairElementValuePair :: Typed.TypedName Syntax.ElementValuePair-elementValuePairElementValuePair = Typed.TypedName (Core.Name "hydra.java.syntax.ElementValuePair")---- | DSL accessor for the key field of hydra.java.syntax.ElementValuePair-elementValuePairKey :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.Identifier-elementValuePairKey x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ElementValuePair"),- Core.projectionFieldName = (Core.Name "key")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the value field of hydra.java.syntax.ElementValuePair-elementValuePairValue :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.ElementValue-elementValuePairValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ElementValuePair"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the key field of hydra.java.syntax.ElementValuePair-elementValuePairWithKey :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ElementValuePair-elementValuePairWithKey original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ElementValuePair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "key"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ElementValuePair"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the value field of hydra.java.syntax.ElementValuePair-elementValuePairWithValue :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.ElementValue -> Typed.TypedTerm Syntax.ElementValuePair-elementValuePairWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ElementValuePair"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "key"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ElementValuePair"),- Core.projectionFieldName = (Core.Name "key")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.EnhancedForCond-enhancedForCond :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.EnhancedForCond-enhancedForCond declaration expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "declaration"),- Core.fieldTerm = (Typed.unTypedTerm declaration)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL accessor for the declaration field of hydra.java.syntax.EnhancedForCond-enhancedForCondDeclaration :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.LocalVariableDeclaration-enhancedForCondDeclaration x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForCond"),- Core.projectionFieldName = (Core.Name "declaration")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnhancedForCond-enhancedForCondEnhancedForCond :: Typed.TypedName Syntax.EnhancedForCond-enhancedForCondEnhancedForCond = Typed.TypedName (Core.Name "hydra.java.syntax.EnhancedForCond")---- | DSL accessor for the expression field of hydra.java.syntax.EnhancedForCond-enhancedForCondExpression :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.Expression-enhancedForCondExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForCond"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the declaration field of hydra.java.syntax.EnhancedForCond-enhancedForCondWithDeclaration :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.EnhancedForCond-enhancedForCondWithDeclaration original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "declaration"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForCond"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the expression field of hydra.java.syntax.EnhancedForCond-enhancedForCondWithExpression :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.EnhancedForCond-enhancedForCondWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "declaration"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForCond"),- Core.projectionFieldName = (Core.Name "declaration")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.EnhancedForStatement-enhancedForStatement :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.EnhancedForStatement-enhancedForStatement cond body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.EnhancedForStatement-enhancedForStatementBody :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.Statement-enhancedForStatementBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.EnhancedForStatement-enhancedForStatementCond :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.EnhancedForCond-enhancedForStatementCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnhancedForStatement-enhancedForStatementEnhancedForStatement :: Typed.TypedName Syntax.EnhancedForStatement-enhancedForStatementEnhancedForStatement = Typed.TypedName (Core.Name "hydra.java.syntax.EnhancedForStatement")---- | DSL constructor for hydra.java.syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIf :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIf cond body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfBody :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-enhancedForStatementNoShortIfBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfCond :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForCond-enhancedForStatementNoShortIfCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfEnhancedForStatementNoShortIf :: Typed.TypedName Syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfEnhancedForStatementNoShortIf =- Typed.TypedName (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf")---- | DSL updater for the body field of hydra.java.syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfWithBody :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf-enhancedForStatementNoShortIfWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the body field of hydra.java.syntax.EnhancedForStatement-enhancedForStatementWithBody :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.EnhancedForStatement-enhancedForStatementWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.EnhancedForStatement-enhancedForStatementWithCond :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.EnhancedForStatement-enhancedForStatementWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnhancedForStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.EnumBody wrapper-enumBody :: Typed.TypedTerm [Syntax.EnumBody_Element] -> Typed.TypedTerm Syntax.EnumBody-enumBody x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.EnumBody"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnumBody-enumBodyEnumBody :: Typed.TypedName Syntax.EnumBody-enumBodyEnumBody = Typed.TypedName (Core.Name "hydra.java.syntax.EnumBody")---- | DSL constructor for hydra.java.syntax.EnumBody_Element-enumBody_Element :: Typed.TypedTerm [Syntax.EnumConstant] -> Typed.TypedTerm [Syntax.ClassBodyDeclaration] -> Typed.TypedTerm Syntax.EnumBody_Element-enumBody_Element constants bodyDeclarations =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumBody_Element"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "constants"),- Core.fieldTerm = (Typed.unTypedTerm constants)},- Core.Field {- Core.fieldName = (Core.Name "bodyDeclarations"),- Core.fieldTerm = (Typed.unTypedTerm bodyDeclarations)}]}))---- | DSL accessor for the bodyDeclarations field of hydra.java.syntax.EnumBody_Element-enumBody_ElementBodyDeclarations :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.ClassBodyDeclaration]-enumBody_ElementBodyDeclarations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumBody_Element"),- Core.projectionFieldName = (Core.Name "bodyDeclarations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the constants field of hydra.java.syntax.EnumBody_Element-enumBody_ElementConstants :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.EnumConstant]-enumBody_ElementConstants x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumBody_Element"),- Core.projectionFieldName = (Core.Name "constants")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnumBody_Element-enumBody_ElementEnumBody_Element :: Typed.TypedName Syntax.EnumBody_Element-enumBody_ElementEnumBody_Element = Typed.TypedName (Core.Name "hydra.java.syntax.EnumBody_Element")---- | DSL updater for the bodyDeclarations field of hydra.java.syntax.EnumBody_Element-enumBody_ElementWithBodyDeclarations :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.ClassBodyDeclaration] -> Typed.TypedTerm Syntax.EnumBody_Element-enumBody_ElementWithBodyDeclarations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumBody_Element"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "constants"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumBody_Element"),- Core.projectionFieldName = (Core.Name "constants")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "bodyDeclarations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the constants field of hydra.java.syntax.EnumBody_Element-enumBody_ElementWithConstants :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.EnumConstant] -> Typed.TypedTerm Syntax.EnumBody_Element-enumBody_ElementWithConstants original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumBody_Element"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "constants"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "bodyDeclarations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumBody_Element"),- Core.projectionFieldName = (Core.Name "bodyDeclarations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.EnumConstant-enumConstant :: Typed.TypedTerm [Syntax.EnumConstantModifier] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe [Syntax.Expression]) -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.EnumConstant-enumConstant modifiers identifier arguments body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm arguments)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the arguments field of hydra.java.syntax.EnumConstant-enumConstantArguments :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe [Syntax.Expression])-enumConstantArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body field of hydra.java.syntax.EnumConstant-enumConstantBody :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe Syntax.ClassBody)-enumConstantBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnumConstant-enumConstantEnumConstant :: Typed.TypedName Syntax.EnumConstant-enumConstantEnumConstant = Typed.TypedName (Core.Name "hydra.java.syntax.EnumConstant")---- | DSL accessor for the identifier field of hydra.java.syntax.EnumConstant-enumConstantIdentifier :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm Syntax.Identifier-enumConstantIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for the hydra.java.syntax.EnumConstantModifier wrapper-enumConstantModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.EnumConstantModifier-enumConstantModifier x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.EnumConstantModifier"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnumConstantModifier-enumConstantModifierEnumConstantModifier :: Typed.TypedName Syntax.EnumConstantModifier-enumConstantModifierEnumConstantModifier = Typed.TypedName (Core.Name "hydra.java.syntax.EnumConstantModifier")---- | DSL accessor for the modifiers field of hydra.java.syntax.EnumConstant-enumConstantModifiers :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm [Syntax.EnumConstantModifier]-enumConstantModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the arguments field of hydra.java.syntax.EnumConstant-enumConstantWithArguments :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe [Syntax.Expression]) -> Typed.TypedTerm Syntax.EnumConstant-enumConstantWithArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the body field of hydra.java.syntax.EnumConstant-enumConstantWithBody :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.EnumConstant-enumConstantWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.EnumConstant-enumConstantWithIdentifier :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.EnumConstant-enumConstantWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.EnumConstant-enumConstantWithModifiers :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm [Syntax.EnumConstantModifier] -> Typed.TypedTerm Syntax.EnumConstant-enumConstantWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumConstant"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.EnumDeclaration-enumDeclaration :: Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.EnumBody -> Typed.TypedTerm Syntax.EnumDeclaration-enumDeclaration modifiers identifier implements body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Typed.unTypedTerm implements)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.EnumDeclaration-enumDeclarationBody :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.EnumBody-enumDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.EnumDeclaration-enumDeclarationEnumDeclaration :: Typed.TypedName Syntax.EnumDeclaration-enumDeclarationEnumDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.EnumDeclaration")---- | DSL accessor for the identifier field of hydra.java.syntax.EnumDeclaration-enumDeclarationIdentifier :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier-enumDeclarationIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the implements field of hydra.java.syntax.EnumDeclaration-enumDeclarationImplements :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]-enumDeclarationImplements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.EnumDeclaration-enumDeclarationModifiers :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.ClassModifier]-enumDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.EnumDeclaration-enumDeclarationWithBody :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.EnumBody -> Typed.TypedTerm Syntax.EnumDeclaration-enumDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.EnumDeclaration-enumDeclarationWithIdentifier :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.EnumDeclaration-enumDeclarationWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the implements field of hydra.java.syntax.EnumDeclaration-enumDeclarationWithImplements :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.EnumDeclaration-enumDeclarationWithImplements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.EnumDeclaration-enumDeclarationWithModifiers :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.EnumDeclaration-enumDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EnumDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the equal variant of hydra.java.syntax.EqualityExpression-equalityExpressionEqual :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression-equalityExpressionEqual x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.EqualityExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "equal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.EqualityExpression-equalityExpressionEqualityExpression :: Typed.TypedName Syntax.EqualityExpression-equalityExpressionEqualityExpression = Typed.TypedName (Core.Name "hydra.java.syntax.EqualityExpression")---- | DSL injection for the notEqual variant of hydra.java.syntax.EqualityExpression-equalityExpressionNotEqual :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression-equalityExpressionNotEqual x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.EqualityExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "notEqual"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the unary variant of hydra.java.syntax.EqualityExpression-equalityExpressionUnary :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.EqualityExpression-equalityExpressionUnary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.EqualityExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "unary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.EqualityExpression_Binary-equalityExpression_Binary :: Typed.TypedTerm Syntax.EqualityExpression -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.EqualityExpression_Binary-equalityExpression_Binary lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EqualityExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL name token for hydra.java.syntax.EqualityExpression_Binary-equalityExpression_BinaryEqualityExpression_Binary :: Typed.TypedName Syntax.EqualityExpression_Binary-equalityExpression_BinaryEqualityExpression_Binary =- Typed.TypedName (Core.Name "hydra.java.syntax.EqualityExpression_Binary")---- | DSL accessor for the lhs field of hydra.java.syntax.EqualityExpression_Binary-equalityExpression_BinaryLhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression-equalityExpression_BinaryLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EqualityExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.java.syntax.EqualityExpression_Binary-equalityExpression_BinaryRhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.RelationalExpression-equalityExpression_BinaryRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EqualityExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.EqualityExpression_Binary-equalityExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression -> Typed.TypedTerm Syntax.EqualityExpression_Binary-equalityExpression_BinaryWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EqualityExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EqualityExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.EqualityExpression_Binary-equalityExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.EqualityExpression_Binary-equalityExpression_BinaryWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.EqualityExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.EqualityExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the class variant of hydra.java.syntax.ExceptionType-exceptionTypeClass :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ExceptionType-exceptionTypeClass x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ExceptionType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "class"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ExceptionType-exceptionTypeExceptionType :: Typed.TypedName Syntax.ExceptionType-exceptionTypeExceptionType = Typed.TypedName (Core.Name "hydra.java.syntax.ExceptionType")---- | DSL injection for the variable variant of hydra.java.syntax.ExceptionType-exceptionTypeVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.ExceptionType-exceptionTypeVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ExceptionType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.ExclusiveOrExpression wrapper-exclusiveOrExpression :: Typed.TypedTerm [Syntax.AndExpression] -> Typed.TypedTerm Syntax.ExclusiveOrExpression-exclusiveOrExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ExclusiveOrExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ExclusiveOrExpression-exclusiveOrExpressionExclusiveOrExpression :: Typed.TypedName Syntax.ExclusiveOrExpression-exclusiveOrExpressionExclusiveOrExpression = Typed.TypedName (Core.Name "hydra.java.syntax.ExclusiveOrExpression")---- | DSL constructor for hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocation :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation-explicitConstructorInvocation typeArguments arguments variant =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm arguments)},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm variant)}]}))---- | DSL accessor for the arguments field of hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocationArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.Expression]-explicitConstructorInvocationArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocationExplicitConstructorInvocation :: Typed.TypedName Syntax.ExplicitConstructorInvocation-explicitConstructorInvocationExplicitConstructorInvocation =- Typed.TypedName (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation")---- | DSL accessor for the typeArguments field of hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocationTypeArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.TypeArgument]-explicitConstructorInvocationTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the variant field of hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocationVariant :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocationVariant x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the arguments field of hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocationWithArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation-explicitConstructorInvocationWithArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocationWithTypeArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation-explicitConstructorInvocationWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the variant field of hydra.java.syntax.ExplicitConstructorInvocation-explicitConstructorInvocationWithVariant :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation-explicitConstructorInvocationWithVariant original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantExplicitConstructorInvocation_Variant :: Typed.TypedName Syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantExplicitConstructorInvocation_Variant =- Typed.TypedName (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant")---- | DSL injection for the primary variant of hydra.java.syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantPrimary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the super variant of hydra.java.syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantSuper :: Typed.TypedTerm (Maybe Syntax.ExpressionName) -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantSuper x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the this variant of hydra.java.syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantThis :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant-explicitConstructorInvocation_VariantThis =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "this"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the assignment variant of hydra.java.syntax.Expression-expressionAssignment :: Typed.TypedTerm Syntax.AssignmentExpression -> Typed.TypedTerm Syntax.Expression-expressionAssignment x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "assignment"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.Expression-expressionExpression :: Typed.TypedName Syntax.Expression-expressionExpression = Typed.TypedName (Core.Name "hydra.java.syntax.Expression")---- | DSL injection for the lambda variant of hydra.java.syntax.Expression-expressionLambda :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.Expression-expressionLambda x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Expression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "lambda"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ExpressionName-expressionName :: Typed.TypedTerm (Maybe Syntax.AmbiguousName) -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ExpressionName-expressionName qualifier identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ExpressionName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm qualifier)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL name token for hydra.java.syntax.ExpressionName-expressionNameExpressionName :: Typed.TypedName Syntax.ExpressionName-expressionNameExpressionName = Typed.TypedName (Core.Name "hydra.java.syntax.ExpressionName")---- | DSL accessor for the identifier field of hydra.java.syntax.ExpressionName-expressionNameIdentifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.Identifier-expressionNameIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExpressionName"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qualifier field of hydra.java.syntax.ExpressionName-expressionNameQualifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm (Maybe Syntax.AmbiguousName)-expressionNameQualifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExpressionName"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.ExpressionName-expressionNameWithIdentifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ExpressionName-expressionNameWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ExpressionName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExpressionName"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the qualifier field of hydra.java.syntax.ExpressionName-expressionNameWithQualifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm (Maybe Syntax.AmbiguousName) -> Typed.TypedTerm Syntax.ExpressionName-expressionNameWithQualifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ExpressionName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ExpressionName"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.ExpressionStatement wrapper-expressionStatement :: Typed.TypedTerm Syntax.StatementExpression -> Typed.TypedTerm Syntax.ExpressionStatement-expressionStatement x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ExpressionStatement"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ExpressionStatement-expressionStatementExpressionStatement :: Typed.TypedName Syntax.ExpressionStatement-expressionStatementExpressionStatement = Typed.TypedName (Core.Name "hydra.java.syntax.ExpressionStatement")---- | DSL constructor for hydra.java.syntax.FieldAccess-fieldAccess :: Typed.TypedTerm Syntax.FieldAccess_Qualifier -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.FieldAccess-fieldAccess qualifier identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FieldAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm qualifier)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL name token for hydra.java.syntax.FieldAccess-fieldAccessFieldAccess :: Typed.TypedName Syntax.FieldAccess-fieldAccessFieldAccess = Typed.TypedName (Core.Name "hydra.java.syntax.FieldAccess")---- | DSL accessor for the identifier field of hydra.java.syntax.FieldAccess-fieldAccessIdentifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Identifier-fieldAccessIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qualifier field of hydra.java.syntax.FieldAccess-fieldAccessQualifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.FieldAccess_Qualifier-fieldAccessQualifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.FieldAccess-fieldAccessWithIdentifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.FieldAccess-fieldAccessWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FieldAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the qualifier field of hydra.java.syntax.FieldAccess-fieldAccessWithQualifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.FieldAccess_Qualifier -> Typed.TypedTerm Syntax.FieldAccess-fieldAccessWithQualifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FieldAccess"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldAccess"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.FieldAccess_Qualifier-fieldAccess_QualifierFieldAccess_Qualifier :: Typed.TypedName Syntax.FieldAccess_Qualifier-fieldAccess_QualifierFieldAccess_Qualifier = Typed.TypedName (Core.Name "hydra.java.syntax.FieldAccess_Qualifier")---- | DSL injection for the primary variant of hydra.java.syntax.FieldAccess_Qualifier-fieldAccess_QualifierPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.FieldAccess_Qualifier-fieldAccess_QualifierPrimary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldAccess_Qualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the super variant of hydra.java.syntax.FieldAccess_Qualifier-fieldAccess_QualifierSuper :: Typed.TypedTerm Syntax.FieldAccess_Qualifier-fieldAccess_QualifierSuper =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldAccess_Qualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the typed variant of hydra.java.syntax.FieldAccess_Qualifier-fieldAccess_QualifierTyped :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.FieldAccess_Qualifier-fieldAccess_QualifierTyped x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldAccess_Qualifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "typed"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.FieldDeclaration-fieldDeclaration :: Typed.TypedTerm [Syntax.FieldModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.FieldDeclaration-fieldDeclaration modifiers unannType variableDeclarators =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Typed.unTypedTerm unannType)},- Core.Field {- Core.fieldName = (Core.Name "variableDeclarators"),- Core.fieldTerm = (Typed.unTypedTerm variableDeclarators)}]}))---- | DSL name token for hydra.java.syntax.FieldDeclaration-fieldDeclarationFieldDeclaration :: Typed.TypedName Syntax.FieldDeclaration-fieldDeclarationFieldDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.FieldDeclaration")---- | DSL accessor for the modifiers field of hydra.java.syntax.FieldDeclaration-fieldDeclarationModifiers :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.FieldModifier]-fieldDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the unannType field of hydra.java.syntax.FieldDeclaration-fieldDeclarationUnannType :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm Syntax.UnannType-fieldDeclarationUnannType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "unannType")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the variableDeclarators field of hydra.java.syntax.FieldDeclaration-fieldDeclarationVariableDeclarators :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator]-fieldDeclarationVariableDeclarators x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "variableDeclarators")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the modifiers field of hydra.java.syntax.FieldDeclaration-fieldDeclarationWithModifiers :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.FieldModifier] -> Typed.TypedTerm Syntax.FieldDeclaration-fieldDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "unannType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variableDeclarators"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "variableDeclarators")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the unannType field of hydra.java.syntax.FieldDeclaration-fieldDeclarationWithUnannType :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.FieldDeclaration-fieldDeclarationWithUnannType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "variableDeclarators"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "variableDeclarators")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the variableDeclarators field of hydra.java.syntax.FieldDeclaration-fieldDeclarationWithVariableDeclarators :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.FieldDeclaration-fieldDeclarationWithVariableDeclarators original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FieldDeclaration"),- Core.projectionFieldName = (Core.Name "unannType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "variableDeclarators"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the annotation variant of hydra.java.syntax.FieldModifier-fieldModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.FieldModifier-fieldModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.FieldModifier-fieldModifierFieldModifier :: Typed.TypedName Syntax.FieldModifier-fieldModifierFieldModifier = Typed.TypedName (Core.Name "hydra.java.syntax.FieldModifier")---- | DSL injection for the final variant of hydra.java.syntax.FieldModifier-fieldModifierFinal :: Typed.TypedTerm Syntax.FieldModifier-fieldModifierFinal =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "final"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the private variant of hydra.java.syntax.FieldModifier-fieldModifierPrivate :: Typed.TypedTerm Syntax.FieldModifier-fieldModifierPrivate =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "private"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the protected variant of hydra.java.syntax.FieldModifier-fieldModifierProtected :: Typed.TypedTerm Syntax.FieldModifier-fieldModifierProtected =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "protected"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the public variant of hydra.java.syntax.FieldModifier-fieldModifierPublic :: Typed.TypedTerm Syntax.FieldModifier-fieldModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the static variant of hydra.java.syntax.FieldModifier-fieldModifierStatic :: Typed.TypedTerm Syntax.FieldModifier-fieldModifierStatic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "static"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the transient variant of hydra.java.syntax.FieldModifier-fieldModifierTransient :: Typed.TypedTerm Syntax.FieldModifier-fieldModifierTransient =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "transient"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the volatile variant of hydra.java.syntax.FieldModifier-fieldModifierVolatile :: Typed.TypedTerm Syntax.FieldModifier-fieldModifierVolatile =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FieldModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "volatile"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.Finally wrapper-finally :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.Finally-finally x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.Finally"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Finally-finallyFinally :: Typed.TypedName Syntax.Finally-finallyFinally = Typed.TypedName (Core.Name "hydra.java.syntax.Finally")---- | DSL constructor for the hydra.java.syntax.FloatingPointLiteral wrapper-floatingPointLiteral :: Typed.TypedTerm Double -> Typed.TypedTerm Syntax.FloatingPointLiteral-floatingPointLiteral x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.FloatingPointLiteral"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.FloatingPointLiteral-floatingPointLiteralFloatingPointLiteral :: Typed.TypedName Syntax.FloatingPointLiteral-floatingPointLiteralFloatingPointLiteral = Typed.TypedName (Core.Name "hydra.java.syntax.FloatingPointLiteral")---- | DSL injection for the double variant of hydra.java.syntax.FloatingPointType-floatingPointTypeDouble :: Typed.TypedTerm Syntax.FloatingPointType-floatingPointTypeDouble =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FloatingPointType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "double"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the float variant of hydra.java.syntax.FloatingPointType-floatingPointTypeFloat :: Typed.TypedTerm Syntax.FloatingPointType-floatingPointTypeFloat =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FloatingPointType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "float"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.FloatingPointType-floatingPointTypeFloatingPointType :: Typed.TypedName Syntax.FloatingPointType-floatingPointTypeFloatingPointType = Typed.TypedName (Core.Name "hydra.java.syntax.FloatingPointType")---- | DSL constructor for hydra.java.syntax.ForCond-forCond :: Typed.TypedTerm (Maybe Syntax.ForInit) -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm (Maybe Syntax.ForUpdate) -> Typed.TypedTerm Syntax.ForCond-forCond init cond update =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "init"),- Core.fieldTerm = (Typed.unTypedTerm init)},- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "update"),- Core.fieldTerm = (Typed.unTypedTerm update)}]}))---- | DSL accessor for the cond field of hydra.java.syntax.ForCond-forCondCond :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.Expression)-forCondCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ForCond-forCondForCond :: Typed.TypedName Syntax.ForCond-forCondForCond = Typed.TypedName (Core.Name "hydra.java.syntax.ForCond")---- | DSL accessor for the init field of hydra.java.syntax.ForCond-forCondInit :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForInit)-forCondInit x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "init")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the update field of hydra.java.syntax.ForCond-forCondUpdate :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForUpdate)-forCondUpdate x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "update")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cond field of hydra.java.syntax.ForCond-forCondWithCond :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ForCond-forCondWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "init"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "init")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "update"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "update")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the init field of hydra.java.syntax.ForCond-forCondWithInit :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForInit) -> Typed.TypedTerm Syntax.ForCond-forCondWithInit original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "init"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "update"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "update")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the update field of hydra.java.syntax.ForCond-forCondWithUpdate :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForUpdate) -> Typed.TypedTerm Syntax.ForCond-forCondWithUpdate original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "init"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "init")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ForCond"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "update"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.ForInit-forInitForInit :: Typed.TypedName Syntax.ForInit-forInitForInit = Typed.TypedName (Core.Name "hydra.java.syntax.ForInit")---- | DSL injection for the localVariable variant of hydra.java.syntax.ForInit-forInitLocalVariable :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.ForInit-forInitLocalVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ForInit"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "localVariable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the statements variant of hydra.java.syntax.ForInit-forInitStatements :: Typed.TypedTerm [Syntax.StatementExpression] -> Typed.TypedTerm Syntax.ForInit-forInitStatements x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ForInit"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "statements"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the basic variant of hydra.java.syntax.ForStatement-forStatementBasic :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.ForStatement-forStatementBasic x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ForStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "basic"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the enhanced variant of hydra.java.syntax.ForStatement-forStatementEnhanced :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.ForStatement-forStatementEnhanced x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ForStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "enhanced"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ForStatement-forStatementForStatement :: Typed.TypedName Syntax.ForStatement-forStatementForStatement = Typed.TypedName (Core.Name "hydra.java.syntax.ForStatement")---- | DSL injection for the basic variant of hydra.java.syntax.ForStatementNoShortIf-forStatementNoShortIfBasic :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.ForStatementNoShortIf-forStatementNoShortIfBasic x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ForStatementNoShortIf"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "basic"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the enhanced variant of hydra.java.syntax.ForStatementNoShortIf-forStatementNoShortIfEnhanced :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.ForStatementNoShortIf-forStatementNoShortIfEnhanced x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ForStatementNoShortIf"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "enhanced"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ForStatementNoShortIf-forStatementNoShortIfForStatementNoShortIf :: Typed.TypedName Syntax.ForStatementNoShortIf-forStatementNoShortIfForStatementNoShortIf = Typed.TypedName (Core.Name "hydra.java.syntax.ForStatementNoShortIf")---- | DSL constructor for the hydra.java.syntax.ForUpdate wrapper-forUpdate :: Typed.TypedTerm [Syntax.StatementExpression] -> Typed.TypedTerm Syntax.ForUpdate-forUpdate x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ForUpdate"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ForUpdate-forUpdateForUpdate :: Typed.TypedName Syntax.ForUpdate-forUpdateForUpdate = Typed.TypedName (Core.Name "hydra.java.syntax.ForUpdate")---- | DSL name token for hydra.java.syntax.FormalParameter-formalParameterFormalParameter :: Typed.TypedName Syntax.FormalParameter-formalParameterFormalParameter = Typed.TypedName (Core.Name "hydra.java.syntax.FormalParameter")---- | DSL injection for the simple variant of hydra.java.syntax.FormalParameter-formalParameterSimple :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.FormalParameter-formalParameterSimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the variableArity variant of hydra.java.syntax.FormalParameter-formalParameterVariableArity :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.FormalParameter-formalParameterVariableArity x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variableArity"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.FormalParameter_Simple-formalParameter_Simple :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.FormalParameter_Simple-formalParameter_Simple modifiers type_ id =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm id)}]}))---- | DSL name token for hydra.java.syntax.FormalParameter_Simple-formalParameter_SimpleFormalParameter_Simple :: Typed.TypedName Syntax.FormalParameter_Simple-formalParameter_SimpleFormalParameter_Simple = Typed.TypedName (Core.Name "hydra.java.syntax.FormalParameter_Simple")---- | DSL accessor for the id field of hydra.java.syntax.FormalParameter_Simple-formalParameter_SimpleId :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.VariableDeclaratorId-formalParameter_SimpleId x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.FormalParameter_Simple-formalParameter_SimpleModifiers :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm [Syntax.VariableModifier]-formalParameter_SimpleModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.FormalParameter_Simple-formalParameter_SimpleType :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.UnannType-formalParameter_SimpleType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the id field of hydra.java.syntax.FormalParameter_Simple-formalParameter_SimpleWithId :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.FormalParameter_Simple-formalParameter_SimpleWithId original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.FormalParameter_Simple-formalParameter_SimpleWithModifiers :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.FormalParameter_Simple-formalParameter_SimpleWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.FormalParameter_Simple-formalParameter_SimpleWithType :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.FormalParameter_Simple-formalParameter_SimpleWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.FormalParameter_Simple"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.Guard wrapper-guard :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Guard-guard x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.Guard"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Guard-guardGuard :: Typed.TypedName Syntax.Guard-guardGuard = Typed.TypedName (Core.Name "hydra.java.syntax.Guard")---- | DSL constructor for the hydra.java.syntax.Identifier wrapper-identifier :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Identifier-identifier x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.Identifier"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Identifier-identifierIdentifier :: Typed.TypedName Syntax.Identifier-identifierIdentifier = Typed.TypedName (Core.Name "hydra.java.syntax.Identifier")---- | DSL constructor for hydra.java.syntax.IfThenElseStatement-ifThenElseStatement :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenElseStatement-ifThenElseStatement cond then_ else_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Typed.unTypedTerm then_)},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Typed.unTypedTerm else_)}]}))---- | DSL accessor for the cond field of hydra.java.syntax.IfThenElseStatement-ifThenElseStatementCond :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm (Maybe Syntax.Expression)-ifThenElseStatementCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the else field of hydra.java.syntax.IfThenElseStatement-ifThenElseStatementElse :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.Statement-ifThenElseStatementElse x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.IfThenElseStatement-ifThenElseStatementIfThenElseStatement :: Typed.TypedName Syntax.IfThenElseStatement-ifThenElseStatementIfThenElseStatement = Typed.TypedName (Core.Name "hydra.java.syntax.IfThenElseStatement")---- | DSL constructor for hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIf :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIf cond then_ else_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Typed.unTypedTerm then_)},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Typed.unTypedTerm else_)}]}))---- | DSL accessor for the cond field of hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfCond :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression)-ifThenElseStatementNoShortIfCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the else field of hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfElse :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-ifThenElseStatementNoShortIfElse x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfIfThenElseStatementNoShortIf :: Typed.TypedName Syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfIfThenElseStatementNoShortIf =- Typed.TypedName (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf")---- | DSL accessor for the then field of hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfThen :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-ifThenElseStatementNoShortIfThen x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cond field of hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the else field of hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfWithElse :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfWithElse original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the then field of hydra.java.syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfWithThen :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf-ifThenElseStatementNoShortIfWithThen original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL accessor for the then field of hydra.java.syntax.IfThenElseStatement-ifThenElseStatementThen :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.StatementNoShortIf-ifThenElseStatementThen x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cond field of hydra.java.syntax.IfThenElseStatement-ifThenElseStatementWithCond :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfThenElseStatement-ifThenElseStatementWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the else field of hydra.java.syntax.IfThenElseStatement-ifThenElseStatementWithElse :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenElseStatement-ifThenElseStatementWithElse original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "then")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the then field of hydra.java.syntax.IfThenElseStatement-ifThenElseStatementWithThen :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatement-ifThenElseStatementWithThen original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "then"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "else"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenElseStatement"),- Core.projectionFieldName = (Core.Name "else")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.IfThenStatement-ifThenStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenStatement-ifThenStatement expression statement =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Typed.unTypedTerm statement)}]}))---- | DSL accessor for the expression field of hydra.java.syntax.IfThenStatement-ifThenStatementExpression :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Expression-ifThenStatementExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenStatement"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.IfThenStatement-ifThenStatementIfThenStatement :: Typed.TypedName Syntax.IfThenStatement-ifThenStatementIfThenStatement = Typed.TypedName (Core.Name "hydra.java.syntax.IfThenStatement")---- | DSL accessor for the statement field of hydra.java.syntax.IfThenStatement-ifThenStatementStatement :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Statement-ifThenStatementStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenStatement"),- Core.projectionFieldName = (Core.Name "statement")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expression field of hydra.java.syntax.IfThenStatement-ifThenStatementWithExpression :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.IfThenStatement-ifThenStatementWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenStatement"),- Core.projectionFieldName = (Core.Name "statement")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the statement field of hydra.java.syntax.IfThenStatement-ifThenStatementWithStatement :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenStatement-ifThenStatementWithStatement original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.IfThenStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.IfThenStatement"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.ImportDeclaration-importDeclarationImportDeclaration :: Typed.TypedName Syntax.ImportDeclaration-importDeclarationImportDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.ImportDeclaration")---- | DSL injection for the singleStaticImport variant of hydra.java.syntax.ImportDeclaration-importDeclarationSingleStaticImport :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration-importDeclarationSingleStaticImport x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ImportDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "singleStaticImport"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the singleType variant of hydra.java.syntax.ImportDeclaration-importDeclarationSingleType :: Typed.TypedTerm Syntax.SingleTypeImportDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration-importDeclarationSingleType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ImportDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "singleType"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the staticImportOnDemand variant of hydra.java.syntax.ImportDeclaration-importDeclarationStaticImportOnDemand :: Typed.TypedTerm Syntax.StaticImportOnDemandDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration-importDeclarationStaticImportOnDemand x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ImportDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "staticImportOnDemand"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the typeImportOnDemand variant of hydra.java.syntax.ImportDeclaration-importDeclarationTypeImportOnDemand :: Typed.TypedTerm Syntax.TypeImportOnDemandDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration-importDeclarationTypeImportOnDemand x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ImportDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "typeImportOnDemand"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.InclusiveOrExpression wrapper-inclusiveOrExpression :: Typed.TypedTerm [Syntax.ExclusiveOrExpression] -> Typed.TypedTerm Syntax.InclusiveOrExpression-inclusiveOrExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.InclusiveOrExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.InclusiveOrExpression-inclusiveOrExpressionInclusiveOrExpression :: Typed.TypedName Syntax.InclusiveOrExpression-inclusiveOrExpressionInclusiveOrExpression = Typed.TypedName (Core.Name "hydra.java.syntax.InclusiveOrExpression")---- | DSL constructor for the hydra.java.syntax.InstanceInitializer wrapper-instanceInitializer :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.InstanceInitializer-instanceInitializer x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.InstanceInitializer"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.InstanceInitializer-instanceInitializerInstanceInitializer :: Typed.TypedName Syntax.InstanceInitializer-instanceInitializerInstanceInitializer = Typed.TypedName (Core.Name "hydra.java.syntax.InstanceInitializer")---- | DSL constructor for hydra.java.syntax.InstanceofExpression-instanceofExpression :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs -> Typed.TypedTerm Syntax.InstanceofExpression-instanceofExpression lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL name token for hydra.java.syntax.InstanceofExpression-instanceofExpressionInstanceofExpression :: Typed.TypedName Syntax.InstanceofExpression-instanceofExpressionInstanceofExpression = Typed.TypedName (Core.Name "hydra.java.syntax.InstanceofExpression")---- | DSL accessor for the lhs field of hydra.java.syntax.InstanceofExpression-instanceofExpressionLhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.RelationalExpression-instanceofExpressionLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.java.syntax.InstanceofExpression-instanceofExpressionRhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs-instanceofExpressionRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.InstanceofExpression-instanceofExpressionWithLhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.InstanceofExpression-instanceofExpressionWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.InstanceofExpression-instanceofExpressionWithRhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs -> Typed.TypedTerm Syntax.InstanceofExpression-instanceofExpressionWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.InstanceofExpression_Rhs-instanceofExpression_RhsInstanceofExpression_Rhs :: Typed.TypedName Syntax.InstanceofExpression_Rhs-instanceofExpression_RhsInstanceofExpression_Rhs =- Typed.TypedName (Core.Name "hydra.java.syntax.InstanceofExpression_Rhs")---- | DSL injection for the pattern variant of hydra.java.syntax.InstanceofExpression_Rhs-instanceofExpression_RhsPattern :: Typed.TypedTerm Syntax.Pattern -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs-instanceofExpression_RhsPattern x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression_Rhs"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "pattern"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the referenceType variant of hydra.java.syntax.InstanceofExpression_Rhs-instanceofExpression_RhsReferenceType :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs-instanceofExpression_RhsReferenceType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InstanceofExpression_Rhs"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "referenceType"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.IntegerLiteral wrapper-integerLiteral :: Typed.TypedTerm Integer -> Typed.TypedTerm Syntax.IntegerLiteral-integerLiteral x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.IntegerLiteral"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.IntegerLiteral-integerLiteralIntegerLiteral :: Typed.TypedName Syntax.IntegerLiteral-integerLiteralIntegerLiteral = Typed.TypedName (Core.Name "hydra.java.syntax.IntegerLiteral")---- | DSL injection for the byte variant of hydra.java.syntax.IntegralType-integralTypeByte :: Typed.TypedTerm Syntax.IntegralType-integralTypeByte =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.IntegralType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "byte"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the char variant of hydra.java.syntax.IntegralType-integralTypeChar :: Typed.TypedTerm Syntax.IntegralType-integralTypeChar =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.IntegralType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "char"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the int variant of hydra.java.syntax.IntegralType-integralTypeInt :: Typed.TypedTerm Syntax.IntegralType-integralTypeInt =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.IntegralType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "int"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.IntegralType-integralTypeIntegralType :: Typed.TypedName Syntax.IntegralType-integralTypeIntegralType = Typed.TypedName (Core.Name "hydra.java.syntax.IntegralType")---- | DSL injection for the long variant of hydra.java.syntax.IntegralType-integralTypeLong :: Typed.TypedTerm Syntax.IntegralType-integralTypeLong =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.IntegralType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "long"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the short variant of hydra.java.syntax.IntegralType-integralTypeShort :: Typed.TypedTerm Syntax.IntegralType-integralTypeShort =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.IntegralType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "short"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.InterfaceBody wrapper-interfaceBody :: Typed.TypedTerm [Syntax.InterfaceMemberDeclarationWithComments] -> Typed.TypedTerm Syntax.InterfaceBody-interfaceBody x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.InterfaceBody"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.InterfaceBody-interfaceBodyInterfaceBody :: Typed.TypedName Syntax.InterfaceBody-interfaceBodyInterfaceBody = Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceBody")---- | DSL injection for the annotationInterface variant of hydra.java.syntax.InterfaceDeclaration-interfaceDeclarationAnnotationInterface :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceDeclaration-interfaceDeclarationAnnotationInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotationInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.InterfaceDeclaration-interfaceDeclarationInterfaceDeclaration :: Typed.TypedName Syntax.InterfaceDeclaration-interfaceDeclarationInterfaceDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceDeclaration")---- | DSL injection for the normalInterface variant of hydra.java.syntax.InterfaceDeclaration-interfaceDeclarationNormalInterface :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceDeclaration-interfaceDeclarationNormalInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "normalInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the class variant of hydra.java.syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationClass x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "class"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the constant variant of hydra.java.syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationConstant :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationConstant x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "constant"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the interface variant of hydra.java.syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "interface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationInterfaceMemberDeclaration :: Typed.TypedName Syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationInterfaceMemberDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceMemberDeclaration")---- | DSL injection for the interfaceMethod variant of hydra.java.syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationInterfaceMethod :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationInterfaceMethod x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "interfaceMethod"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithComments :: Typed.TypedTerm Syntax.InterfaceMemberDeclaration -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithComments value comments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Typed.unTypedTerm comments)}]}))---- | DSL accessor for the comments field of hydra.java.syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsComments :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm (Maybe String)-interfaceMemberDeclarationWithCommentsComments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "comments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsInterfaceMemberDeclarationWithComments :: Typed.TypedName Syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsInterfaceMemberDeclarationWithComments =- Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments")---- | DSL accessor for the value field of hydra.java.syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsValue :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration-interfaceMemberDeclarationWithCommentsValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the comments field of hydra.java.syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsWithComments :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsWithComments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the value field of hydra.java.syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsWithValue :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments-interfaceMemberDeclarationWithCommentsWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "comments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclaration :: Typed.TypedTerm [Syntax.InterfaceMethodModifier] -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration-interfaceMethodDeclaration modifiers header body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm header)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationBody :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodBody-interfaceMethodDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the header field of hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationHeader :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader-interfaceMethodDeclarationHeader x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationInterfaceMethodDeclaration :: Typed.TypedName Syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationInterfaceMethodDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration")---- | DSL accessor for the modifiers field of hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationModifiers :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm [Syntax.InterfaceMethodModifier]-interfaceMethodDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationWithBody :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the header field of hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationWithHeader :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationWithHeader original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationWithModifiers :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm [Syntax.InterfaceMethodModifier] -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration-interfaceMethodDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the abstract variant of hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierAbstract :: Typed.TypedTerm Syntax.InterfaceMethodModifier-interfaceMethodModifierAbstract =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "abstract"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the annotation variant of hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.InterfaceMethodModifier-interfaceMethodModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the default variant of hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierDefault :: Typed.TypedTerm Syntax.InterfaceMethodModifier-interfaceMethodModifierDefault =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierInterfaceMethodModifier :: Typed.TypedName Syntax.InterfaceMethodModifier-interfaceMethodModifierInterfaceMethodModifier = Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceMethodModifier")---- | DSL injection for the private variant of hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierPrivate :: Typed.TypedTerm Syntax.InterfaceMethodModifier-interfaceMethodModifierPrivate =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "private"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the public variant of hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierPublic :: Typed.TypedTerm Syntax.InterfaceMethodModifier-interfaceMethodModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the static variant of hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierStatic :: Typed.TypedTerm Syntax.InterfaceMethodModifier-interfaceMethodModifierStatic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "static"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the strictfp variant of hydra.java.syntax.InterfaceMethodModifier-interfaceMethodModifierStrictfp :: Typed.TypedTerm Syntax.InterfaceMethodModifier-interfaceMethodModifierStrictfp =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceMethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "strictfp"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the abstract variant of hydra.java.syntax.InterfaceModifier-interfaceModifierAbstract :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierAbstract =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "abstract"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the annotation variant of hydra.java.syntax.InterfaceModifier-interfaceModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.InterfaceModifier-interfaceModifierInterfaceModifier :: Typed.TypedName Syntax.InterfaceModifier-interfaceModifierInterfaceModifier = Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceModifier")---- | DSL injection for the nonSealed variant of hydra.java.syntax.InterfaceModifier-interfaceModifierNonSealed :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierNonSealed =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "nonSealed"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the private variant of hydra.java.syntax.InterfaceModifier-interfaceModifierPrivate :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierPrivate =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "private"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the protected variant of hydra.java.syntax.InterfaceModifier-interfaceModifierProtected :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierProtected =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "protected"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the public variant of hydra.java.syntax.InterfaceModifier-interfaceModifierPublic :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the sealed variant of hydra.java.syntax.InterfaceModifier-interfaceModifierSealed :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierSealed =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "sealed"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the static variant of hydra.java.syntax.InterfaceModifier-interfaceModifierStatic :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierStatic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "static"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the strictfp variant of hydra.java.syntax.InterfaceModifier-interfaceModifierStrictfp :: Typed.TypedTerm Syntax.InterfaceModifier-interfaceModifierStrictfp =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.InterfaceModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "strictfp"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.InterfaceType wrapper-interfaceType :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.InterfaceType-interfaceType x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.InterfaceType"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.InterfaceType-interfaceTypeInterfaceType :: Typed.TypedName Syntax.InterfaceType-interfaceTypeInterfaceType = Typed.TypedName (Core.Name "hydra.java.syntax.InterfaceType")---- | DSL constructor for hydra.java.syntax.LabeledStatement-labeledStatement :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.LabeledStatement-labeledStatement identifier statement =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LabeledStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Typed.unTypedTerm statement)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.LabeledStatement-labeledStatementIdentifier :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Identifier-labeledStatementIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatement"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.LabeledStatement-labeledStatementLabeledStatement :: Typed.TypedName Syntax.LabeledStatement-labeledStatementLabeledStatement = Typed.TypedName (Core.Name "hydra.java.syntax.LabeledStatement")---- | DSL constructor for hydra.java.syntax.LabeledStatementNoShortIf-labeledStatementNoShortIf :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.LabeledStatementNoShortIf-labeledStatementNoShortIf identifier statement =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Typed.unTypedTerm statement)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfIdentifier :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.Identifier-labeledStatementNoShortIfIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfLabeledStatementNoShortIf :: Typed.TypedName Syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfLabeledStatementNoShortIf =- Typed.TypedName (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf")---- | DSL accessor for the statement field of hydra.java.syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfStatement :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-labeledStatementNoShortIfStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "statement")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfWithIdentifier :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "statement")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the statement field of hydra.java.syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfWithStatement :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.LabeledStatementNoShortIf-labeledStatementNoShortIfWithStatement original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL accessor for the statement field of hydra.java.syntax.LabeledStatement-labeledStatementStatement :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Statement-labeledStatementStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatement"),- Core.projectionFieldName = (Core.Name "statement")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.LabeledStatement-labeledStatementWithIdentifier :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.LabeledStatement-labeledStatementWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LabeledStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatement"),- Core.projectionFieldName = (Core.Name "statement")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the statement field of hydra.java.syntax.LabeledStatement-labeledStatementWithStatement :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.LabeledStatement-labeledStatementWithStatement original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LabeledStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LabeledStatement"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "statement"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the block variant of hydra.java.syntax.LambdaBody-lambdaBodyBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.LambdaBody-lambdaBodyBlock x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaBody"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the expression variant of hydra.java.syntax.LambdaBody-lambdaBodyExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.LambdaBody-lambdaBodyExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaBody"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.LambdaBody-lambdaBodyLambdaBody :: Typed.TypedName Syntax.LambdaBody-lambdaBodyLambdaBody = Typed.TypedName (Core.Name "hydra.java.syntax.LambdaBody")---- | DSL constructor for hydra.java.syntax.LambdaExpression-lambdaExpression :: Typed.TypedTerm Syntax.LambdaParameters -> Typed.TypedTerm Syntax.LambdaBody -> Typed.TypedTerm Syntax.LambdaExpression-lambdaExpression parameters body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LambdaExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm parameters)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.LambdaExpression-lambdaExpressionBody :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaBody-lambdaExpressionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.LambdaExpression-lambdaExpressionLambdaExpression :: Typed.TypedName Syntax.LambdaExpression-lambdaExpressionLambdaExpression = Typed.TypedName (Core.Name "hydra.java.syntax.LambdaExpression")---- | DSL accessor for the parameters field of hydra.java.syntax.LambdaExpression-lambdaExpressionParameters :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaParameters-lambdaExpressionParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaExpression"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.LambdaExpression-lambdaExpressionWithBody :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaBody -> Typed.TypedTerm Syntax.LambdaExpression-lambdaExpressionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LambdaExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaExpression"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the parameters field of hydra.java.syntax.LambdaExpression-lambdaExpressionWithParameters :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaParameters -> Typed.TypedTerm Syntax.LambdaExpression-lambdaExpressionWithParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LambdaExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.LambdaParameter-lambdaParameterLambdaParameter :: Typed.TypedName Syntax.LambdaParameter-lambdaParameterLambdaParameter = Typed.TypedName (Core.Name "hydra.java.syntax.LambdaParameter")---- | DSL injection for the normal variant of hydra.java.syntax.LambdaParameter-lambdaParameterNormal :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.LambdaParameter-lambdaParameterNormal x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "normal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.LambdaParameterType-lambdaParameterTypeLambdaParameterType :: Typed.TypedName Syntax.LambdaParameterType-lambdaParameterTypeLambdaParameterType = Typed.TypedName (Core.Name "hydra.java.syntax.LambdaParameterType")---- | DSL injection for the type variant of hydra.java.syntax.LambdaParameterType-lambdaParameterTypeType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.LambdaParameterType-lambdaParameterTypeType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameterType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the var variant of hydra.java.syntax.LambdaParameterType-lambdaParameterTypeVar :: Typed.TypedTerm Syntax.LambdaParameterType-lambdaParameterTypeVar =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameterType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "var"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the variableArity variant of hydra.java.syntax.LambdaParameter-lambdaParameterVariableArity :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.LambdaParameter-lambdaParameterVariableArity x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variableArity"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_Normal :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LambdaParameterType -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.LambdaParameter_Normal-lambdaParameter_Normal modifiers type_ id =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm id)}]}))---- | DSL accessor for the id field of hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_NormalId :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.VariableDeclaratorId-lambdaParameter_NormalId x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_NormalLambdaParameter_Normal :: Typed.TypedName Syntax.LambdaParameter_Normal-lambdaParameter_NormalLambdaParameter_Normal = Typed.TypedName (Core.Name "hydra.java.syntax.LambdaParameter_Normal")---- | DSL accessor for the modifiers field of hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_NormalModifiers :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm [Syntax.VariableModifier]-lambdaParameter_NormalModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_NormalType :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.LambdaParameterType-lambdaParameter_NormalType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the id field of hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_NormalWithId :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.LambdaParameter_Normal-lambdaParameter_NormalWithId original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_NormalWithModifiers :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LambdaParameter_Normal-lambdaParameter_NormalWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.LambdaParameter_Normal-lambdaParameter_NormalWithType :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.LambdaParameterType -> Typed.TypedTerm Syntax.LambdaParameter_Normal-lambdaParameter_NormalWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameter_Normal"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.LambdaParameters-lambdaParametersLambdaParameters :: Typed.TypedName Syntax.LambdaParameters-lambdaParametersLambdaParameters = Typed.TypedName (Core.Name "hydra.java.syntax.LambdaParameters")---- | DSL injection for the single variant of hydra.java.syntax.LambdaParameters-lambdaParametersSingle :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.LambdaParameters-lambdaParametersSingle x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameters"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "single"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the tuple variant of hydra.java.syntax.LambdaParameters-lambdaParametersTuple :: Typed.TypedTerm [Syntax.LambdaParameters] -> Typed.TypedTerm Syntax.LambdaParameters-lambdaParametersTuple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LambdaParameters"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "tuple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the arrayAccess variant of hydra.java.syntax.LeftHandSide-leftHandSideArrayAccess :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.LeftHandSide-leftHandSideArrayAccess x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LeftHandSide"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "arrayAccess"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the expressionName variant of hydra.java.syntax.LeftHandSide-leftHandSideExpressionName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.LeftHandSide-leftHandSideExpressionName x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LeftHandSide"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expressionName"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the fieldAccess variant of hydra.java.syntax.LeftHandSide-leftHandSideFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.LeftHandSide-leftHandSideFieldAccess x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LeftHandSide"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "fieldAccess"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.LeftHandSide-leftHandSideLeftHandSide :: Typed.TypedName Syntax.LeftHandSide-leftHandSideLeftHandSide = Typed.TypedName (Core.Name "hydra.java.syntax.LeftHandSide")---- | DSL injection for the boolean variant of hydra.java.syntax.Literal-literalBoolean :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.Literal-literalBoolean x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "boolean"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the character variant of hydra.java.syntax.Literal-literalCharacter :: Typed.TypedTerm Int -> Typed.TypedTerm Syntax.Literal-literalCharacter x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "character"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the floatingPoint variant of hydra.java.syntax.Literal-literalFloatingPoint :: Typed.TypedTerm Syntax.FloatingPointLiteral -> Typed.TypedTerm Syntax.Literal-literalFloatingPoint x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "floatingPoint"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the integer variant of hydra.java.syntax.Literal-literalInteger :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Syntax.Literal-literalInteger x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "integer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.Literal-literalLiteral :: Typed.TypedName Syntax.Literal-literalLiteral = Typed.TypedName (Core.Name "hydra.java.syntax.Literal")---- | DSL injection for the null variant of hydra.java.syntax.Literal-literalNull :: Typed.TypedTerm Syntax.Literal-literalNull =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "null"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the string variant of hydra.java.syntax.Literal-literalString :: Typed.TypedTerm Syntax.StringLiteral -> Typed.TypedTerm Syntax.Literal-literalString x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "string"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the textBlock variant of hydra.java.syntax.Literal-literalTextBlock :: Typed.TypedTerm Syntax.TextBlock -> Typed.TypedTerm Syntax.Literal-literalTextBlock x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Literal"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "textBlock"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the class variant of hydra.java.syntax.LocalClassOrInterfaceDeclaration-localClassOrInterfaceDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.LocalClassOrInterfaceDeclaration-localClassOrInterfaceDeclarationClass x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "class"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.LocalClassOrInterfaceDeclaration-localClassOrInterfaceDeclarationLocalClassOrInterfaceDeclaration :: Typed.TypedName Syntax.LocalClassOrInterfaceDeclaration-localClassOrInterfaceDeclarationLocalClassOrInterfaceDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration")---- | DSL injection for the normalInterface variant of hydra.java.syntax.LocalClassOrInterfaceDeclaration-localClassOrInterfaceDeclarationNormalInterface :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.LocalClassOrInterfaceDeclaration-localClassOrInterfaceDeclarationNormalInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "normalInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.LocalVariableDeclaration-localVariableDeclaration :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.LocalVariableDeclaration-localVariableDeclaration modifiers type_ declarators =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "declarators"),- Core.fieldTerm = (Typed.unTypedTerm declarators)}]}))---- | DSL accessor for the declarators field of hydra.java.syntax.LocalVariableDeclaration-localVariableDeclarationDeclarators :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator]-localVariableDeclarationDeclarators x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "declarators")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.LocalVariableDeclaration-localVariableDeclarationLocalVariableDeclaration :: Typed.TypedName Syntax.LocalVariableDeclaration-localVariableDeclarationLocalVariableDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.LocalVariableDeclaration")---- | DSL accessor for the modifiers field of hydra.java.syntax.LocalVariableDeclaration-localVariableDeclarationModifiers :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableModifier]-localVariableDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for the hydra.java.syntax.LocalVariableDeclarationStatement wrapper-localVariableDeclarationStatement :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.LocalVariableDeclarationStatement-localVariableDeclarationStatement x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclarationStatement"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.LocalVariableDeclarationStatement-localVariableDeclarationStatementLocalVariableDeclarationStatement :: Typed.TypedName Syntax.LocalVariableDeclarationStatement-localVariableDeclarationStatementLocalVariableDeclarationStatement =- Typed.TypedName (Core.Name "hydra.java.syntax.LocalVariableDeclarationStatement")---- | DSL accessor for the type field of hydra.java.syntax.LocalVariableDeclaration-localVariableDeclarationType :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.LocalVariableType-localVariableDeclarationType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the declarators field of hydra.java.syntax.LocalVariableDeclaration-localVariableDeclarationWithDeclarators :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.LocalVariableDeclaration-localVariableDeclarationWithDeclarators original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "declarators"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.LocalVariableDeclaration-localVariableDeclarationWithModifiers :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LocalVariableDeclaration-localVariableDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "declarators"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "declarators")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.LocalVariableDeclaration-localVariableDeclarationWithType :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm Syntax.LocalVariableDeclaration-localVariableDeclarationWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "declarators"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableDeclaration"),- Core.projectionFieldName = (Core.Name "declarators")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.LocalVariableType-localVariableTypeLocalVariableType :: Typed.TypedName Syntax.LocalVariableType-localVariableTypeLocalVariableType = Typed.TypedName (Core.Name "hydra.java.syntax.LocalVariableType")---- | DSL injection for the type variant of hydra.java.syntax.LocalVariableType-localVariableTypeType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.LocalVariableType-localVariableTypeType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the var variant of hydra.java.syntax.LocalVariableType-localVariableTypeVar :: Typed.TypedTerm Syntax.LocalVariableType-localVariableTypeVar =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.LocalVariableType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "var"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.MarkerAnnotation wrapper-markerAnnotation :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.MarkerAnnotation-markerAnnotation x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.MarkerAnnotation"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MarkerAnnotation-markerAnnotationMarkerAnnotation :: Typed.TypedName Syntax.MarkerAnnotation-markerAnnotationMarkerAnnotation = Typed.TypedName (Core.Name "hydra.java.syntax.MarkerAnnotation")---- | DSL injection for the block variant of hydra.java.syntax.MethodBody-methodBodyBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.MethodBody-methodBodyBlock x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodBody"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.MethodBody-methodBodyMethodBody :: Typed.TypedName Syntax.MethodBody-methodBodyMethodBody = Typed.TypedName (Core.Name "hydra.java.syntax.MethodBody")---- | DSL injection for the none variant of hydra.java.syntax.MethodBody-methodBodyNone :: Typed.TypedTerm Syntax.MethodBody-methodBodyNone =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodBody"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "none"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.java.syntax.MethodDeclaration-methodDeclaration :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm [Syntax.MethodModifier] -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.MethodDeclaration-methodDeclaration annotations modifiers header body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm header)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.MethodDeclaration-methodDeclarationAnnotations :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.Annotation]-methodDeclarationAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body field of hydra.java.syntax.MethodDeclaration-methodDeclarationBody :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodBody-methodDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the header field of hydra.java.syntax.MethodDeclaration-methodDeclarationHeader :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader-methodDeclarationHeader x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodDeclaration-methodDeclarationMethodDeclaration :: Typed.TypedName Syntax.MethodDeclaration-methodDeclarationMethodDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.MethodDeclaration")---- | DSL accessor for the modifiers field of hydra.java.syntax.MethodDeclaration-methodDeclarationModifiers :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.MethodModifier]-methodDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annotations field of hydra.java.syntax.MethodDeclaration-methodDeclarationWithAnnotations :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.MethodDeclaration-methodDeclarationWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the body field of hydra.java.syntax.MethodDeclaration-methodDeclarationWithBody :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.MethodDeclaration-methodDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the header field of hydra.java.syntax.MethodDeclaration-methodDeclarationWithHeader :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodDeclaration-methodDeclarationWithHeader original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.MethodDeclaration-methodDeclarationWithModifiers :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.MethodModifier] -> Typed.TypedTerm Syntax.MethodDeclaration-methodDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.MethodDeclarator-methodDeclarator :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.MethodDeclarator-methodDeclarator identifier receiverParameter formalParameters =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Typed.unTypedTerm receiverParameter)},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Typed.unTypedTerm formalParameters)}]}))---- | DSL accessor for the formalParameters field of hydra.java.syntax.MethodDeclarator-methodDeclaratorFormalParameters :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm [Syntax.FormalParameter]-methodDeclaratorFormalParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "formalParameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.MethodDeclarator-methodDeclaratorIdentifier :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm Syntax.Identifier-methodDeclaratorIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodDeclarator-methodDeclaratorMethodDeclarator :: Typed.TypedName Syntax.MethodDeclarator-methodDeclaratorMethodDeclarator = Typed.TypedName (Core.Name "hydra.java.syntax.MethodDeclarator")---- | DSL accessor for the receiverParameter field of hydra.java.syntax.MethodDeclarator-methodDeclaratorReceiverParameter :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter)-methodDeclaratorReceiverParameter x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "receiverParameter")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the formalParameters field of hydra.java.syntax.MethodDeclarator-methodDeclaratorWithFormalParameters :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.MethodDeclarator-methodDeclaratorWithFormalParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "receiverParameter")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.MethodDeclarator-methodDeclaratorWithIdentifier :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodDeclarator-methodDeclaratorWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "receiverParameter")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "formalParameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the receiverParameter field of hydra.java.syntax.MethodDeclarator-methodDeclaratorWithReceiverParameter :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm Syntax.MethodDeclarator-methodDeclaratorWithReceiverParameter original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "receiverParameter"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "formalParameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodDeclarator"),- Core.projectionFieldName = (Core.Name "formalParameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.MethodHeader-methodHeader :: Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.Result -> Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.MethodHeader-methodHeader parameters result declarator throws =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm parameters)},- Core.Field {- Core.fieldName = (Core.Name "result"),- Core.fieldTerm = (Typed.unTypedTerm result)},- Core.Field {- Core.fieldName = (Core.Name "declarator"),- Core.fieldTerm = (Typed.unTypedTerm declarator)},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Typed.unTypedTerm throws)}]}))---- | DSL accessor for the declarator field of hydra.java.syntax.MethodHeader-methodHeaderDeclarator :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodDeclarator-methodHeaderDeclarator x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "declarator")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodHeader-methodHeaderMethodHeader :: Typed.TypedName Syntax.MethodHeader-methodHeaderMethodHeader = Typed.TypedName (Core.Name "hydra.java.syntax.MethodHeader")---- | DSL accessor for the parameters field of hydra.java.syntax.MethodHeader-methodHeaderParameters :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm [Syntax.TypeParameter]-methodHeaderParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the result field of hydra.java.syntax.MethodHeader-methodHeaderResult :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.Result-methodHeaderResult x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "result")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the throws field of hydra.java.syntax.MethodHeader-methodHeaderThrows :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm (Maybe Syntax.Throws)-methodHeaderThrows x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the declarator field of hydra.java.syntax.MethodHeader-methodHeaderWithDeclarator :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm Syntax.MethodHeader-methodHeaderWithDeclarator original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "result"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "result")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "declarator"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the parameters field of hydra.java.syntax.MethodHeader-methodHeaderWithParameters :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.MethodHeader-methodHeaderWithParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "result"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "result")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "declarator"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "declarator")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the result field of hydra.java.syntax.MethodHeader-methodHeaderWithResult :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.Result -> Typed.TypedTerm Syntax.MethodHeader-methodHeaderWithResult original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "result"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "declarator"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "declarator")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "throws")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the throws field of hydra.java.syntax.MethodHeader-methodHeaderWithThrows :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.MethodHeader-methodHeaderWithThrows original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "result"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "result")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "declarator"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodHeader"),- Core.projectionFieldName = (Core.Name "declarator")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "throws"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.MethodInvocation-methodInvocation :: Typed.TypedTerm Syntax.MethodInvocation_Header -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MethodInvocation-methodInvocation header arguments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodInvocation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm header)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm arguments)}]}))---- | DSL accessor for the arguments field of hydra.java.syntax.MethodInvocation-methodInvocationArguments :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm [Syntax.Expression]-methodInvocationArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the header field of hydra.java.syntax.MethodInvocation-methodInvocationHeader :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.MethodInvocation_Header-methodInvocationHeader x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodInvocation-methodInvocationMethodInvocation :: Typed.TypedName Syntax.MethodInvocation-methodInvocationMethodInvocation = Typed.TypedName (Core.Name "hydra.java.syntax.MethodInvocation")---- | DSL updater for the arguments field of hydra.java.syntax.MethodInvocation-methodInvocationWithArguments :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MethodInvocation-methodInvocationWithArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodInvocation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the header field of hydra.java.syntax.MethodInvocation-methodInvocationWithHeader :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.MethodInvocation_Header -> Typed.TypedTerm Syntax.MethodInvocation-methodInvocationWithHeader original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodInvocation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.MethodInvocation_Complex-methodInvocation_Complex :: Typed.TypedTerm Syntax.MethodInvocation_Variant -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodInvocation_Complex-methodInvocation_Complex variant typeArguments identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm variant)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.MethodInvocation_Complex-methodInvocation_ComplexIdentifier :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.Identifier-methodInvocation_ComplexIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodInvocation_Complex-methodInvocation_ComplexMethodInvocation_Complex :: Typed.TypedName Syntax.MethodInvocation_Complex-methodInvocation_ComplexMethodInvocation_Complex =- Typed.TypedName (Core.Name "hydra.java.syntax.MethodInvocation_Complex")---- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodInvocation_Complex-methodInvocation_ComplexTypeArguments :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm [Syntax.TypeArgument]-methodInvocation_ComplexTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the variant field of hydra.java.syntax.MethodInvocation_Complex-methodInvocation_ComplexVariant :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.MethodInvocation_Variant-methodInvocation_ComplexVariant x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.MethodInvocation_Complex-methodInvocation_ComplexWithIdentifier :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodInvocation_Complex-methodInvocation_ComplexWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.MethodInvocation_Complex-methodInvocation_ComplexWithTypeArguments :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodInvocation_Complex-methodInvocation_ComplexWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "variant")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the variant field of hydra.java.syntax.MethodInvocation_Complex-methodInvocation_ComplexWithVariant :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.MethodInvocation_Variant -> Typed.TypedTerm Syntax.MethodInvocation_Complex-methodInvocation_ComplexWithVariant original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "variant"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Complex"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the complex variant of hydra.java.syntax.MethodInvocation_Header-methodInvocation_HeaderComplex :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.MethodInvocation_Header-methodInvocation_HeaderComplex x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Header"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "complex"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.MethodInvocation_Header-methodInvocation_HeaderMethodInvocation_Header :: Typed.TypedName Syntax.MethodInvocation_Header-methodInvocation_HeaderMethodInvocation_Header = Typed.TypedName (Core.Name "hydra.java.syntax.MethodInvocation_Header")---- | DSL injection for the simple variant of hydra.java.syntax.MethodInvocation_Header-methodInvocation_HeaderSimple :: Typed.TypedTerm Syntax.MethodName -> Typed.TypedTerm Syntax.MethodInvocation_Header-methodInvocation_HeaderSimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Header"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the expression variant of hydra.java.syntax.MethodInvocation_Variant-methodInvocation_VariantExpression :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.MethodInvocation_Variant-methodInvocation_VariantExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.MethodInvocation_Variant-methodInvocation_VariantMethodInvocation_Variant :: Typed.TypedName Syntax.MethodInvocation_Variant-methodInvocation_VariantMethodInvocation_Variant =- Typed.TypedName (Core.Name "hydra.java.syntax.MethodInvocation_Variant")---- | DSL injection for the primary variant of hydra.java.syntax.MethodInvocation_Variant-methodInvocation_VariantPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.MethodInvocation_Variant-methodInvocation_VariantPrimary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the super variant of hydra.java.syntax.MethodInvocation_Variant-methodInvocation_VariantSuper :: Typed.TypedTerm Syntax.MethodInvocation_Variant-methodInvocation_VariantSuper =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the type variant of hydra.java.syntax.MethodInvocation_Variant-methodInvocation_VariantType :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.MethodInvocation_Variant-methodInvocation_VariantType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the typeSuper variant of hydra.java.syntax.MethodInvocation_Variant-methodInvocation_VariantTypeSuper :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.MethodInvocation_Variant-methodInvocation_VariantTypeSuper x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodInvocation_Variant"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "typeSuper"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the abstract variant of hydra.java.syntax.MethodModifier-methodModifierAbstract :: Typed.TypedTerm Syntax.MethodModifier-methodModifierAbstract =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "abstract"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the annotation variant of hydra.java.syntax.MethodModifier-methodModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.MethodModifier-methodModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the final variant of hydra.java.syntax.MethodModifier-methodModifierFinal :: Typed.TypedTerm Syntax.MethodModifier-methodModifierFinal =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "final"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.MethodModifier-methodModifierMethodModifier :: Typed.TypedName Syntax.MethodModifier-methodModifierMethodModifier = Typed.TypedName (Core.Name "hydra.java.syntax.MethodModifier")---- | DSL injection for the native variant of hydra.java.syntax.MethodModifier-methodModifierNative :: Typed.TypedTerm Syntax.MethodModifier-methodModifierNative =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "native"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the private variant of hydra.java.syntax.MethodModifier-methodModifierPrivate :: Typed.TypedTerm Syntax.MethodModifier-methodModifierPrivate =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "private"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the protected variant of hydra.java.syntax.MethodModifier-methodModifierProtected :: Typed.TypedTerm Syntax.MethodModifier-methodModifierProtected =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "protected"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the public variant of hydra.java.syntax.MethodModifier-methodModifierPublic :: Typed.TypedTerm Syntax.MethodModifier-methodModifierPublic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "public"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the static variant of hydra.java.syntax.MethodModifier-methodModifierStatic :: Typed.TypedTerm Syntax.MethodModifier-methodModifierStatic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "static"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the strictfp variant of hydra.java.syntax.MethodModifier-methodModifierStrictfp :: Typed.TypedTerm Syntax.MethodModifier-methodModifierStrictfp =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "strictfp"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the synchronized variant of hydra.java.syntax.MethodModifier-methodModifierSynchronized :: Typed.TypedTerm Syntax.MethodModifier-methodModifierSynchronized =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "synchronized"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.MethodName wrapper-methodName :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodName-methodName x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.MethodName"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodName-methodNameMethodName :: Typed.TypedName Syntax.MethodName-methodNameMethodName = Typed.TypedName (Core.Name "hydra.java.syntax.MethodName")---- | DSL injection for the array variant of hydra.java.syntax.MethodReference-methodReferenceArray :: Typed.TypedTerm Syntax.MethodReference_Array -> Typed.TypedTerm Syntax.MethodReference-methodReferenceArray x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodReference"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the expression variant of hydra.java.syntax.MethodReference-methodReferenceExpression :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.MethodReference-methodReferenceExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodReference"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.MethodReference-methodReferenceMethodReference :: Typed.TypedName Syntax.MethodReference-methodReferenceMethodReference = Typed.TypedName (Core.Name "hydra.java.syntax.MethodReference")---- | DSL injection for the new variant of hydra.java.syntax.MethodReference-methodReferenceNew :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm Syntax.MethodReference-methodReferenceNew x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodReference"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "new"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the primary variant of hydra.java.syntax.MethodReference-methodReferencePrimary :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.MethodReference-methodReferencePrimary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodReference"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the referenceType variant of hydra.java.syntax.MethodReference-methodReferenceReferenceType :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.MethodReference-methodReferenceReferenceType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodReference"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "referenceType"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the super variant of hydra.java.syntax.MethodReference-methodReferenceSuper :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Syntax.MethodReference-methodReferenceSuper x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MethodReference"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.MethodReference_Array wrapper-methodReference_Array :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.MethodReference_Array-methodReference_Array x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.MethodReference_Array"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodReference_Array-methodReference_ArrayMethodReference_Array :: Typed.TypedName Syntax.MethodReference_Array-methodReference_ArrayMethodReference_Array = Typed.TypedName (Core.Name "hydra.java.syntax.MethodReference_Array")---- | DSL constructor for hydra.java.syntax.MethodReference_Expression-methodReference_Expression :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Expression-methodReference_Expression name typeArguments identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_Expression-methodReference_ExpressionIdentifier :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.Identifier-methodReference_ExpressionIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodReference_Expression-methodReference_ExpressionMethodReference_Expression :: Typed.TypedName Syntax.MethodReference_Expression-methodReference_ExpressionMethodReference_Expression =- Typed.TypedName (Core.Name "hydra.java.syntax.MethodReference_Expression")---- | DSL accessor for the name field of hydra.java.syntax.MethodReference_Expression-methodReference_ExpressionName :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.ExpressionName-methodReference_ExpressionName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_Expression-methodReference_ExpressionTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm [Syntax.TypeArgument]-methodReference_ExpressionTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_Expression-methodReference_ExpressionWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Expression-methodReference_ExpressionWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.java.syntax.MethodReference_Expression-methodReference_ExpressionWithName :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.MethodReference_Expression-methodReference_ExpressionWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_Expression-methodReference_ExpressionWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_Expression-methodReference_ExpressionWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Expression"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.MethodReference_New-methodReference_New :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_New-methodReference_New classType typeArguments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_New"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "classType"),- Core.fieldTerm = (Typed.unTypedTerm classType)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)}]}))---- | DSL accessor for the classType field of hydra.java.syntax.MethodReference_New-methodReference_NewClassType :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm Syntax.ClassType-methodReference_NewClassType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_New"),- Core.projectionFieldName = (Core.Name "classType")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodReference_New-methodReference_NewMethodReference_New :: Typed.TypedName Syntax.MethodReference_New-methodReference_NewMethodReference_New = Typed.TypedName (Core.Name "hydra.java.syntax.MethodReference_New")---- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_New-methodReference_NewTypeArguments :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm [Syntax.TypeArgument]-methodReference_NewTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_New"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the classType field of hydra.java.syntax.MethodReference_New-methodReference_NewWithClassType :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.MethodReference_New-methodReference_NewWithClassType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_New"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "classType"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_New"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_New-methodReference_NewWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_New-methodReference_NewWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_New"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "classType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_New"),- Core.projectionFieldName = (Core.Name "classType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.MethodReference_Primary-methodReference_Primary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Primary-methodReference_Primary primary typeArguments identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm primary)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_Primary-methodReference_PrimaryIdentifier :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Identifier-methodReference_PrimaryIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodReference_Primary-methodReference_PrimaryMethodReference_Primary :: Typed.TypedName Syntax.MethodReference_Primary-methodReference_PrimaryMethodReference_Primary = Typed.TypedName (Core.Name "hydra.java.syntax.MethodReference_Primary")---- | DSL accessor for the primary field of hydra.java.syntax.MethodReference_Primary-methodReference_PrimaryPrimary :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Primary-methodReference_PrimaryPrimary x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "primary")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_Primary-methodReference_PrimaryTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm [Syntax.TypeArgument]-methodReference_PrimaryTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_Primary-methodReference_PrimaryWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Primary-methodReference_PrimaryWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "primary")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the primary field of hydra.java.syntax.MethodReference_Primary-methodReference_PrimaryWithPrimary :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.MethodReference_Primary-methodReference_PrimaryWithPrimary original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_Primary-methodReference_PrimaryWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_Primary-methodReference_PrimaryWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "primary")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Primary"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceType :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_ReferenceType-methodReference_ReferenceType referenceType typeArguments identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "referenceType"),- Core.fieldTerm = (Typed.unTypedTerm referenceType)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeIdentifier :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.Identifier-methodReference_ReferenceTypeIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeMethodReference_ReferenceType :: Typed.TypedName Syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeMethodReference_ReferenceType =- Typed.TypedName (Core.Name "hydra.java.syntax.MethodReference_ReferenceType")---- | DSL accessor for the referenceType field of hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeReferenceType :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.ReferenceType-methodReference_ReferenceTypeReferenceType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "referenceType")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeTypeArguments :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm [Syntax.TypeArgument]-methodReference_ReferenceTypeTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "referenceType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "referenceType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the referenceType field of hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeWithReferenceType :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeWithReferenceType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "referenceType"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_ReferenceType-methodReference_ReferenceTypeWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "referenceType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "referenceType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_ReferenceType"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.MethodReference_Super-methodReference_Super :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.MethodReference_Super-methodReference_Super typeArguments identifier super =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = (Typed.unTypedTerm super)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_Super-methodReference_SuperIdentifier :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Syntax.Identifier-methodReference_SuperIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MethodReference_Super-methodReference_SuperMethodReference_Super :: Typed.TypedName Syntax.MethodReference_Super-methodReference_SuperMethodReference_Super = Typed.TypedName (Core.Name "hydra.java.syntax.MethodReference_Super")---- | DSL accessor for the super field of hydra.java.syntax.MethodReference_Super-methodReference_SuperSuper :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Bool-methodReference_SuperSuper x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "super")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_Super-methodReference_SuperTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm [Syntax.TypeArgument]-methodReference_SuperTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_Super-methodReference_SuperWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Super-methodReference_SuperWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "super")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the super field of hydra.java.syntax.MethodReference_Super-methodReference_SuperWithSuper :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.MethodReference_Super-methodReference_SuperWithSuper original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_Super-methodReference_SuperWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_Super-methodReference_SuperWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MethodReference_Super"),- Core.projectionFieldName = (Core.Name "super")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.ModularCompilationUnit-modularCompilationUnit :: Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.ModularCompilationUnit-modularCompilationUnit imports module_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModularCompilationUnit"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Typed.unTypedTerm imports)},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm module_)}]}))---- | DSL accessor for the imports field of hydra.java.syntax.ModularCompilationUnit-modularCompilationUnitImports :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration]-modularCompilationUnitImports x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModularCompilationUnit"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ModularCompilationUnit-modularCompilationUnitModularCompilationUnit :: Typed.TypedName Syntax.ModularCompilationUnit-modularCompilationUnitModularCompilationUnit = Typed.TypedName (Core.Name "hydra.java.syntax.ModularCompilationUnit")---- | DSL accessor for the module field of hydra.java.syntax.ModularCompilationUnit-modularCompilationUnitModule :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm Syntax.ModuleDeclaration-modularCompilationUnitModule x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModularCompilationUnit"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the imports field of hydra.java.syntax.ModularCompilationUnit-modularCompilationUnitWithImports :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.ModularCompilationUnit-modularCompilationUnitWithImports original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModularCompilationUnit"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModularCompilationUnit"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the module field of hydra.java.syntax.ModularCompilationUnit-modularCompilationUnitWithModule :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.ModularCompilationUnit-modularCompilationUnitWithModule original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModularCompilationUnit"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModularCompilationUnit"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.ModuleDeclaration-moduleDeclaration :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Bool -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm [Syntax.ModuleDirective] -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclaration annotations open identifiers directives =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "open"),- Core.fieldTerm = (Typed.unTypedTerm open)},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Typed.unTypedTerm identifiers)},- Core.Field {- Core.fieldName = (Core.Name "directives"),- Core.fieldTerm = (Typed.unTypedTerm directives)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationAnnotations :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Annotation]-moduleDeclarationAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the directives field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationDirectives :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.ModuleDirective]-moduleDeclarationDirectives x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "directives")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifiers field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationIdentifiers :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Identifier]-moduleDeclarationIdentifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ModuleDeclaration-moduleDeclarationModuleDeclaration :: Typed.TypedName Syntax.ModuleDeclaration-moduleDeclarationModuleDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.ModuleDeclaration")---- | DSL accessor for the open field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationOpen :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Bool-moduleDeclarationOpen x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "open")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annotations field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationWithAnnotations :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclarationWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "open"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "open")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "directives"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "directives")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the directives field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationWithDirectives :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.ModuleDirective] -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclarationWithDirectives original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "open"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "open")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "directives"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifiers field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationWithIdentifiers :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclarationWithIdentifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "open"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "open")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "directives"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "directives")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the open field of hydra.java.syntax.ModuleDeclaration-moduleDeclarationWithOpen :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.ModuleDeclaration-moduleDeclarationWithOpen original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "open"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "directives"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDeclaration"),- Core.projectionFieldName = (Core.Name "directives")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the exports variant of hydra.java.syntax.ModuleDirective-moduleDirectiveExports :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.ModuleDirective-moduleDirectiveExports x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "exports"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ModuleDirective-moduleDirectiveModuleDirective :: Typed.TypedName Syntax.ModuleDirective-moduleDirectiveModuleDirective = Typed.TypedName (Core.Name "hydra.java.syntax.ModuleDirective")---- | DSL injection for the opens variant of hydra.java.syntax.ModuleDirective-moduleDirectiveOpens :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.ModuleDirective-moduleDirectiveOpens x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "opens"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the provides variant of hydra.java.syntax.ModuleDirective-moduleDirectiveProvides :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm Syntax.ModuleDirective-moduleDirectiveProvides x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "provides"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the requires variant of hydra.java.syntax.ModuleDirective-moduleDirectiveRequires :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm Syntax.ModuleDirective-moduleDirectiveRequires x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "requires"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the uses variant of hydra.java.syntax.ModuleDirective-moduleDirectiveUses :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.ModuleDirective-moduleDirectiveUses x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "uses"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpens :: Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm [Syntax.ModuleName] -> Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpens package modules =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Typed.unTypedTerm package)},- Core.Field {- Core.fieldName = (Core.Name "modules"),- Core.fieldTerm = (Typed.unTypedTerm modules)}]}))---- | DSL name token for hydra.java.syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensModuleDirective_ExportsOrOpens :: Typed.TypedName Syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensModuleDirective_ExportsOrOpens =- Typed.TypedName (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens")---- | DSL accessor for the modules field of hydra.java.syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensModules :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm [Syntax.ModuleName]-moduleDirective_ExportsOrOpensModules x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),- Core.projectionFieldName = (Core.Name "modules")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the package field of hydra.java.syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensPackage :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.PackageName-moduleDirective_ExportsOrOpensPackage x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),- Core.projectionFieldName = (Core.Name "package")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the modules field of hydra.java.syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensWithModules :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm [Syntax.ModuleName] -> Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensWithModules original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),- Core.projectionFieldName = (Core.Name "package")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "modules"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the package field of hydra.java.syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensWithPackage :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens-moduleDirective_ExportsOrOpensWithPackage original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "modules"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),- Core.projectionFieldName = (Core.Name "modules")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.ModuleDirective_Provides-moduleDirective_Provides :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.ModuleDirective_Provides-moduleDirective_Provides to with =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Provides"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "to"),- Core.fieldTerm = (Typed.unTypedTerm to)},- Core.Field {- Core.fieldName = (Core.Name "with"),- Core.fieldTerm = (Typed.unTypedTerm with)}]}))---- | DSL name token for hydra.java.syntax.ModuleDirective_Provides-moduleDirective_ProvidesModuleDirective_Provides :: Typed.TypedName Syntax.ModuleDirective_Provides-moduleDirective_ProvidesModuleDirective_Provides =- Typed.TypedName (Core.Name "hydra.java.syntax.ModuleDirective_Provides")---- | DSL accessor for the to field of hydra.java.syntax.ModuleDirective_Provides-moduleDirective_ProvidesTo :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm Syntax.TypeName-moduleDirective_ProvidesTo x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Provides"),- Core.projectionFieldName = (Core.Name "to")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the with field of hydra.java.syntax.ModuleDirective_Provides-moduleDirective_ProvidesWith :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm [Syntax.TypeName]-moduleDirective_ProvidesWith x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Provides"),- Core.projectionFieldName = (Core.Name "with")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the to field of hydra.java.syntax.ModuleDirective_Provides-moduleDirective_ProvidesWithTo :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.ModuleDirective_Provides-moduleDirective_ProvidesWithTo original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Provides"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "to"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "with"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Provides"),- Core.projectionFieldName = (Core.Name "with")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the with field of hydra.java.syntax.ModuleDirective_Provides-moduleDirective_ProvidesWithWith :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.ModuleDirective_Provides-moduleDirective_ProvidesWithWith original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Provides"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "to"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Provides"),- Core.projectionFieldName = (Core.Name "to")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "with"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.ModuleDirective_Requires-moduleDirective_Requires :: Typed.TypedTerm [Syntax.RequiresModifier] -> Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.ModuleDirective_Requires-moduleDirective_Requires modifiers module_ =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Requires"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm module_)}]}))---- | DSL accessor for the modifiers field of hydra.java.syntax.ModuleDirective_Requires-moduleDirective_RequiresModifiers :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm [Syntax.RequiresModifier]-moduleDirective_RequiresModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Requires"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the module field of hydra.java.syntax.ModuleDirective_Requires-moduleDirective_RequiresModule :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm Syntax.ModuleName-moduleDirective_RequiresModule x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Requires"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ModuleDirective_Requires-moduleDirective_RequiresModuleDirective_Requires :: Typed.TypedName Syntax.ModuleDirective_Requires-moduleDirective_RequiresModuleDirective_Requires =- Typed.TypedName (Core.Name "hydra.java.syntax.ModuleDirective_Requires")---- | DSL updater for the modifiers field of hydra.java.syntax.ModuleDirective_Requires-moduleDirective_RequiresWithModifiers :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm [Syntax.RequiresModifier] -> Typed.TypedTerm Syntax.ModuleDirective_Requires-moduleDirective_RequiresWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Requires"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Requires"),- Core.projectionFieldName = (Core.Name "module")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the module field of hydra.java.syntax.ModuleDirective_Requires-moduleDirective_RequiresWithModule :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.ModuleDirective_Requires-moduleDirective_RequiresWithModule original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Requires"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleDirective_Requires"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "module"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.ModuleName-moduleName :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.ModuleName) -> Typed.TypedTerm Syntax.ModuleName-moduleName identifier name =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.ModuleName-moduleNameIdentifier :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.Identifier-moduleNameIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleName"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ModuleName-moduleNameModuleName :: Typed.TypedName Syntax.ModuleName-moduleNameModuleName = Typed.TypedName (Core.Name "hydra.java.syntax.ModuleName")---- | DSL accessor for the name field of hydra.java.syntax.ModuleName-moduleNameName :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm (Maybe Syntax.ModuleName)-moduleNameName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleName"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.ModuleName-moduleNameWithIdentifier :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ModuleName-moduleNameWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleName"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.java.syntax.ModuleName-moduleNameWithName :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm (Maybe Syntax.ModuleName) -> Typed.TypedTerm Syntax.ModuleName-moduleNameWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ModuleName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ModuleName"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the divide variant of hydra.java.syntax.MultiplicativeExpression-multiplicativeExpressionDivide :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression-multiplicativeExpressionDivide x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "divide"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the mod variant of hydra.java.syntax.MultiplicativeExpression-multiplicativeExpressionMod :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression-multiplicativeExpressionMod x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "mod"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.MultiplicativeExpression-multiplicativeExpressionMultiplicativeExpression :: Typed.TypedName Syntax.MultiplicativeExpression-multiplicativeExpressionMultiplicativeExpression =- Typed.TypedName (Core.Name "hydra.java.syntax.MultiplicativeExpression")---- | DSL injection for the times variant of hydra.java.syntax.MultiplicativeExpression-multiplicativeExpressionTimes :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression-multiplicativeExpressionTimes x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "times"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the unary variant of hydra.java.syntax.MultiplicativeExpression-multiplicativeExpressionUnary :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression-multiplicativeExpressionUnary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "unary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.MultiplicativeExpression_Binary-multiplicativeExpression_Binary :: Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression_Binary-multiplicativeExpression_Binary lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the lhs field of hydra.java.syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryLhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression-multiplicativeExpression_BinaryLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryMultiplicativeExpression_Binary :: Typed.TypedName Syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryMultiplicativeExpression_Binary =- Typed.TypedName (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary")---- | DSL accessor for the rhs field of hydra.java.syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryRhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.UnaryExpression-multiplicativeExpression_BinaryRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression_Binary-multiplicativeExpression_BinaryWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.NormalAnnotation-normalAnnotation :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm [Syntax.ElementValuePair] -> Typed.TypedTerm Syntax.NormalAnnotation-normalAnnotation typeName pairs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeName"),- Core.fieldTerm = (Typed.unTypedTerm typeName)},- Core.Field {- Core.fieldName = (Core.Name "pairs"),- Core.fieldTerm = (Typed.unTypedTerm pairs)}]}))---- | DSL name token for hydra.java.syntax.NormalAnnotation-normalAnnotationNormalAnnotation :: Typed.TypedName Syntax.NormalAnnotation-normalAnnotationNormalAnnotation = Typed.TypedName (Core.Name "hydra.java.syntax.NormalAnnotation")---- | DSL accessor for the pairs field of hydra.java.syntax.NormalAnnotation-normalAnnotationPairs :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm [Syntax.ElementValuePair]-normalAnnotationPairs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalAnnotation"),- Core.projectionFieldName = (Core.Name "pairs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeName field of hydra.java.syntax.NormalAnnotation-normalAnnotationTypeName :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm Syntax.TypeName-normalAnnotationTypeName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalAnnotation"),- Core.projectionFieldName = (Core.Name "typeName")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the pairs field of hydra.java.syntax.NormalAnnotation-normalAnnotationWithPairs :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm [Syntax.ElementValuePair] -> Typed.TypedTerm Syntax.NormalAnnotation-normalAnnotationWithPairs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeName"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalAnnotation"),- Core.projectionFieldName = (Core.Name "typeName")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "pairs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the typeName field of hydra.java.syntax.NormalAnnotation-normalAnnotationWithTypeName :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.NormalAnnotation-normalAnnotationWithTypeName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeName"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "pairs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalAnnotation"),- Core.projectionFieldName = (Core.Name "pairs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.NormalClassDeclaration-normalClassDeclaration :: Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm (Maybe Syntax.ClassType) -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.ClassBody -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclaration modifiers identifier parameters extends implements permits body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm parameters)},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Typed.unTypedTerm extends)},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Typed.unTypedTerm implements)},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Typed.unTypedTerm permits)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationBody :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.ClassBody-normalClassDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the extends field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationExtends :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm (Maybe Syntax.ClassType)-normalClassDeclarationExtends x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationIdentifier :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier-normalClassDeclarationIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the implements field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationImplements :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]-normalClassDeclarationImplements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationModifiers :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.ClassModifier]-normalClassDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationNormalClassDeclaration :: Typed.TypedName Syntax.NormalClassDeclaration-normalClassDeclarationNormalClassDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.NormalClassDeclaration")---- | DSL accessor for the parameters field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationParameters :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeParameter]-normalClassDeclarationParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the permits field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationPermits :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeName]-normalClassDeclarationPermits x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationWithBody :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.ClassBody -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the extends field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationWithExtends :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm (Maybe Syntax.ClassType) -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclarationWithExtends original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationWithIdentifier :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclarationWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the implements field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationWithImplements :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclarationWithImplements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationWithModifiers :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the parameters field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationWithParameters :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclarationWithParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the permits field of hydra.java.syntax.NormalClassDeclaration-normalClassDeclarationWithPermits :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.NormalClassDeclaration-normalClassDeclarationWithPermits original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalClassDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclaration :: Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.InterfaceBody -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration-normalInterfaceDeclaration modifiers identifier parameters extends permits body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm parameters)},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Typed.unTypedTerm extends)},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Typed.unTypedTerm permits)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationBody :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceBody-normalInterfaceDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the extends field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationExtends :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]-normalInterfaceDeclarationExtends x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationIdentifier :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier-normalInterfaceDeclarationIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationModifiers :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier]-normalInterfaceDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationNormalInterfaceDeclaration :: Typed.TypedName Syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationNormalInterfaceDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration")---- | DSL accessor for the parameters field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationParameters :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeParameter]-normalInterfaceDeclarationParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the permits field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationPermits :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeName]-normalInterfaceDeclarationPermits x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithBody :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceBody -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the extends field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithExtends :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithExtends original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithIdentifier :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithModifiers :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the parameters field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithParameters :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "permits")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the permits field of hydra.java.syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithPermits :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration-normalInterfaceDeclarationWithPermits original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "extends")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "permits"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the array variant of hydra.java.syntax.NumericTypeArray-numericTypeArrayArray :: Typed.TypedTerm Syntax.NumericTypeArray -> Typed.TypedTerm Syntax.NumericTypeArray-numericTypeArrayArray x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.NumericTypeArray"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.NumericTypeArray-numericTypeArrayNumericTypeArray :: Typed.TypedName Syntax.NumericTypeArray-numericTypeArrayNumericTypeArray = Typed.TypedName (Core.Name "hydra.java.syntax.NumericTypeArray")---- | DSL injection for the simple variant of hydra.java.syntax.NumericTypeArray-numericTypeArraySimple :: Typed.TypedTerm Syntax.NumericType -> Typed.TypedTerm Syntax.NumericTypeArray-numericTypeArraySimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.NumericTypeArray"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the floatingPoint variant of hydra.java.syntax.NumericType-numericTypeFloatingPoint :: Typed.TypedTerm Syntax.FloatingPointType -> Typed.TypedTerm Syntax.NumericType-numericTypeFloatingPoint x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.NumericType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "floatingPoint"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the integral variant of hydra.java.syntax.NumericType-numericTypeIntegral :: Typed.TypedTerm Syntax.IntegralType -> Typed.TypedTerm Syntax.NumericType-numericTypeIntegral x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.NumericType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "integral"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.NumericType-numericTypeNumericType :: Typed.TypedName Syntax.NumericType-numericTypeNumericType = Typed.TypedName (Core.Name "hydra.java.syntax.NumericType")---- | DSL constructor for hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnit :: Typed.TypedTerm (Maybe Syntax.PackageDeclaration) -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm [Syntax.TopLevelClassOrInterfaceDeclarationWithComments] -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit-ordinaryCompilationUnit package imports types =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Typed.unTypedTerm package)},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Typed.unTypedTerm imports)},- Core.Field {- Core.fieldName = (Core.Name "types"),- Core.fieldTerm = (Typed.unTypedTerm types)}]}))---- | DSL accessor for the imports field of hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitImports :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration]-ordinaryCompilationUnitImports x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitOrdinaryCompilationUnit :: Typed.TypedName Syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitOrdinaryCompilationUnit = Typed.TypedName (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit")---- | DSL accessor for the package field of hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitPackage :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm (Maybe Syntax.PackageDeclaration)-ordinaryCompilationUnitPackage x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "package")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the types field of hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitTypes :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.TopLevelClassOrInterfaceDeclarationWithComments]-ordinaryCompilationUnitTypes x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "types")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the imports field of hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitWithImports :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitWithImports original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "package")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "types"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "types")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the package field of hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitWithPackage :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm (Maybe Syntax.PackageDeclaration) -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitWithPackage original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "types"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "types")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the types field of hydra.java.syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitWithTypes :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.TopLevelClassOrInterfaceDeclarationWithComments] -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit-ordinaryCompilationUnitWithTypes original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "package"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "package")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "imports"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"),- Core.projectionFieldName = (Core.Name "imports")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "types"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.PackageDeclaration-packageDeclaration :: Typed.TypedTerm [Syntax.PackageModifier] -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageDeclaration-packageDeclaration modifiers identifiers =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.PackageDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Typed.unTypedTerm identifiers)}]}))---- | DSL accessor for the identifiers field of hydra.java.syntax.PackageDeclaration-packageDeclarationIdentifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.Identifier]-packageDeclarationIdentifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PackageDeclaration"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.PackageDeclaration-packageDeclarationModifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.PackageModifier]-packageDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PackageDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PackageDeclaration-packageDeclarationPackageDeclaration :: Typed.TypedName Syntax.PackageDeclaration-packageDeclarationPackageDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.PackageDeclaration")---- | DSL updater for the identifiers field of hydra.java.syntax.PackageDeclaration-packageDeclarationWithIdentifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageDeclaration-packageDeclarationWithIdentifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.PackageDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PackageDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.PackageDeclaration-packageDeclarationWithModifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.PackageModifier] -> Typed.TypedTerm Syntax.PackageDeclaration-packageDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.PackageDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PackageDeclaration"),- Core.projectionFieldName = (Core.Name "identifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.PackageModifier wrapper-packageModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.PackageModifier-packageModifier x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.PackageModifier"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PackageModifier-packageModifierPackageModifier :: Typed.TypedName Syntax.PackageModifier-packageModifierPackageModifier = Typed.TypedName (Core.Name "hydra.java.syntax.PackageModifier")---- | DSL constructor for the hydra.java.syntax.PackageName wrapper-packageName :: Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageName-packageName x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.PackageName"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PackageName-packageNamePackageName :: Typed.TypedName Syntax.PackageName-packageNamePackageName = Typed.TypedName (Core.Name "hydra.java.syntax.PackageName")---- | DSL constructor for the hydra.java.syntax.PackageOrTypeName wrapper-packageOrTypeName :: Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageOrTypeName-packageOrTypeName x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.PackageOrTypeName"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PackageOrTypeName-packageOrTypeNamePackageOrTypeName :: Typed.TypedName Syntax.PackageOrTypeName-packageOrTypeNamePackageOrTypeName = Typed.TypedName (Core.Name "hydra.java.syntax.PackageOrTypeName")---- | DSL name token for hydra.java.syntax.Pattern-patternPattern :: Typed.TypedName Syntax.Pattern-patternPattern = Typed.TypedName (Core.Name "hydra.java.syntax.Pattern")---- | DSL injection for the record variant of hydra.java.syntax.Pattern-patternRecord :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm Syntax.Pattern-patternRecord x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Pattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "record"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the type variant of hydra.java.syntax.Pattern-patternType :: Typed.TypedTerm Syntax.TypePattern -> Typed.TypedTerm Syntax.Pattern-patternType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Pattern"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.PostDecrementExpression wrapper-postDecrementExpression :: Typed.TypedTerm Syntax.PostfixExpression -> Typed.TypedTerm Syntax.PostDecrementExpression-postDecrementExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.PostDecrementExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PostDecrementExpression-postDecrementExpressionPostDecrementExpression :: Typed.TypedName Syntax.PostDecrementExpression-postDecrementExpressionPostDecrementExpression = Typed.TypedName (Core.Name "hydra.java.syntax.PostDecrementExpression")---- | DSL constructor for the hydra.java.syntax.PostIncrementExpression wrapper-postIncrementExpression :: Typed.TypedTerm Syntax.PostfixExpression -> Typed.TypedTerm Syntax.PostIncrementExpression-postIncrementExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.PostIncrementExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PostIncrementExpression-postIncrementExpressionPostIncrementExpression :: Typed.TypedName Syntax.PostIncrementExpression-postIncrementExpressionPostIncrementExpression = Typed.TypedName (Core.Name "hydra.java.syntax.PostIncrementExpression")---- | DSL injection for the name variant of hydra.java.syntax.PostfixExpression-postfixExpressionName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.PostfixExpression-postfixExpressionName x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PostfixExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the postDecrement variant of hydra.java.syntax.PostfixExpression-postfixExpressionPostDecrement :: Typed.TypedTerm Syntax.PostDecrementExpression -> Typed.TypedTerm Syntax.PostfixExpression-postfixExpressionPostDecrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PostfixExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "postDecrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the postIncrement variant of hydra.java.syntax.PostfixExpression-postfixExpressionPostIncrement :: Typed.TypedTerm Syntax.PostIncrementExpression -> Typed.TypedTerm Syntax.PostfixExpression-postfixExpressionPostIncrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PostfixExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "postIncrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.PostfixExpression-postfixExpressionPostfixExpression :: Typed.TypedName Syntax.PostfixExpression-postfixExpressionPostfixExpression = Typed.TypedName (Core.Name "hydra.java.syntax.PostfixExpression")---- | DSL injection for the primary variant of hydra.java.syntax.PostfixExpression-postfixExpressionPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.PostfixExpression-postfixExpressionPrimary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PostfixExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.PreDecrementExpression wrapper-preDecrementExpression :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.PreDecrementExpression-preDecrementExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.PreDecrementExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PreDecrementExpression-preDecrementExpressionPreDecrementExpression :: Typed.TypedName Syntax.PreDecrementExpression-preDecrementExpressionPreDecrementExpression = Typed.TypedName (Core.Name "hydra.java.syntax.PreDecrementExpression")---- | DSL constructor for the hydra.java.syntax.PreIncrementExpression wrapper-preIncrementExpression :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.PreIncrementExpression-preIncrementExpression x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.PreIncrementExpression"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PreIncrementExpression-preIncrementExpressionPreIncrementExpression :: Typed.TypedName Syntax.PreIncrementExpression-preIncrementExpressionPreIncrementExpression = Typed.TypedName (Core.Name "hydra.java.syntax.PreIncrementExpression")---- | DSL injection for the arrayCreation variant of hydra.java.syntax.Primary-primaryArrayCreation :: Typed.TypedTerm Syntax.ArrayCreationExpression -> Typed.TypedTerm Syntax.Primary-primaryArrayCreation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Primary"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "arrayCreation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the noNewArray variant of hydra.java.syntax.Primary-primaryNoNewArray :: Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression -> Typed.TypedTerm Syntax.Primary-primaryNoNewArray x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Primary"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "noNewArray"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the arrayAccess variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionArrayAccess :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionArrayAccess x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "arrayAccess"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the classInstance variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionClassInstance :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionClassInstance x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classInstance"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the classLiteral variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionClassLiteral :: Typed.TypedTerm Syntax.ClassLiteral -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionClassLiteral x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classLiteral"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the dotThis variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionDotThis :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionDotThis x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "dotThis"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the fieldAccess variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionFieldAccess x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "fieldAccess"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the literal variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionLiteral :: Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionLiteral x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "literal"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the methodInvocation variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionMethodInvocation :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionMethodInvocation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "methodInvocation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the methodReference variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionMethodReference :: Typed.TypedTerm Syntax.MethodReference -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionMethodReference x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "methodReference"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the parens variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionParens :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionParens x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "parens"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionPrimaryNoNewArrayExpression :: Typed.TypedName Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionPrimaryNoNewArrayExpression =- Typed.TypedName (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression")---- | DSL injection for the this variant of hydra.java.syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionThis :: Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression-primaryNoNewArrayExpressionThis =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "this"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.Primary-primaryPrimary :: Typed.TypedName Syntax.Primary-primaryPrimary = Typed.TypedName (Core.Name "hydra.java.syntax.Primary")---- | DSL injection for the boolean variant of hydra.java.syntax.PrimitiveType-primitiveTypeBoolean :: Typed.TypedTerm Syntax.PrimitiveType-primitiveTypeBoolean =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimitiveType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "boolean"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the numeric variant of hydra.java.syntax.PrimitiveType-primitiveTypeNumeric :: Typed.TypedTerm Syntax.NumericType -> Typed.TypedTerm Syntax.PrimitiveType-primitiveTypeNumeric x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.PrimitiveType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "numeric"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.PrimitiveType-primitiveTypePrimitiveType :: Typed.TypedName Syntax.PrimitiveType-primitiveTypePrimitiveType = Typed.TypedName (Core.Name "hydra.java.syntax.PrimitiveType")---- | DSL constructor for hydra.java.syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotations :: Typed.TypedTerm Syntax.PrimitiveType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotations type_ annotations =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsAnnotations :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.Annotation]-primitiveTypeWithAnnotationsAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsPrimitiveTypeWithAnnotations :: Typed.TypedName Syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsPrimitiveTypeWithAnnotations =- Typed.TypedName (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations")---- | DSL accessor for the type field of hydra.java.syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsType :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.PrimitiveType-primitiveTypeWithAnnotationsType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annotations field of hydra.java.syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsWithAnnotations :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the type field of hydra.java.syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsWithType :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.PrimitiveType -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations-primitiveTypeWithAnnotationsWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.ReceiverParameter-receiverParameter :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.ReceiverParameter-receiverParameter annotations unannType identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Typed.unTypedTerm unannType)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.ReceiverParameter-receiverParameterAnnotations :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm [Syntax.Annotation]-receiverParameterAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.ReceiverParameter-receiverParameterIdentifier :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm (Maybe Syntax.Identifier)-receiverParameterIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ReceiverParameter-receiverParameterReceiverParameter :: Typed.TypedName Syntax.ReceiverParameter-receiverParameterReceiverParameter = Typed.TypedName (Core.Name "hydra.java.syntax.ReceiverParameter")---- | DSL accessor for the unannType field of hydra.java.syntax.ReceiverParameter-receiverParameterUnannType :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm Syntax.UnannType-receiverParameterUnannType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "unannType")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annotations field of hydra.java.syntax.ReceiverParameter-receiverParameterWithAnnotations :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ReceiverParameter-receiverParameterWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "unannType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.ReceiverParameter-receiverParameterWithIdentifier :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.ReceiverParameter-receiverParameterWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "unannType")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the unannType field of hydra.java.syntax.ReceiverParameter-receiverParameterWithUnannType :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.ReceiverParameter-receiverParameterWithUnannType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "unannType"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ReceiverParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.RecordBody wrapper-recordBody :: Typed.TypedTerm [Syntax.RecordBodyDeclaration] -> Typed.TypedTerm Syntax.RecordBody-recordBody x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.RecordBody"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL injection for the classBody variant of hydra.java.syntax.RecordBodyDeclaration-recordBodyDeclarationClassBody :: Typed.TypedTerm Syntax.ClassBodyDeclaration -> Typed.TypedTerm Syntax.RecordBodyDeclaration-recordBodyDeclarationClassBody x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RecordBodyDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classBody"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the compactConstructor variant of hydra.java.syntax.RecordBodyDeclaration-recordBodyDeclarationCompactConstructor :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.RecordBodyDeclaration-recordBodyDeclarationCompactConstructor x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RecordBodyDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "compactConstructor"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.RecordBodyDeclaration-recordBodyDeclarationRecordBodyDeclaration :: Typed.TypedName Syntax.RecordBodyDeclaration-recordBodyDeclarationRecordBodyDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.RecordBodyDeclaration")---- | DSL name token for hydra.java.syntax.RecordBody-recordBodyRecordBody :: Typed.TypedName Syntax.RecordBody-recordBodyRecordBody = Typed.TypedName (Core.Name "hydra.java.syntax.RecordBody")---- | DSL constructor for the hydra.java.syntax.RecordComponentModifier wrapper-recordComponentModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.RecordComponentModifier-recordComponentModifier x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.RecordComponentModifier"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RecordComponentModifier-recordComponentModifierRecordComponentModifier :: Typed.TypedName Syntax.RecordComponentModifier-recordComponentModifierRecordComponentModifier = Typed.TypedName (Core.Name "hydra.java.syntax.RecordComponentModifier")---- | DSL name token for hydra.java.syntax.RecordComponent-recordComponentRecordComponent :: Typed.TypedName Syntax.RecordComponent-recordComponentRecordComponent = Typed.TypedName (Core.Name "hydra.java.syntax.RecordComponent")---- | DSL injection for the simple variant of hydra.java.syntax.RecordComponent-recordComponentSimple :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.RecordComponent-recordComponentSimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the variableArity variant of hydra.java.syntax.RecordComponent-recordComponentVariableArity :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.RecordComponent-recordComponentVariableArity x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variableArity"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.RecordComponent_Simple-recordComponent_Simple :: Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.RecordComponent_Simple-recordComponent_Simple modifiers type_ identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.RecordComponent_Simple-recordComponent_SimpleIdentifier :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.Identifier-recordComponent_SimpleIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.RecordComponent_Simple-recordComponent_SimpleModifiers :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm [Syntax.RecordComponentModifier]-recordComponent_SimpleModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RecordComponent_Simple-recordComponent_SimpleRecordComponent_Simple :: Typed.TypedName Syntax.RecordComponent_Simple-recordComponent_SimpleRecordComponent_Simple = Typed.TypedName (Core.Name "hydra.java.syntax.RecordComponent_Simple")---- | DSL accessor for the type field of hydra.java.syntax.RecordComponent_Simple-recordComponent_SimpleType :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.UnannType-recordComponent_SimpleType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.RecordComponent_Simple-recordComponent_SimpleWithIdentifier :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.RecordComponent_Simple-recordComponent_SimpleWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.RecordComponent_Simple-recordComponent_SimpleWithModifiers :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.RecordComponent_Simple-recordComponent_SimpleWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.RecordComponent_Simple-recordComponent_SimpleWithType :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.RecordComponent_Simple-recordComponent_SimpleWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordComponent_Simple"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.RecordDeclaration-recordDeclaration :: Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.RecordHeader -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.RecordBody -> Typed.TypedTerm Syntax.RecordDeclaration-recordDeclaration modifiers identifier parameters header implements body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm parameters)},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm header)},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Typed.unTypedTerm implements)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.RecordDeclaration-recordDeclarationBody :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordBody-recordDeclarationBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the header field of hydra.java.syntax.RecordDeclaration-recordDeclarationHeader :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordHeader-recordDeclarationHeader x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.RecordDeclaration-recordDeclarationIdentifier :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier-recordDeclarationIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the implements field of hydra.java.syntax.RecordDeclaration-recordDeclarationImplements :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]-recordDeclarationImplements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.RecordDeclaration-recordDeclarationModifiers :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.ClassModifier]-recordDeclarationModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the parameters field of hydra.java.syntax.RecordDeclaration-recordDeclarationParameters :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.TypeParameter]-recordDeclarationParameters x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RecordDeclaration-recordDeclarationRecordDeclaration :: Typed.TypedName Syntax.RecordDeclaration-recordDeclarationRecordDeclaration = Typed.TypedName (Core.Name "hydra.java.syntax.RecordDeclaration")---- | DSL updater for the body field of hydra.java.syntax.RecordDeclaration-recordDeclarationWithBody :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordBody -> Typed.TypedTerm Syntax.RecordDeclaration-recordDeclarationWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the header field of hydra.java.syntax.RecordDeclaration-recordDeclarationWithHeader :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordHeader -> Typed.TypedTerm Syntax.RecordDeclaration-recordDeclarationWithHeader original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.RecordDeclaration-recordDeclarationWithIdentifier :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.RecordDeclaration-recordDeclarationWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the implements field of hydra.java.syntax.RecordDeclaration-recordDeclarationWithImplements :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.RecordDeclaration-recordDeclarationWithImplements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.RecordDeclaration-recordDeclarationWithModifiers :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.RecordDeclaration-recordDeclarationWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "parameters")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the parameters field of hydra.java.syntax.RecordDeclaration-recordDeclarationWithParameters :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.RecordDeclaration-recordDeclarationWithParameters original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "parameters"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "header"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "header")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "implements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "implements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordDeclaration"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.RecordHeader wrapper-recordHeader :: Typed.TypedTerm [Syntax.RecordComponent] -> Typed.TypedTerm Syntax.RecordHeader-recordHeader x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.RecordHeader"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RecordHeader-recordHeaderRecordHeader :: Typed.TypedName Syntax.RecordHeader-recordHeaderRecordHeader = Typed.TypedName (Core.Name "hydra.java.syntax.RecordHeader")---- | DSL constructor for hydra.java.syntax.RecordPattern-recordPattern :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.RecordPattern-recordPattern type_ patterns =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "patterns"),- Core.fieldTerm = (Typed.unTypedTerm patterns)}]}))---- | DSL accessor for the patterns field of hydra.java.syntax.RecordPattern-recordPatternPatterns :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm [Syntax.Pattern]-recordPatternPatterns x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordPattern"),- Core.projectionFieldName = (Core.Name "patterns")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RecordPattern-recordPatternRecordPattern :: Typed.TypedName Syntax.RecordPattern-recordPatternRecordPattern = Typed.TypedName (Core.Name "hydra.java.syntax.RecordPattern")---- | DSL accessor for the type field of hydra.java.syntax.RecordPattern-recordPatternType :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm Syntax.ReferenceType-recordPatternType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordPattern"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the patterns field of hydra.java.syntax.RecordPattern-recordPatternWithPatterns :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.RecordPattern-recordPatternWithPatterns original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordPattern"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "patterns"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the type field of hydra.java.syntax.RecordPattern-recordPatternWithType :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.RecordPattern-recordPatternWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RecordPattern"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "patterns"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RecordPattern"),- Core.projectionFieldName = (Core.Name "patterns")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the array variant of hydra.java.syntax.ReferenceType-referenceTypeArray :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.ReferenceType-referenceTypeArray x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ReferenceType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the classOrInterface variant of hydra.java.syntax.ReferenceType-referenceTypeClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ReferenceType-referenceTypeClassOrInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ReferenceType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.ReferenceType-referenceTypeReferenceType :: Typed.TypedName Syntax.ReferenceType-referenceTypeReferenceType = Typed.TypedName (Core.Name "hydra.java.syntax.ReferenceType")---- | DSL injection for the variable variant of hydra.java.syntax.ReferenceType-referenceTypeVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.ReferenceType-referenceTypeVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ReferenceType"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the greaterThan variant of hydra.java.syntax.RelationalExpression-relationalExpressionGreaterThan :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpressionGreaterThan x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "greaterThan"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the greaterThanEqual variant of hydra.java.syntax.RelationalExpression-relationalExpressionGreaterThanEqual :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpressionGreaterThanEqual x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "greaterThanEqual"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the instanceofExpression variant of hydra.java.syntax.RelationalExpression-relationalExpressionInstanceofExpression :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpressionInstanceofExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "instanceofExpression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the lessThan variant of hydra.java.syntax.RelationalExpression-relationalExpressionLessThan :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpressionLessThan x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "lessThan"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the lessThanEqual variant of hydra.java.syntax.RelationalExpression-relationalExpressionLessThanEqual :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpressionLessThanEqual x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "lessThanEqual"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.RelationalExpression-relationalExpressionRelationalExpression :: Typed.TypedName Syntax.RelationalExpression-relationalExpressionRelationalExpression = Typed.TypedName (Core.Name "hydra.java.syntax.RelationalExpression")---- | DSL injection for the simple variant of hydra.java.syntax.RelationalExpression-relationalExpressionSimple :: Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpressionSimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThan :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThan lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL constructor for hydra.java.syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqual :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqual lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpression_GreaterThanEqualLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualRelationalExpression_GreaterThanEqual :: Typed.TypedName Syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualRelationalExpression_GreaterThanEqual =- Typed.TypedName (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual")---- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.ShiftExpression-relationalExpression_GreaterThanEqualRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual-relationalExpression_GreaterThanEqualWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpression_GreaterThanLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanRelationalExpression_GreaterThan :: Typed.TypedName Syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanRelationalExpression_GreaterThan =- Typed.TypedName (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan")---- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.ShiftExpression-relationalExpression_GreaterThanRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThan-relationalExpression_GreaterThanWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.RelationalExpression_LessThan-relationalExpression_LessThan :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThan-relationalExpression_LessThan lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThan"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL constructor for hydra.java.syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqual :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqual lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpression_LessThanEqualLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualRelationalExpression_LessThanEqual :: Typed.TypedName Syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualRelationalExpression_LessThanEqual =- Typed.TypedName (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual")---- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.ShiftExpression-relationalExpression_LessThanEqualRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual-relationalExpression_LessThanEqualWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_LessThan-relationalExpression_LessThanLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.RelationalExpression-relationalExpression_LessThanLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThan"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.RelationalExpression_LessThan-relationalExpression_LessThanRelationalExpression_LessThan :: Typed.TypedName Syntax.RelationalExpression_LessThan-relationalExpression_LessThanRelationalExpression_LessThan =- Typed.TypedName (Core.Name "hydra.java.syntax.RelationalExpression_LessThan")---- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_LessThan-relationalExpression_LessThanRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.ShiftExpression-relationalExpression_LessThanRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThan"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_LessThan-relationalExpression_LessThanWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThan-relationalExpression_LessThanWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThan"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThan"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_LessThan-relationalExpression_LessThanWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThan-relationalExpression_LessThanWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThan"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.RelationalExpression_LessThan"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.RequiresModifier-requiresModifierRequiresModifier :: Typed.TypedName Syntax.RequiresModifier-requiresModifierRequiresModifier = Typed.TypedName (Core.Name "hydra.java.syntax.RequiresModifier")---- | DSL injection for the static variant of hydra.java.syntax.RequiresModifier-requiresModifierStatic :: Typed.TypedTerm Syntax.RequiresModifier-requiresModifierStatic =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RequiresModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "static"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the transitive variant of hydra.java.syntax.RequiresModifier-requiresModifierTransitive :: Typed.TypedTerm Syntax.RequiresModifier-requiresModifierTransitive =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.RequiresModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "transitive"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the local variant of hydra.java.syntax.Resource-resourceLocal :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Resource-resourceLocal x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Resource"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "local"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.Resource-resourceResource :: Typed.TypedName Syntax.Resource-resourceResource = Typed.TypedName (Core.Name "hydra.java.syntax.Resource")---- | DSL constructor for the hydra.java.syntax.ResourceSpecification wrapper-resourceSpecification :: Typed.TypedTerm [Syntax.Resource] -> Typed.TypedTerm Syntax.ResourceSpecification-resourceSpecification x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ResourceSpecification"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ResourceSpecification-resourceSpecificationResourceSpecification :: Typed.TypedName Syntax.ResourceSpecification-resourceSpecificationResourceSpecification = Typed.TypedName (Core.Name "hydra.java.syntax.ResourceSpecification")---- | DSL injection for the variable variant of hydra.java.syntax.Resource-resourceVariable :: Typed.TypedTerm Syntax.VariableAccess -> Typed.TypedTerm Syntax.Resource-resourceVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Resource"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.Resource_Local-resource_Local :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Resource_Local-resource_Local modifiers type_ identifier expression =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)}]}))---- | DSL accessor for the expression field of hydra.java.syntax.Resource_Local-resource_LocalExpression :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Expression-resource_LocalExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.Resource_Local-resource_LocalIdentifier :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Identifier-resource_LocalIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.Resource_Local-resource_LocalModifiers :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm [Syntax.VariableModifier]-resource_LocalModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Resource_Local-resource_LocalResource_Local :: Typed.TypedName Syntax.Resource_Local-resource_LocalResource_Local = Typed.TypedName (Core.Name "hydra.java.syntax.Resource_Local")---- | DSL accessor for the type field of hydra.java.syntax.Resource_Local-resource_LocalType :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.LocalVariableType-resource_LocalType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expression field of hydra.java.syntax.Resource_Local-resource_LocalWithExpression :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Resource_Local-resource_LocalWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.Resource_Local-resource_LocalWithIdentifier :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.Resource_Local-resource_LocalWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.Resource_Local-resource_LocalWithModifiers :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.Resource_Local-resource_LocalWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.Resource_Local-resource_LocalWithType :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm Syntax.Resource_Local-resource_LocalWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Resource_Local"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.Result-resultResult :: Typed.TypedName Syntax.Result-resultResult = Typed.TypedName (Core.Name "hydra.java.syntax.Result")---- | DSL injection for the type variant of hydra.java.syntax.Result-resultType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Result-resultType x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Result"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the void variant of hydra.java.syntax.Result-resultVoid :: Typed.TypedTerm Syntax.Result-resultVoid =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Result"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "void"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for the hydra.java.syntax.ReturnStatement wrapper-returnStatement :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ReturnStatement-returnStatement x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ReturnStatement"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ReturnStatement-returnStatementReturnStatement :: Typed.TypedName Syntax.ReturnStatement-returnStatementReturnStatement = Typed.TypedName (Core.Name "hydra.java.syntax.ReturnStatement")---- | DSL name token for hydra.java.syntax.ShiftExpression-shiftExpressionShiftExpression :: Typed.TypedName Syntax.ShiftExpression-shiftExpressionShiftExpression = Typed.TypedName (Core.Name "hydra.java.syntax.ShiftExpression")---- | DSL injection for the shiftLeft variant of hydra.java.syntax.ShiftExpression-shiftExpressionShiftLeft :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression-shiftExpressionShiftLeft x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "shiftLeft"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the shiftRight variant of hydra.java.syntax.ShiftExpression-shiftExpressionShiftRight :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression-shiftExpressionShiftRight x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "shiftRight"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the shiftRightZeroFill variant of hydra.java.syntax.ShiftExpression-shiftExpressionShiftRightZeroFill :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression-shiftExpressionShiftRightZeroFill x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "shiftRightZeroFill"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the unary variant of hydra.java.syntax.ShiftExpression-shiftExpressionUnary :: Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.ShiftExpression-shiftExpressionUnary x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "unary"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.ShiftExpression_Binary-shiftExpression_Binary :: Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.ShiftExpression_Binary-shiftExpression_Binary lhs rhs =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ShiftExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm lhs)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the lhs field of hydra.java.syntax.ShiftExpression_Binary-shiftExpression_BinaryLhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression-shiftExpression_BinaryLhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.java.syntax.ShiftExpression_Binary-shiftExpression_BinaryRhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression-shiftExpression_BinaryRhs x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ShiftExpression_Binary-shiftExpression_BinaryShiftExpression_Binary :: Typed.TypedName Syntax.ShiftExpression_Binary-shiftExpression_BinaryShiftExpression_Binary = Typed.TypedName (Core.Name "hydra.java.syntax.ShiftExpression_Binary")---- | DSL updater for the lhs field of hydra.java.syntax.ShiftExpression_Binary-shiftExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.ShiftExpression_Binary-shiftExpression_BinaryWithLhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ShiftExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression_Binary"),- Core.projectionFieldName = (Core.Name "rhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.java.syntax.ShiftExpression_Binary-shiftExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.ShiftExpression_Binary-shiftExpression_BinaryWithRhs original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.ShiftExpression_Binary"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "lhs"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.ShiftExpression_Binary"),- Core.projectionFieldName = (Core.Name "lhs")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "rhs"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.java.syntax.SimpleTypeName wrapper-simpleTypeName :: Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.SimpleTypeName-simpleTypeName x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.SimpleTypeName"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SimpleTypeName-simpleTypeNameSimpleTypeName :: Typed.TypedName Syntax.SimpleTypeName-simpleTypeNameSimpleTypeName = Typed.TypedName (Core.Name "hydra.java.syntax.SimpleTypeName")---- | DSL constructor for hydra.java.syntax.SingleElementAnnotation-singleElementAnnotation :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm (Maybe Syntax.ElementValue) -> Typed.TypedTerm Syntax.SingleElementAnnotation-singleElementAnnotation name value =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SingleElementAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm name)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL accessor for the name field of hydra.java.syntax.SingleElementAnnotation-singleElementAnnotationName :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm Syntax.TypeName-singleElementAnnotationName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleElementAnnotation"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SingleElementAnnotation-singleElementAnnotationSingleElementAnnotation :: Typed.TypedName Syntax.SingleElementAnnotation-singleElementAnnotationSingleElementAnnotation = Typed.TypedName (Core.Name "hydra.java.syntax.SingleElementAnnotation")---- | DSL accessor for the value field of hydra.java.syntax.SingleElementAnnotation-singleElementAnnotationValue :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm (Maybe Syntax.ElementValue)-singleElementAnnotationValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleElementAnnotation"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.java.syntax.SingleElementAnnotation-singleElementAnnotationWithName :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.SingleElementAnnotation-singleElementAnnotationWithName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SingleElementAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleElementAnnotation"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the value field of hydra.java.syntax.SingleElementAnnotation-singleElementAnnotationWithValue :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm (Maybe Syntax.ElementValue) -> Typed.TypedTerm Syntax.SingleElementAnnotation-singleElementAnnotationWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SingleElementAnnotation"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "name"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleElementAnnotation"),- Core.projectionFieldName = (Core.Name "name")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.SingleStaticImportDeclaration-singleStaticImportDeclaration :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.SingleStaticImportDeclaration-singleStaticImportDeclaration typeName identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeName"),- Core.fieldTerm = (Typed.unTypedTerm typeName)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the identifier field of hydra.java.syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationIdentifier :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.Identifier-singleStaticImportDeclarationIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationSingleStaticImportDeclaration :: Typed.TypedName Syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationSingleStaticImportDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration")---- | DSL accessor for the typeName field of hydra.java.syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationTypeName :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.TypeName-singleStaticImportDeclarationTypeName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"),- Core.projectionFieldName = (Core.Name "typeName")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the identifier field of hydra.java.syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationWithIdentifier :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeName"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"),- Core.projectionFieldName = (Core.Name "typeName")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the typeName field of hydra.java.syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationWithTypeName :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.SingleStaticImportDeclaration-singleStaticImportDeclarationWithTypeName original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeName"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.SingleTypeImportDeclaration wrapper-singleTypeImportDeclaration :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.SingleTypeImportDeclaration-singleTypeImportDeclaration x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.SingleTypeImportDeclaration"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SingleTypeImportDeclaration-singleTypeImportDeclarationSingleTypeImportDeclaration :: Typed.TypedName Syntax.SingleTypeImportDeclaration-singleTypeImportDeclarationSingleTypeImportDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.SingleTypeImportDeclaration")---- | DSL injection for the assignment variant of hydra.java.syntax.StatementExpression-statementExpressionAssignment :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.StatementExpression-statementExpressionAssignment x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "assignment"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the classInstanceCreation variant of hydra.java.syntax.StatementExpression-statementExpressionClassInstanceCreation :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.StatementExpression-statementExpressionClassInstanceCreation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classInstanceCreation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the methodInvocation variant of hydra.java.syntax.StatementExpression-statementExpressionMethodInvocation :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.StatementExpression-statementExpressionMethodInvocation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "methodInvocation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the postDecrement variant of hydra.java.syntax.StatementExpression-statementExpressionPostDecrement :: Typed.TypedTerm Syntax.PostDecrementExpression -> Typed.TypedTerm Syntax.StatementExpression-statementExpressionPostDecrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "postDecrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the postIncrement variant of hydra.java.syntax.StatementExpression-statementExpressionPostIncrement :: Typed.TypedTerm Syntax.PostIncrementExpression -> Typed.TypedTerm Syntax.StatementExpression-statementExpressionPostIncrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "postIncrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the preDecrement variant of hydra.java.syntax.StatementExpression-statementExpressionPreDecrement :: Typed.TypedTerm Syntax.PreDecrementExpression -> Typed.TypedTerm Syntax.StatementExpression-statementExpressionPreDecrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "preDecrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the preIncrement variant of hydra.java.syntax.StatementExpression-statementExpressionPreIncrement :: Typed.TypedTerm Syntax.PreIncrementExpression -> Typed.TypedTerm Syntax.StatementExpression-statementExpressionPreIncrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "preIncrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.StatementExpression-statementExpressionStatementExpression :: Typed.TypedName Syntax.StatementExpression-statementExpressionStatementExpression = Typed.TypedName (Core.Name "hydra.java.syntax.StatementExpression")---- | DSL injection for the for variant of hydra.java.syntax.Statement-statementFor :: Typed.TypedTerm Syntax.ForStatement -> Typed.TypedTerm Syntax.Statement-statementFor x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Statement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "for"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ifThen variant of hydra.java.syntax.Statement-statementIfThen :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Statement-statementIfThen x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Statement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "ifThen"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ifThenElse variant of hydra.java.syntax.Statement-statementIfThenElse :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.Statement-statementIfThenElse x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Statement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "ifThenElse"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the labeled variant of hydra.java.syntax.Statement-statementLabeled :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Statement-statementLabeled x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Statement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "labeled"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the for variant of hydra.java.syntax.StatementNoShortIf-statementNoShortIfFor :: Typed.TypedTerm Syntax.ForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-statementNoShortIfFor x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementNoShortIf"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "for"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ifThenElse variant of hydra.java.syntax.StatementNoShortIf-statementNoShortIfIfThenElse :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-statementNoShortIfIfThenElse x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementNoShortIf"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "ifThenElse"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the labeled variant of hydra.java.syntax.StatementNoShortIf-statementNoShortIfLabeled :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-statementNoShortIfLabeled x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementNoShortIf"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "labeled"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.StatementNoShortIf-statementNoShortIfStatementNoShortIf :: Typed.TypedName Syntax.StatementNoShortIf-statementNoShortIfStatementNoShortIf = Typed.TypedName (Core.Name "hydra.java.syntax.StatementNoShortIf")---- | DSL injection for the while variant of hydra.java.syntax.StatementNoShortIf-statementNoShortIfWhile :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-statementNoShortIfWhile x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementNoShortIf"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "while"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the withoutTrailing variant of hydra.java.syntax.StatementNoShortIf-statementNoShortIfWithoutTrailing :: Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement -> Typed.TypedTerm Syntax.StatementNoShortIf-statementNoShortIfWithoutTrailing x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementNoShortIf"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "withoutTrailing"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.Statement-statementStatement :: Typed.TypedName Syntax.Statement-statementStatement = Typed.TypedName (Core.Name "hydra.java.syntax.Statement")---- | DSL injection for the while variant of hydra.java.syntax.Statement-statementWhile :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm Syntax.Statement-statementWhile x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Statement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "while"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the withoutTrailing variant of hydra.java.syntax.Statement-statementWithoutTrailing :: Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement -> Typed.TypedTerm Syntax.Statement-statementWithoutTrailing x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Statement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "withoutTrailing"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the assert variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementAssert :: Typed.TypedTerm Syntax.AssertStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementAssert x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "assert"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the block variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementBlock x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the break variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementBreak :: Typed.TypedTerm Syntax.BreakStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementBreak x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "break"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the continue variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementContinue :: Typed.TypedTerm Syntax.ContinueStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementContinue x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "continue"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the do variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementDo :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementDo x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "do"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the empty variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementEmpty :: Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementEmpty =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "empty"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the expression variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementExpression :: Typed.TypedTerm Syntax.ExpressionStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the return variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementReturn :: Typed.TypedTerm Syntax.ReturnStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementReturn x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "return"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementStatementWithoutTrailingSubstatement :: Typed.TypedName Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementStatementWithoutTrailingSubstatement =- Typed.TypedName (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement")---- | DSL injection for the switch variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementSwitch :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementSwitch x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "switch"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the synchronized variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementSynchronized :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementSynchronized x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "synchronized"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the throw variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementThrow :: Typed.TypedTerm Syntax.ThrowStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementThrow x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "throw"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the try variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementTry :: Typed.TypedTerm Syntax.TryStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementTry x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "try"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the yield variant of hydra.java.syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementYield :: Typed.TypedTerm Syntax.YieldStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement-statementWithoutTrailingSubstatementYield x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "yield"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for the hydra.java.syntax.StaticImportOnDemandDeclaration wrapper-staticImportOnDemandDeclaration :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.StaticImportOnDemandDeclaration-staticImportOnDemandDeclaration x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.StaticImportOnDemandDeclaration"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.StaticImportOnDemandDeclaration-staticImportOnDemandDeclarationStaticImportOnDemandDeclaration :: Typed.TypedName Syntax.StaticImportOnDemandDeclaration-staticImportOnDemandDeclarationStaticImportOnDemandDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.StaticImportOnDemandDeclaration")---- | DSL constructor for the hydra.java.syntax.StaticInitializer wrapper-staticInitializer :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.StaticInitializer-staticInitializer x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.StaticInitializer"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.StaticInitializer-staticInitializerStaticInitializer :: Typed.TypedName Syntax.StaticInitializer-staticInitializerStaticInitializer = Typed.TypedName (Core.Name "hydra.java.syntax.StaticInitializer")---- | DSL constructor for the hydra.java.syntax.StringLiteral wrapper-stringLiteral :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.StringLiteral-stringLiteral x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.StringLiteral"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.StringLiteral-stringLiteralStringLiteral :: Typed.TypedName Syntax.StringLiteral-stringLiteralStringLiteral = Typed.TypedName (Core.Name "hydra.java.syntax.StringLiteral")---- | DSL injection for the legacy variant of hydra.java.syntax.SwitchBlock-switchBlockLegacy :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm Syntax.SwitchBlock-switchBlockLegacy x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlock"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "legacy"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the rules variant of hydra.java.syntax.SwitchBlock-switchBlockRules :: Typed.TypedTerm [Syntax.SwitchRule] -> Typed.TypedTerm Syntax.SwitchBlock-switchBlockRules x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlock"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "rules"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.SwitchBlockStatementGroup-switchBlockStatementGroup :: Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.SwitchBlockStatementGroup-switchBlockStatementGroup labels statements =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "labels"),- Core.fieldTerm = (Typed.unTypedTerm labels)},- Core.Field {- Core.fieldName = (Core.Name "statements"),- Core.fieldTerm = (Typed.unTypedTerm statements)}]}))---- | DSL accessor for the labels field of hydra.java.syntax.SwitchBlockStatementGroup-switchBlockStatementGroupLabels :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.SwitchLabel]-switchBlockStatementGroupLabels x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"),- Core.projectionFieldName = (Core.Name "labels")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the statements field of hydra.java.syntax.SwitchBlockStatementGroup-switchBlockStatementGroupStatements :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.BlockStatement]-switchBlockStatementGroupStatements x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"),- Core.projectionFieldName = (Core.Name "statements")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SwitchBlockStatementGroup-switchBlockStatementGroupSwitchBlockStatementGroup :: Typed.TypedName Syntax.SwitchBlockStatementGroup-switchBlockStatementGroupSwitchBlockStatementGroup =- Typed.TypedName (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup")---- | DSL updater for the labels field of hydra.java.syntax.SwitchBlockStatementGroup-switchBlockStatementGroupWithLabels :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm Syntax.SwitchBlockStatementGroup-switchBlockStatementGroupWithLabels original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "labels"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "statements"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"),- Core.projectionFieldName = (Core.Name "statements")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the statements field of hydra.java.syntax.SwitchBlockStatementGroup-switchBlockStatementGroupWithStatements :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.SwitchBlockStatementGroup-switchBlockStatementGroupWithStatements original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "labels"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"),- Core.projectionFieldName = (Core.Name "labels")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "statements"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL name token for hydra.java.syntax.SwitchBlock-switchBlockSwitchBlock :: Typed.TypedName Syntax.SwitchBlock-switchBlockSwitchBlock = Typed.TypedName (Core.Name "hydra.java.syntax.SwitchBlock")---- | DSL constructor for hydra.java.syntax.SwitchBlock_Legacy-switchBlock_Legacy :: Typed.TypedTerm [Syntax.SwitchBlockStatementGroup] -> Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm Syntax.SwitchBlock_Legacy-switchBlock_Legacy groups trailingLabels =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchBlock_Legacy"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "groups"),- Core.fieldTerm = (Typed.unTypedTerm groups)},- Core.Field {- Core.fieldName = (Core.Name "trailingLabels"),- Core.fieldTerm = (Typed.unTypedTerm trailingLabels)}]}))---- | DSL accessor for the groups field of hydra.java.syntax.SwitchBlock_Legacy-switchBlock_LegacyGroups :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchBlockStatementGroup]-switchBlock_LegacyGroups x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlock_Legacy"),- Core.projectionFieldName = (Core.Name "groups")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SwitchBlock_Legacy-switchBlock_LegacySwitchBlock_Legacy :: Typed.TypedName Syntax.SwitchBlock_Legacy-switchBlock_LegacySwitchBlock_Legacy = Typed.TypedName (Core.Name "hydra.java.syntax.SwitchBlock_Legacy")---- | DSL accessor for the trailingLabels field of hydra.java.syntax.SwitchBlock_Legacy-switchBlock_LegacyTrailingLabels :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchLabel]-switchBlock_LegacyTrailingLabels x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlock_Legacy"),- Core.projectionFieldName = (Core.Name "trailingLabels")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the groups field of hydra.java.syntax.SwitchBlock_Legacy-switchBlock_LegacyWithGroups :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchBlockStatementGroup] -> Typed.TypedTerm Syntax.SwitchBlock_Legacy-switchBlock_LegacyWithGroups original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchBlock_Legacy"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "groups"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "trailingLabels"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlock_Legacy"),- Core.projectionFieldName = (Core.Name "trailingLabels")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the trailingLabels field of hydra.java.syntax.SwitchBlock_Legacy-switchBlock_LegacyWithTrailingLabels :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm Syntax.SwitchBlock_Legacy-switchBlock_LegacyWithTrailingLabels original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchBlock_Legacy"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "groups"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchBlock_Legacy"),- Core.projectionFieldName = (Core.Name "groups")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "trailingLabels"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.SwitchExpression-switchExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchExpression-switchExpression cond block =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm block)}]}))---- | DSL accessor for the block field of hydra.java.syntax.SwitchExpression-switchExpressionBlock :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.SwitchBlock-switchExpressionBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchExpression"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.SwitchExpression-switchExpressionCond :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.Expression-switchExpressionCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchExpression"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SwitchExpression-switchExpressionSwitchExpression :: Typed.TypedName Syntax.SwitchExpression-switchExpressionSwitchExpression = Typed.TypedName (Core.Name "hydra.java.syntax.SwitchExpression")---- | DSL updater for the block field of hydra.java.syntax.SwitchExpression-switchExpressionWithBlock :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchExpression-switchExpressionWithBlock original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchExpression"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.SwitchExpression-switchExpressionWithCond :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchExpression-switchExpressionWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchExpression"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the case variant of hydra.java.syntax.SwitchLabel-switchLabelCase :: Typed.TypedTerm [Syntax.CaseConstant] -> Typed.TypedTerm Syntax.SwitchLabel-switchLabelCase x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchLabel"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "case"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the casePattern variant of hydra.java.syntax.SwitchLabel-switchLabelCasePattern :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm Syntax.SwitchLabel-switchLabelCasePattern x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchLabel"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "casePattern"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the default variant of hydra.java.syntax.SwitchLabel-switchLabelDefault :: Typed.TypedTerm Syntax.SwitchLabel-switchLabelDefault =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchLabel"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "default"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the null variant of hydra.java.syntax.SwitchLabel-switchLabelNull :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.SwitchLabel-switchLabelNull x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchLabel"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "null"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.SwitchLabel-switchLabelSwitchLabel :: Typed.TypedName Syntax.SwitchLabel-switchLabelSwitchLabel = Typed.TypedName (Core.Name "hydra.java.syntax.SwitchLabel")---- | DSL constructor for hydra.java.syntax.SwitchRule-switchRule :: Typed.TypedTerm Syntax.SwitchLabel -> Typed.TypedTerm Syntax.SwitchRule_Body -> Typed.TypedTerm Syntax.SwitchRule-switchRule label body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchRule"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "label"),- Core.fieldTerm = (Typed.unTypedTerm label)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.SwitchRule-switchRuleBody :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchRule_Body-switchRuleBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchRule"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the label field of hydra.java.syntax.SwitchRule-switchRuleLabel :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchLabel-switchRuleLabel x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchRule"),- Core.projectionFieldName = (Core.Name "label")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SwitchRule-switchRuleSwitchRule :: Typed.TypedName Syntax.SwitchRule-switchRuleSwitchRule = Typed.TypedName (Core.Name "hydra.java.syntax.SwitchRule")---- | DSL updater for the body field of hydra.java.syntax.SwitchRule-switchRuleWithBody :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchRule_Body -> Typed.TypedTerm Syntax.SwitchRule-switchRuleWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchRule"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "label"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchRule"),- Core.projectionFieldName = (Core.Name "label")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the label field of hydra.java.syntax.SwitchRule-switchRuleWithLabel :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchLabel -> Typed.TypedTerm Syntax.SwitchRule-switchRuleWithLabel original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchRule"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "label"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchRule"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the block variant of hydra.java.syntax.SwitchRule_Body-switchRule_BodyBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.SwitchRule_Body-switchRule_BodyBlock x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchRule_Body"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the expression variant of hydra.java.syntax.SwitchRule_Body-switchRule_BodyExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchRule_Body-switchRule_BodyExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchRule_Body"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.SwitchRule_Body-switchRule_BodySwitchRule_Body :: Typed.TypedName Syntax.SwitchRule_Body-switchRule_BodySwitchRule_Body = Typed.TypedName (Core.Name "hydra.java.syntax.SwitchRule_Body")---- | DSL injection for the throw variant of hydra.java.syntax.SwitchRule_Body-switchRule_BodyThrow :: Typed.TypedTerm Syntax.ThrowStatement -> Typed.TypedTerm Syntax.SwitchRule_Body-switchRule_BodyThrow x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.SwitchRule_Body"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "throw"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.SwitchStatement-switchStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchStatement-switchStatement cond block =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm block)}]}))---- | DSL accessor for the block field of hydra.java.syntax.SwitchStatement-switchStatementBlock :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.SwitchBlock-switchStatementBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.SwitchStatement-switchStatementCond :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.Expression-switchStatementCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SwitchStatement-switchStatementSwitchStatement :: Typed.TypedName Syntax.SwitchStatement-switchStatementSwitchStatement = Typed.TypedName (Core.Name "hydra.java.syntax.SwitchStatement")---- | DSL updater for the block field of hydra.java.syntax.SwitchStatement-switchStatementWithBlock :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchStatement-switchStatementWithBlock original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.SwitchStatement-switchStatementWithCond :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchStatement-switchStatementWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SwitchStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SwitchStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.SynchronizedStatement-synchronizedStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.SynchronizedStatement-synchronizedStatement expression block =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SynchronizedStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm expression)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm block)}]}))---- | DSL accessor for the block field of hydra.java.syntax.SynchronizedStatement-synchronizedStatementBlock :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Block-synchronizedStatementBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SynchronizedStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the expression field of hydra.java.syntax.SynchronizedStatement-synchronizedStatementExpression :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Expression-synchronizedStatementExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SynchronizedStatement"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.SynchronizedStatement-synchronizedStatementSynchronizedStatement :: Typed.TypedName Syntax.SynchronizedStatement-synchronizedStatementSynchronizedStatement = Typed.TypedName (Core.Name "hydra.java.syntax.SynchronizedStatement")---- | DSL updater for the block field of hydra.java.syntax.SynchronizedStatement-synchronizedStatementWithBlock :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.SynchronizedStatement-synchronizedStatementWithBlock original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SynchronizedStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SynchronizedStatement"),- Core.projectionFieldName = (Core.Name "expression")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the expression field of hydra.java.syntax.SynchronizedStatement-synchronizedStatementWithExpression :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SynchronizedStatement-synchronizedStatementWithExpression original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.SynchronizedStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.SynchronizedStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.TextBlock wrapper-textBlock :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.TextBlock-textBlock x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.TextBlock"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TextBlock-textBlockTextBlock :: Typed.TypedName Syntax.TextBlock-textBlockTextBlock = Typed.TypedName (Core.Name "hydra.java.syntax.TextBlock")---- | DSL constructor for the hydra.java.syntax.ThrowStatement wrapper-throwStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ThrowStatement-throwStatement x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.ThrowStatement"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.ThrowStatement-throwStatementThrowStatement :: Typed.TypedName Syntax.ThrowStatement-throwStatementThrowStatement = Typed.TypedName (Core.Name "hydra.java.syntax.ThrowStatement")---- | DSL constructor for the hydra.java.syntax.Throws wrapper-throws :: Typed.TypedTerm [Syntax.ExceptionType] -> Typed.TypedTerm Syntax.Throws-throws x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.Throws"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.Throws-throwsThrows :: Typed.TypedName Syntax.Throws-throwsThrows = Typed.TypedName (Core.Name "hydra.java.syntax.Throws")---- | DSL injection for the class variant of hydra.java.syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationClass x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "class"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the interface variant of hydra.java.syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "interface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the none variant of hydra.java.syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationNone :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationNone =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "none"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationTopLevelClassOrInterfaceDeclaration :: Typed.TypedName Syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationTopLevelClassOrInterfaceDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration")---- | DSL constructor for hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithComments :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithComments value comments =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm value)},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Typed.unTypedTerm comments)}]}))---- | DSL accessor for the comments field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsComments :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm (Maybe String)-topLevelClassOrInterfaceDeclarationWithCommentsComments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "comments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsTopLevelClassOrInterfaceDeclarationWithComments :: Typed.TypedName Syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsTopLevelClassOrInterfaceDeclarationWithComments =- Typed.TypedName (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments")---- | DSL accessor for the value field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsValue :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration-topLevelClassOrInterfaceDeclarationWithCommentsValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the comments field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsWithComments :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsWithComments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "value")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the value field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsWithValue :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments-topLevelClassOrInterfaceDeclarationWithCommentsWithValue original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "value"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "comments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),- Core.projectionFieldName = (Core.Name "comments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the simple variant of hydra.java.syntax.TryStatement-tryStatementSimple :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.TryStatement-tryStatementSimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TryStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.TryStatement-tryStatementTryStatement :: Typed.TypedName Syntax.TryStatement-tryStatementTryStatement = Typed.TypedName (Core.Name "hydra.java.syntax.TryStatement")---- | DSL injection for the withFinally variant of hydra.java.syntax.TryStatement-tryStatementWithFinally :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.TryStatement-tryStatementWithFinally x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TryStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "withFinally"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the withResources variant of hydra.java.syntax.TryStatement-tryStatementWithResources :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.TryStatement-tryStatementWithResources x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TryStatement"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "withResources"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.TryStatement_Simple-tryStatement_Simple :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.Catches -> Typed.TypedTerm Syntax.TryStatement_Simple-tryStatement_Simple block catches =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryStatement_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm block)},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Typed.unTypedTerm catches)}]}))---- | DSL accessor for the block field of hydra.java.syntax.TryStatement_Simple-tryStatement_SimpleBlock :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Block-tryStatement_SimpleBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_Simple"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the catches field of hydra.java.syntax.TryStatement_Simple-tryStatement_SimpleCatches :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Catches-tryStatement_SimpleCatches x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_Simple"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TryStatement_Simple-tryStatement_SimpleTryStatement_Simple :: Typed.TypedName Syntax.TryStatement_Simple-tryStatement_SimpleTryStatement_Simple = Typed.TypedName (Core.Name "hydra.java.syntax.TryStatement_Simple")---- | DSL updater for the block field of hydra.java.syntax.TryStatement_Simple-tryStatement_SimpleWithBlock :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.TryStatement_Simple-tryStatement_SimpleWithBlock original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryStatement_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_Simple"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the catches field of hydra.java.syntax.TryStatement_Simple-tryStatement_SimpleWithCatches :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Catches -> Typed.TypedTerm Syntax.TryStatement_Simple-tryStatement_SimpleWithCatches original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryStatement_Simple"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_Simple"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinally :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm Syntax.Finally -> Typed.TypedTerm Syntax.TryStatement_WithFinally-tryStatement_WithFinally block catches finally =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm block)},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Typed.unTypedTerm catches)},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Typed.unTypedTerm finally)}]}))---- | DSL accessor for the block field of hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinallyBlock :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Block-tryStatement_WithFinallyBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the catches field of hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinallyCatches :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm (Maybe Syntax.Catches)-tryStatement_WithFinallyCatches x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the finally field of hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinallyFinally :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Finally-tryStatement_WithFinallyFinally x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "finally")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinallyTryStatement_WithFinally :: Typed.TypedName Syntax.TryStatement_WithFinally-tryStatement_WithFinallyTryStatement_WithFinally =- Typed.TypedName (Core.Name "hydra.java.syntax.TryStatement_WithFinally")---- | DSL updater for the block field of hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinallyWithBlock :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.TryStatement_WithFinally-tryStatement_WithFinallyWithBlock original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "finally")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the catches field of hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinallyWithCatches :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm Syntax.TryStatement_WithFinally-tryStatement_WithFinallyWithCatches original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "finally")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the finally field of hydra.java.syntax.TryStatement_WithFinally-tryStatement_WithFinallyWithFinally :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Finally -> Typed.TypedTerm Syntax.TryStatement_WithFinally-tryStatement_WithFinallyWithFinally original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryStatement_WithFinally"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatement :: Typed.TypedTerm Syntax.ResourceSpecification -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm (Maybe Syntax.Finally) -> Typed.TypedTerm Syntax.TryWithResourcesStatement-tryWithResourcesStatement resourceSpecification block catches finally =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "resourceSpecification"),- Core.fieldTerm = (Typed.unTypedTerm resourceSpecification)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm block)},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Typed.unTypedTerm catches)},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Typed.unTypedTerm finally)}]}))---- | DSL accessor for the block field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementBlock :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.Block-tryWithResourcesStatementBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the catches field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementCatches :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Catches)-tryWithResourcesStatementCatches x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the finally field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementFinally :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Finally)-tryWithResourcesStatementFinally x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "finally")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the resourceSpecification field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementResourceSpecification :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.ResourceSpecification-tryWithResourcesStatementResourceSpecification x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "resourceSpecification")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementTryWithResourcesStatement :: Typed.TypedName Syntax.TryWithResourcesStatement-tryWithResourcesStatementTryWithResourcesStatement =- Typed.TypedName (Core.Name "hydra.java.syntax.TryWithResourcesStatement")---- | DSL updater for the block field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementWithBlock :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.TryWithResourcesStatement-tryWithResourcesStatementWithBlock original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "resourceSpecification"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "resourceSpecification")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "finally")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the catches field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementWithCatches :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm Syntax.TryWithResourcesStatement-tryWithResourcesStatementWithCatches original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "resourceSpecification"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "resourceSpecification")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "finally")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the finally field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementWithFinally :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Finally) -> Typed.TypedTerm Syntax.TryWithResourcesStatement-tryWithResourcesStatementWithFinally original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "resourceSpecification"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "resourceSpecification")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the resourceSpecification field of hydra.java.syntax.TryWithResourcesStatement-tryWithResourcesStatementWithResourceSpecification :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.ResourceSpecification -> Typed.TypedTerm Syntax.TryWithResourcesStatement-tryWithResourcesStatementWithResourceSpecification original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "resourceSpecification"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "block"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "block")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "catches"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "catches")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "finally"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TryWithResourcesStatement"),- Core.projectionFieldName = (Core.Name "finally")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the reference variant of hydra.java.syntax.TypeArgument-typeArgumentReference :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.TypeArgument-typeArgumentReference x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeArgument"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "reference"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.TypeArgument-typeArgumentTypeArgument :: Typed.TypedName Syntax.TypeArgument-typeArgumentTypeArgument = Typed.TypedName (Core.Name "hydra.java.syntax.TypeArgument")---- | DSL injection for the wildcard variant of hydra.java.syntax.TypeArgument-typeArgumentWildcard :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm Syntax.TypeArgument-typeArgumentWildcard x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeArgument"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "wildcard"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the arguments variant of hydra.java.syntax.TypeArgumentsOrDiamond-typeArgumentsOrDiamondArguments :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.TypeArgumentsOrDiamond-typeArgumentsOrDiamondArguments x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeArgumentsOrDiamond"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the diamond variant of hydra.java.syntax.TypeArgumentsOrDiamond-typeArgumentsOrDiamondDiamond :: Typed.TypedTerm Syntax.TypeArgumentsOrDiamond-typeArgumentsOrDiamondDiamond =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeArgumentsOrDiamond"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "diamond"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.TypeArgumentsOrDiamond-typeArgumentsOrDiamondTypeArgumentsOrDiamond :: Typed.TypedName Syntax.TypeArgumentsOrDiamond-typeArgumentsOrDiamondTypeArgumentsOrDiamond = Typed.TypedName (Core.Name "hydra.java.syntax.TypeArgumentsOrDiamond")---- | DSL injection for the classOrInterface variant of hydra.java.syntax.TypeBound-typeBoundClassOrInterface :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm Syntax.TypeBound-typeBoundClassOrInterface x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeBound"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.TypeBound-typeBoundTypeBound :: Typed.TypedName Syntax.TypeBound-typeBoundTypeBound = Typed.TypedName (Core.Name "hydra.java.syntax.TypeBound")---- | DSL injection for the variable variant of hydra.java.syntax.TypeBound-typeBoundVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.TypeBound-typeBoundVariable x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeBound"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "variable"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.java.syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterface type_ additional =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "additional"),- Core.fieldTerm = (Typed.unTypedTerm additional)}]}))---- | DSL accessor for the additional field of hydra.java.syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceAdditional :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm [Syntax.AdditionalBound]-typeBound_ClassOrInterfaceAdditional x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "additional")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceType :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType-typeBound_ClassOrInterfaceType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceTypeBound_ClassOrInterface :: Typed.TypedName Syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceTypeBound_ClassOrInterface =- Typed.TypedName (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface")---- | DSL updater for the additional field of hydra.java.syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceWithAdditional :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceWithAdditional original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "additional"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the type field of hydra.java.syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceWithType :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.TypeBound_ClassOrInterface-typeBound_ClassOrInterfaceWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "additional"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),- Core.projectionFieldName = (Core.Name "additional")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.TypeIdentifier wrapper-typeIdentifier :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.TypeIdentifier-typeIdentifier x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.TypeIdentifier"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypeIdentifier-typeIdentifierTypeIdentifier :: Typed.TypedName Syntax.TypeIdentifier-typeIdentifierTypeIdentifier = Typed.TypedName (Core.Name "hydra.java.syntax.TypeIdentifier")---- | DSL constructor for the hydra.java.syntax.TypeImportOnDemandDeclaration wrapper-typeImportOnDemandDeclaration :: Typed.TypedTerm Syntax.PackageOrTypeName -> Typed.TypedTerm Syntax.TypeImportOnDemandDeclaration-typeImportOnDemandDeclaration x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.TypeImportOnDemandDeclaration"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypeImportOnDemandDeclaration-typeImportOnDemandDeclarationTypeImportOnDemandDeclaration :: Typed.TypedName Syntax.TypeImportOnDemandDeclaration-typeImportOnDemandDeclarationTypeImportOnDemandDeclaration =- Typed.TypedName (Core.Name "hydra.java.syntax.TypeImportOnDemandDeclaration")---- | DSL constructor for hydra.java.syntax.TypeName-typeName :: Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm (Maybe Syntax.PackageOrTypeName) -> Typed.TypedTerm Syntax.TypeName-typeName identifier qualifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm qualifier)}]}))---- | DSL injection for the array variant of hydra.java.syntax.TypeNameArray-typeNameArrayArray :: Typed.TypedTerm Syntax.TypeNameArray -> Typed.TypedTerm Syntax.TypeNameArray-typeNameArrayArray x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeNameArray"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "array"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the simple variant of hydra.java.syntax.TypeNameArray-typeNameArraySimple :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.TypeNameArray-typeNameArraySimple x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.TypeNameArray"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "simple"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.TypeNameArray-typeNameArrayTypeNameArray :: Typed.TypedName Syntax.TypeNameArray-typeNameArrayTypeNameArray = Typed.TypedName (Core.Name "hydra.java.syntax.TypeNameArray")---- | DSL accessor for the identifier field of hydra.java.syntax.TypeName-typeNameIdentifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.TypeIdentifier-typeNameIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeName"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qualifier field of hydra.java.syntax.TypeName-typeNameQualifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm (Maybe Syntax.PackageOrTypeName)-typeNameQualifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeName"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypeName-typeNameTypeName :: Typed.TypedName Syntax.TypeName-typeNameTypeName = Typed.TypedName (Core.Name "hydra.java.syntax.TypeName")---- | DSL updater for the identifier field of hydra.java.syntax.TypeName-typeNameWithIdentifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeName-typeNameWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeName"),- Core.projectionFieldName = (Core.Name "qualifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the qualifier field of hydra.java.syntax.TypeName-typeNameWithQualifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm (Maybe Syntax.PackageOrTypeName) -> Typed.TypedTerm Syntax.TypeName-typeNameWithQualifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeName"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeName"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "qualifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.java.syntax.TypeParameter-typeParameter :: Typed.TypedTerm [Syntax.TypeParameterModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm (Maybe Syntax.TypeBound) -> Typed.TypedTerm Syntax.TypeParameter-typeParameter modifiers identifier bound =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "bound"),- Core.fieldTerm = (Typed.unTypedTerm bound)}]}))---- | DSL accessor for the bound field of hydra.java.syntax.TypeParameter-typeParameterBound :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm (Maybe Syntax.TypeBound)-typeParameterBound x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "bound")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.TypeParameter-typeParameterIdentifier :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm Syntax.TypeIdentifier-typeParameterIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for the hydra.java.syntax.TypeParameterModifier wrapper-typeParameterModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.TypeParameterModifier-typeParameterModifier x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.TypeParameterModifier"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypeParameterModifier-typeParameterModifierTypeParameterModifier :: Typed.TypedName Syntax.TypeParameterModifier-typeParameterModifierTypeParameterModifier = Typed.TypedName (Core.Name "hydra.java.syntax.TypeParameterModifier")---- | DSL accessor for the modifiers field of hydra.java.syntax.TypeParameter-typeParameterModifiers :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm [Syntax.TypeParameterModifier]-typeParameterModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypeParameter-typeParameterTypeParameter :: Typed.TypedName Syntax.TypeParameter-typeParameterTypeParameter = Typed.TypedName (Core.Name "hydra.java.syntax.TypeParameter")---- | DSL updater for the bound field of hydra.java.syntax.TypeParameter-typeParameterWithBound :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm (Maybe Syntax.TypeBound) -> Typed.TypedTerm Syntax.TypeParameter-typeParameterWithBound original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "bound"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.TypeParameter-typeParameterWithIdentifier :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeParameter-typeParameterWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "bound"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "bound")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.TypeParameter-typeParameterWithModifiers :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm [Syntax.TypeParameterModifier] -> Typed.TypedTerm Syntax.TypeParameter-typeParameterWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "bound"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeParameter"),- Core.projectionFieldName = (Core.Name "bound")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.java.syntax.TypePattern wrapper-typePattern :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.TypePattern-typePattern x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.TypePattern"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypePattern-typePatternTypePattern :: Typed.TypedName Syntax.TypePattern-typePatternTypePattern = Typed.TypedName (Core.Name "hydra.java.syntax.TypePattern")---- | DSL injection for the primitive variant of hydra.java.syntax.Type-typePrimitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.Type-typePrimitive x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Type"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "primitive"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the reference variant of hydra.java.syntax.Type-typeReference :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.Type-typeReference x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.Type"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "reference"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.Type-typeType :: Typed.TypedName Syntax.Type-typeType = Typed.TypedName (Core.Name "hydra.java.syntax.Type")---- | DSL constructor for hydra.java.syntax.TypeVariable-typeVariable :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeVariable-typeVariable annotations identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeVariable"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.TypeVariable-typeVariableAnnotations :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm [Syntax.Annotation]-typeVariableAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeVariable"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.TypeVariable-typeVariableIdentifier :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.TypeIdentifier-typeVariableIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeVariable"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.TypeVariable-typeVariableTypeVariable :: Typed.TypedName Syntax.TypeVariable-typeVariableTypeVariable = Typed.TypedName (Core.Name "hydra.java.syntax.TypeVariable")---- | DSL updater for the annotations field of hydra.java.syntax.TypeVariable-typeVariableWithAnnotations :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.TypeVariable-typeVariableWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeVariable"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeVariable"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.TypeVariable-typeVariableWithIdentifier :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeVariable-typeVariableWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.TypeVariable"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.TypeVariable"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL accessor for the body of hydra.java.syntax.AdditionalBound-unAdditionalBound :: Typed.TypedTerm Syntax.AdditionalBound -> Typed.TypedTerm Syntax.InterfaceType-unAdditionalBound x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.AdditionalBound")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.AmbiguousName-unAmbiguousName :: Typed.TypedTerm Syntax.AmbiguousName -> Typed.TypedTerm [Syntax.Identifier]-unAmbiguousName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.AmbiguousName")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.AndExpression-unAndExpression :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm [Syntax.EqualityExpression]-unAndExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.AndExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.AnnotationInterfaceBody-unAnnotationInterfaceBody :: Typed.TypedTerm Syntax.AnnotationInterfaceBody -> Typed.TypedTerm [Syntax.AnnotationInterfaceMemberDeclaration]-unAnnotationInterfaceBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.AnnotationInterfaceBody")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ArrayInitializer-unArrayInitializer :: Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm [[Syntax.VariableInitializer]]-unArrayInitializer x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ArrayInitializer")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.Block-unBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm [Syntax.BlockStatement]-unBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.Block")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.BreakStatement-unBreakStatement :: Typed.TypedTerm Syntax.BreakStatement -> Typed.TypedTerm (Maybe Syntax.Identifier)-unBreakStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.BreakStatement")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.CaseConstant-unCaseConstant :: Typed.TypedTerm Syntax.CaseConstant -> Typed.TypedTerm Syntax.ConditionalExpression-unCaseConstant x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.CaseConstant")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.Catches-unCatches :: Typed.TypedTerm Syntax.Catches -> Typed.TypedTerm [Syntax.CatchClause]-unCatches x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.Catches")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ClassBody-unClassBody :: Typed.TypedTerm Syntax.ClassBody -> Typed.TypedTerm [Syntax.ClassBodyDeclarationWithComments]-unClassBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ClassBody")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ConditionalAndExpression-unConditionalAndExpression :: Typed.TypedTerm Syntax.ConditionalAndExpression -> Typed.TypedTerm [Syntax.InclusiveOrExpression]-unConditionalAndExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ConditionalAndExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ConditionalOrExpression-unConditionalOrExpression :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm [Syntax.ConditionalAndExpression]-unConditionalOrExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ConditionalOrExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ConstantExpression-unConstantExpression :: Typed.TypedTerm Syntax.ConstantExpression -> Typed.TypedTerm Syntax.Expression-unConstantExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ConstantExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ContinueStatement-unContinueStatement :: Typed.TypedTerm Syntax.ContinueStatement -> Typed.TypedTerm (Maybe Syntax.Identifier)-unContinueStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ContinueStatement")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.DefaultValue-unDefaultValue :: Typed.TypedTerm Syntax.DefaultValue -> Typed.TypedTerm Syntax.ElementValue-unDefaultValue x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.DefaultValue")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.Dims-unDims :: Typed.TypedTerm Syntax.Dims -> Typed.TypedTerm [[Syntax.Annotation]]-unDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.Dims")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ElementValueArrayInitializer-unElementValueArrayInitializer :: Typed.TypedTerm Syntax.ElementValueArrayInitializer -> Typed.TypedTerm [Syntax.ElementValue]-unElementValueArrayInitializer x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ElementValueArrayInitializer")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.EnumBody-unEnumBody :: Typed.TypedTerm Syntax.EnumBody -> Typed.TypedTerm [Syntax.EnumBody_Element]-unEnumBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.EnumBody")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.EnumConstantModifier-unEnumConstantModifier :: Typed.TypedTerm Syntax.EnumConstantModifier -> Typed.TypedTerm Syntax.Annotation-unEnumConstantModifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.EnumConstantModifier")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ExclusiveOrExpression-unExclusiveOrExpression :: Typed.TypedTerm Syntax.ExclusiveOrExpression -> Typed.TypedTerm [Syntax.AndExpression]-unExclusiveOrExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ExclusiveOrExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ExpressionStatement-unExpressionStatement :: Typed.TypedTerm Syntax.ExpressionStatement -> Typed.TypedTerm Syntax.StatementExpression-unExpressionStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ExpressionStatement")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.Finally-unFinally :: Typed.TypedTerm Syntax.Finally -> Typed.TypedTerm Syntax.Block-unFinally x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.Finally")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.FloatingPointLiteral-unFloatingPointLiteral :: Typed.TypedTerm Syntax.FloatingPointLiteral -> Typed.TypedTerm Double-unFloatingPointLiteral x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.FloatingPointLiteral")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ForUpdate-unForUpdate :: Typed.TypedTerm Syntax.ForUpdate -> Typed.TypedTerm [Syntax.StatementExpression]-unForUpdate x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ForUpdate")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.Guard-unGuard :: Typed.TypedTerm Syntax.Guard -> Typed.TypedTerm Syntax.Expression-unGuard x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.Guard")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.Identifier-unIdentifier :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm String-unIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.Identifier")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.InclusiveOrExpression-unInclusiveOrExpression :: Typed.TypedTerm Syntax.InclusiveOrExpression -> Typed.TypedTerm [Syntax.ExclusiveOrExpression]-unInclusiveOrExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.InclusiveOrExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.InstanceInitializer-unInstanceInitializer :: Typed.TypedTerm Syntax.InstanceInitializer -> Typed.TypedTerm Syntax.Block-unInstanceInitializer x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.InstanceInitializer")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.IntegerLiteral-unIntegerLiteral :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Integer-unIntegerLiteral x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.IntegerLiteral")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.InterfaceBody-unInterfaceBody :: Typed.TypedTerm Syntax.InterfaceBody -> Typed.TypedTerm [Syntax.InterfaceMemberDeclarationWithComments]-unInterfaceBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.InterfaceBody")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.InterfaceType-unInterfaceType :: Typed.TypedTerm Syntax.InterfaceType -> Typed.TypedTerm Syntax.ClassType-unInterfaceType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.InterfaceType")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.LocalVariableDeclarationStatement-unLocalVariableDeclarationStatement :: Typed.TypedTerm Syntax.LocalVariableDeclarationStatement -> Typed.TypedTerm Syntax.LocalVariableDeclaration-unLocalVariableDeclarationStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.LocalVariableDeclarationStatement")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.MarkerAnnotation-unMarkerAnnotation :: Typed.TypedTerm Syntax.MarkerAnnotation -> Typed.TypedTerm Syntax.TypeName-unMarkerAnnotation x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.MarkerAnnotation")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.MethodName-unMethodName :: Typed.TypedTerm Syntax.MethodName -> Typed.TypedTerm Syntax.Identifier-unMethodName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.MethodName")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.MethodReference_Array-unMethodReference_Array :: Typed.TypedTerm Syntax.MethodReference_Array -> Typed.TypedTerm Syntax.ArrayType-unMethodReference_Array x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.MethodReference_Array")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.PackageModifier-unPackageModifier :: Typed.TypedTerm Syntax.PackageModifier -> Typed.TypedTerm Syntax.Annotation-unPackageModifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.PackageModifier")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.PackageName-unPackageName :: Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm [Syntax.Identifier]-unPackageName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.PackageName")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.PackageOrTypeName-unPackageOrTypeName :: Typed.TypedTerm Syntax.PackageOrTypeName -> Typed.TypedTerm [Syntax.Identifier]-unPackageOrTypeName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.PackageOrTypeName")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.PostDecrementExpression-unPostDecrementExpression :: Typed.TypedTerm Syntax.PostDecrementExpression -> Typed.TypedTerm Syntax.PostfixExpression-unPostDecrementExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.PostDecrementExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.PostIncrementExpression-unPostIncrementExpression :: Typed.TypedTerm Syntax.PostIncrementExpression -> Typed.TypedTerm Syntax.PostfixExpression-unPostIncrementExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.PostIncrementExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.PreDecrementExpression-unPreDecrementExpression :: Typed.TypedTerm Syntax.PreDecrementExpression -> Typed.TypedTerm Syntax.UnaryExpression-unPreDecrementExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.PreDecrementExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.PreIncrementExpression-unPreIncrementExpression :: Typed.TypedTerm Syntax.PreIncrementExpression -> Typed.TypedTerm Syntax.UnaryExpression-unPreIncrementExpression x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.PreIncrementExpression")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.RecordBody-unRecordBody :: Typed.TypedTerm Syntax.RecordBody -> Typed.TypedTerm [Syntax.RecordBodyDeclaration]-unRecordBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.RecordBody")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.RecordComponentModifier-unRecordComponentModifier :: Typed.TypedTerm Syntax.RecordComponentModifier -> Typed.TypedTerm Syntax.Annotation-unRecordComponentModifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.RecordComponentModifier")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.RecordHeader-unRecordHeader :: Typed.TypedTerm Syntax.RecordHeader -> Typed.TypedTerm [Syntax.RecordComponent]-unRecordHeader x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.RecordHeader")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ResourceSpecification-unResourceSpecification :: Typed.TypedTerm Syntax.ResourceSpecification -> Typed.TypedTerm [Syntax.Resource]-unResourceSpecification x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ResourceSpecification")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ReturnStatement-unReturnStatement :: Typed.TypedTerm Syntax.ReturnStatement -> Typed.TypedTerm (Maybe Syntax.Expression)-unReturnStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ReturnStatement")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.SimpleTypeName-unSimpleTypeName :: Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.TypeIdentifier-unSimpleTypeName x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.SimpleTypeName")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.SingleTypeImportDeclaration-unSingleTypeImportDeclaration :: Typed.TypedTerm Syntax.SingleTypeImportDeclaration -> Typed.TypedTerm Syntax.TypeName-unSingleTypeImportDeclaration x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.SingleTypeImportDeclaration")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.StaticImportOnDemandDeclaration-unStaticImportOnDemandDeclaration :: Typed.TypedTerm Syntax.StaticImportOnDemandDeclaration -> Typed.TypedTerm Syntax.TypeName-unStaticImportOnDemandDeclaration x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.StaticImportOnDemandDeclaration")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.StaticInitializer-unStaticInitializer :: Typed.TypedTerm Syntax.StaticInitializer -> Typed.TypedTerm Syntax.Block-unStaticInitializer x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.StaticInitializer")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.StringLiteral-unStringLiteral :: Typed.TypedTerm Syntax.StringLiteral -> Typed.TypedTerm String-unStringLiteral x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.StringLiteral")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.TextBlock-unTextBlock :: Typed.TypedTerm Syntax.TextBlock -> Typed.TypedTerm String-unTextBlock x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.TextBlock")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.ThrowStatement-unThrowStatement :: Typed.TypedTerm Syntax.ThrowStatement -> Typed.TypedTerm Syntax.Expression-unThrowStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.ThrowStatement")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.Throws-unThrows :: Typed.TypedTerm Syntax.Throws -> Typed.TypedTerm [Syntax.ExceptionType]-unThrows x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.Throws")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.TypeIdentifier-unTypeIdentifier :: Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.Identifier-unTypeIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.TypeIdentifier")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.TypeImportOnDemandDeclaration-unTypeImportOnDemandDeclaration :: Typed.TypedTerm Syntax.TypeImportOnDemandDeclaration -> Typed.TypedTerm Syntax.PackageOrTypeName-unTypeImportOnDemandDeclaration x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.TypeImportOnDemandDeclaration")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.TypeParameterModifier-unTypeParameterModifier :: Typed.TypedTerm Syntax.TypeParameterModifier -> Typed.TypedTerm Syntax.Annotation-unTypeParameterModifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.TypeParameterModifier")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.TypePattern-unTypePattern :: Typed.TypedTerm Syntax.TypePattern -> Typed.TypedTerm Syntax.LocalVariableDeclaration-unTypePattern x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.TypePattern")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.UnannClassType-unUnannClassType :: Typed.TypedTerm Syntax.UnannClassType -> Typed.TypedTerm Syntax.ClassType-unUnannClassType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.UnannClassType")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.UnannType-unUnannType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Type-unUnannType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.UnannType")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.java.syntax.YieldStatement-unYieldStatement :: Typed.TypedTerm Syntax.YieldStatement -> Typed.TypedTerm Syntax.Expression-unYieldStatement x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.java.syntax.YieldStatement")),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for the hydra.java.syntax.UnannClassType wrapper-unannClassType :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.UnannClassType-unannClassType x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.UnannClassType"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.UnannClassType-unannClassTypeUnannClassType :: Typed.TypedName Syntax.UnannClassType-unannClassTypeUnannClassType = Typed.TypedName (Core.Name "hydra.java.syntax.UnannClassType")---- | DSL constructor for the hydra.java.syntax.UnannType wrapper-unannType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.UnannType-unannType x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.UnannType"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.UnannType-unannTypeUnannType :: Typed.TypedName Syntax.UnannType-unannTypeUnannType = Typed.TypedName (Core.Name "hydra.java.syntax.UnannType")---- | DSL injection for the minus variant of hydra.java.syntax.UnaryExpression-unaryExpressionMinus :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpression-unaryExpressionMinus x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "minus"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the cast variant of hydra.java.syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusCast :: Typed.TypedTerm Syntax.CastExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusCast x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "cast"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the not variant of hydra.java.syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusNot :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusNot x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "not"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the postfix variant of hydra.java.syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusPostfix :: Typed.TypedTerm Syntax.PostfixExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusPostfix x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "postfix"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the switchExpression variant of hydra.java.syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusSwitchExpression :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusSwitchExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "switchExpression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the tilde variant of hydra.java.syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusTilde :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusTilde x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "tilde"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusUnaryExpressionNotPlusMinus :: Typed.TypedName Syntax.UnaryExpressionNotPlusMinus-unaryExpressionNotPlusMinusUnaryExpressionNotPlusMinus =- Typed.TypedName (Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus")---- | DSL injection for the other variant of hydra.java.syntax.UnaryExpression-unaryExpressionOther :: Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus -> Typed.TypedTerm Syntax.UnaryExpression-unaryExpressionOther x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "other"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the plus variant of hydra.java.syntax.UnaryExpression-unaryExpressionPlus :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpression-unaryExpressionPlus x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "plus"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the preDecrement variant of hydra.java.syntax.UnaryExpression-unaryExpressionPreDecrement :: Typed.TypedTerm Syntax.PreDecrementExpression -> Typed.TypedTerm Syntax.UnaryExpression-unaryExpressionPreDecrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "preDecrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the preIncrement variant of hydra.java.syntax.UnaryExpression-unaryExpressionPreIncrement :: Typed.TypedTerm Syntax.PreIncrementExpression -> Typed.TypedTerm Syntax.UnaryExpression-unaryExpressionPreIncrement x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.UnaryExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "preIncrement"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.UnaryExpression-unaryExpressionUnaryExpression :: Typed.TypedName Syntax.UnaryExpression-unaryExpressionUnaryExpression = Typed.TypedName (Core.Name "hydra.java.syntax.UnaryExpression")---- | DSL constructor for hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpression :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpression typeArguments classOrInterface arguments body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm typeArguments)},- Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm classOrInterface)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm arguments)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the arguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.Expression]-unqualifiedClassInstanceCreationExpressionArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionBody :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassBody)-unqualifiedClassInstanceCreationExpressionBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the classOrInterface field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionClassOrInterface :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate-unqualifiedClassInstanceCreationExpressionClassOrInterface x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "classOrInterface")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typeArguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionTypeArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.TypeArgument]-unqualifiedClassInstanceCreationExpressionTypeArguments x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionUnqualifiedClassInstanceCreationExpression :: Typed.TypedName Syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionUnqualifiedClassInstanceCreationExpression =- Typed.TypedName (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression")---- | DSL updater for the arguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "classOrInterface")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the body field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithBody :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "classOrInterface")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the classOrInterface field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithClassOrInterface :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithClassOrInterface original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "typeArguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typeArguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithTypeArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression-unqualifiedClassInstanceCreationExpressionWithTypeArguments original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "typeArguments"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "classOrInterface"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "classOrInterface")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "arguments"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "arguments")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the expressionName variant of hydra.java.syntax.VariableAccess-variableAccessExpressionName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.VariableAccess-variableAccessExpressionName x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.VariableAccess"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expressionName"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the fieldAccess variant of hydra.java.syntax.VariableAccess-variableAccessFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.VariableAccess-variableAccessFieldAccess x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.VariableAccess"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "fieldAccess"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.VariableAccess-variableAccessVariableAccess :: Typed.TypedName Syntax.VariableAccess-variableAccessVariableAccess = Typed.TypedName (Core.Name "hydra.java.syntax.VariableAccess")---- | DSL constructor for hydra.java.syntax.VariableArityParameter-variableArityParameter :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityParameter-variableArityParameter modifiers type_ annotations identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.VariableArityParameter-variableArityParameterAnnotations :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.Annotation]-variableArityParameterAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.VariableArityParameter-variableArityParameterIdentifier :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.Identifier-variableArityParameterIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.VariableArityParameter-variableArityParameterModifiers :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.VariableModifier]-variableArityParameterModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.VariableArityParameter-variableArityParameterType :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.UnannType-variableArityParameterType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.VariableArityParameter-variableArityParameterVariableArityParameter :: Typed.TypedName Syntax.VariableArityParameter-variableArityParameterVariableArityParameter = Typed.TypedName (Core.Name "hydra.java.syntax.VariableArityParameter")---- | DSL updater for the annotations field of hydra.java.syntax.VariableArityParameter-variableArityParameterWithAnnotations :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.VariableArityParameter-variableArityParameterWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.VariableArityParameter-variableArityParameterWithIdentifier :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityParameter-variableArityParameterWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.VariableArityParameter-variableArityParameterWithModifiers :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.VariableArityParameter-variableArityParameterWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.VariableArityParameter-variableArityParameterWithType :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.VariableArityParameter-variableArityParameterWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityParameter"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponent :: Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityRecordComponent-variableArityRecordComponent modifiers type_ annotations identifier =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm modifiers)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm type_)},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentAnnotations :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.Annotation]-variableArityRecordComponentAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentIdentifier :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.Identifier-variableArityRecordComponentIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the modifiers field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentModifiers :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.RecordComponentModifier]-variableArityRecordComponentModifiers x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the type field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentType :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.UnannType-variableArityRecordComponentType x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentVariableArityRecordComponent :: Typed.TypedName Syntax.VariableArityRecordComponent-variableArityRecordComponentVariableArityRecordComponent =- Typed.TypedName (Core.Name "hydra.java.syntax.VariableArityRecordComponent")---- | DSL updater for the annotations field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentWithAnnotations :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.VariableArityRecordComponent-variableArityRecordComponentWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the identifier field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentWithIdentifier :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityRecordComponent-variableArityRecordComponentWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the modifiers field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentWithModifiers :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.VariableArityRecordComponent-variableArityRecordComponentWithModifiers original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "type")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the type field of hydra.java.syntax.VariableArityRecordComponent-variableArityRecordComponentWithType :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.VariableArityRecordComponent-variableArityRecordComponentWithType original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "modifiers"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "modifiers")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "type"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableArityRecordComponent"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.VariableDeclarator-variableDeclarator :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm (Maybe Syntax.VariableInitializer) -> Typed.TypedTerm Syntax.VariableDeclarator-variableDeclarator id initializer =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm id)},- Core.Field {- Core.fieldName = (Core.Name "initializer"),- Core.fieldTerm = (Typed.unTypedTerm initializer)}]}))---- | DSL accessor for the id field of hydra.java.syntax.VariableDeclarator-variableDeclaratorId :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm Syntax.VariableDeclaratorId-variableDeclaratorId x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclarator"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.java.syntax.VariableDeclaratorId-variableDeclaratorId2 :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.VariableDeclaratorId-variableDeclaratorId2 identifier dims =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableDeclaratorId"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm identifier)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm dims)}]}))---- | DSL accessor for the dims field of hydra.java.syntax.VariableDeclaratorId-variableDeclaratorIdDims :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm (Maybe Syntax.Dims)-variableDeclaratorIdDims x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclaratorId"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the identifier field of hydra.java.syntax.VariableDeclaratorId-variableDeclaratorIdIdentifier :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.Identifier-variableDeclaratorIdIdentifier x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclaratorId"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.VariableDeclaratorId-variableDeclaratorIdVariableDeclaratorId :: Typed.TypedName Syntax.VariableDeclaratorId-variableDeclaratorIdVariableDeclaratorId = Typed.TypedName (Core.Name "hydra.java.syntax.VariableDeclaratorId")---- | DSL updater for the dims field of hydra.java.syntax.VariableDeclaratorId-variableDeclaratorIdWithDims :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.VariableDeclaratorId-variableDeclaratorIdWithDims original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableDeclaratorId"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclaratorId"),- Core.projectionFieldName = (Core.Name "identifier")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the identifier field of hydra.java.syntax.VariableDeclaratorId-variableDeclaratorIdWithIdentifier :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableDeclaratorId-variableDeclaratorIdWithIdentifier original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableDeclaratorId"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "identifier"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "dims"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclaratorId"),- Core.projectionFieldName = (Core.Name "dims")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL accessor for the initializer field of hydra.java.syntax.VariableDeclarator-variableDeclaratorInitializer :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm (Maybe Syntax.VariableInitializer)-variableDeclaratorInitializer x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclarator"),- Core.projectionFieldName = (Core.Name "initializer")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.VariableDeclarator-variableDeclaratorVariableDeclarator :: Typed.TypedName Syntax.VariableDeclarator-variableDeclaratorVariableDeclarator = Typed.TypedName (Core.Name "hydra.java.syntax.VariableDeclarator")---- | DSL updater for the id field of hydra.java.syntax.VariableDeclarator-variableDeclaratorWithId :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.VariableDeclarator-variableDeclaratorWithId original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "initializer"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclarator"),- Core.projectionFieldName = (Core.Name "initializer")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the initializer field of hydra.java.syntax.VariableDeclarator-variableDeclaratorWithInitializer :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm (Maybe Syntax.VariableInitializer) -> Typed.TypedTerm Syntax.VariableDeclarator-variableDeclaratorWithInitializer original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.VariableDeclarator"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "id"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.VariableDeclarator"),- Core.projectionFieldName = (Core.Name "id")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "initializer"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the arrayInitializer variant of hydra.java.syntax.VariableInitializer-variableInitializerArrayInitializer :: Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.VariableInitializer-variableInitializerArrayInitializer x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.VariableInitializer"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "arrayInitializer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the expression variant of hydra.java.syntax.VariableInitializer-variableInitializerExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.VariableInitializer-variableInitializerExpression x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.VariableInitializer"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "expression"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.VariableInitializer-variableInitializerVariableInitializer :: Typed.TypedName Syntax.VariableInitializer-variableInitializerVariableInitializer = Typed.TypedName (Core.Name "hydra.java.syntax.VariableInitializer")---- | DSL injection for the annotation variant of hydra.java.syntax.VariableModifier-variableModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.VariableModifier-variableModifierAnnotation x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.VariableModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "annotation"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the final variant of hydra.java.syntax.VariableModifier-variableModifierFinal :: Typed.TypedTerm Syntax.VariableModifier-variableModifierFinal =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.VariableModifier"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "final"),- Core.fieldTerm = Core.TermUnit}}))---- | DSL name token for hydra.java.syntax.VariableModifier-variableModifierVariableModifier :: Typed.TypedName Syntax.VariableModifier-variableModifierVariableModifier = Typed.TypedName (Core.Name "hydra.java.syntax.VariableModifier")---- | DSL constructor for hydra.java.syntax.WhileStatement-whileStatement :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.WhileStatement-whileStatement cond body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.WhileStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.WhileStatement-whileStatementBody :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm Syntax.Statement-whileStatementBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.WhileStatement-whileStatementCond :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm (Maybe Syntax.Expression)-whileStatementCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.java.syntax.WhileStatementNoShortIf-whileStatementNoShortIf :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.WhileStatementNoShortIf-whileStatementNoShortIf cond body =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.WhileStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm cond)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.java.syntax.WhileStatementNoShortIf-whileStatementNoShortIfBody :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf-whileStatementNoShortIfBody x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.java.syntax.WhileStatementNoShortIf-whileStatementNoShortIfCond :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression)-whileStatementNoShortIfCond x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.WhileStatementNoShortIf-whileStatementNoShortIfWhileStatementNoShortIf :: Typed.TypedName Syntax.WhileStatementNoShortIf-whileStatementNoShortIfWhileStatementNoShortIf = Typed.TypedName (Core.Name "hydra.java.syntax.WhileStatementNoShortIf")---- | DSL updater for the body field of hydra.java.syntax.WhileStatementNoShortIf-whileStatementNoShortIfWithBody :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.WhileStatementNoShortIf-whileStatementNoShortIfWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.WhileStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.WhileStatementNoShortIf-whileStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.WhileStatementNoShortIf-whileStatementNoShortIfWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.WhileStatementNoShortIf"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatementNoShortIf"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL name token for hydra.java.syntax.WhileStatement-whileStatementWhileStatement :: Typed.TypedName Syntax.WhileStatement-whileStatementWhileStatement = Typed.TypedName (Core.Name "hydra.java.syntax.WhileStatement")---- | DSL updater for the body field of hydra.java.syntax.WhileStatement-whileStatementWithBody :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.WhileStatement-whileStatementWithBody original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.WhileStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatement"),- Core.projectionFieldName = (Core.Name "cond")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the cond field of hydra.java.syntax.WhileStatement-whileStatementWithCond :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.WhileStatement-whileStatementWithCond original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.WhileStatement"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "cond"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "body"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.WhileStatement"),- Core.projectionFieldName = (Core.Name "body")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.java.syntax.Wildcard-wildcard :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm (Maybe Syntax.WildcardBounds) -> Typed.TypedTerm Syntax.Wildcard-wildcard annotations wildcard =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Wildcard"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm annotations)},- Core.Field {- Core.fieldName = (Core.Name "wildcard"),- Core.fieldTerm = (Typed.unTypedTerm wildcard)}]}))---- | DSL accessor for the annotations field of hydra.java.syntax.Wildcard-wildcardAnnotations :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm [Syntax.Annotation]-wildcardAnnotations x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Wildcard"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL injection for the extends variant of hydra.java.syntax.WildcardBounds-wildcardBoundsExtends :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.WildcardBounds-wildcardBoundsExtends x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.WildcardBounds"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "extends"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the super variant of hydra.java.syntax.WildcardBounds-wildcardBoundsSuper :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.WildcardBounds-wildcardBoundsSuper x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.WildcardBounds"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "super"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL name token for hydra.java.syntax.WildcardBounds-wildcardBoundsWildcardBounds :: Typed.TypedName Syntax.WildcardBounds-wildcardBoundsWildcardBounds = Typed.TypedName (Core.Name "hydra.java.syntax.WildcardBounds")---- | DSL name token for hydra.java.syntax.Wildcard-wildcardWildcard :: Typed.TypedName Syntax.Wildcard-wildcardWildcard = Typed.TypedName (Core.Name "hydra.java.syntax.Wildcard")---- | DSL accessor for the wildcard field of hydra.java.syntax.Wildcard-wildcardWildcard2 :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm (Maybe Syntax.WildcardBounds)-wildcardWildcard2 x =- Typed.TypedTerm (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Wildcard"),- Core.projectionFieldName = (Core.Name "wildcard")})),- Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annotations field of hydra.java.syntax.Wildcard-wildcardWithAnnotations :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Wildcard-wildcardWithAnnotations original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Wildcard"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Typed.unTypedTerm newVal)},- Core.Field {- Core.fieldName = (Core.Name "wildcard"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Wildcard"),- Core.projectionFieldName = (Core.Name "wildcard")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the wildcard field of hydra.java.syntax.Wildcard-wildcardWithWildcard :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm (Maybe Syntax.WildcardBounds) -> Typed.TypedTerm Syntax.Wildcard-wildcardWithWildcard original newVal =- Typed.TypedTerm (Core.TermRecord (Core.Record {- Core.recordTypeName = (Core.Name "hydra.java.syntax.Wildcard"),- Core.recordFields = [- Core.Field {- Core.fieldName = (Core.Name "annotations"),- Core.fieldTerm = (Core.TermApplication (Core.Application {- Core.applicationFunction = (Core.TermProject (Core.Projection {- Core.projectionTypeName = (Core.Name "hydra.java.syntax.Wildcard"),- Core.projectionFieldName = (Core.Name "annotations")})),- Core.applicationArgument = (Typed.unTypedTerm original)}))},- Core.Field {- Core.fieldName = (Core.Name "wildcard"),- Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.java.syntax.YieldStatement wrapper-yieldStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.YieldStatement-yieldStatement x =- Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {- Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.YieldStatement"),- Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL name token for hydra.java.syntax.YieldStatement-yieldStatementYieldStatement :: Typed.TypedName Syntax.YieldStatement-yieldStatementYieldStatement = Typed.TypedName (Core.Name "hydra.java.syntax.YieldStatement")
− src/main/haskell/Hydra/Gradle.hs
@@ -1,54 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | Build configuration for Gradle-built distribution packages.--module Hydra.Gradle where--import qualified Hydra.Core as Core-import qualified Hydra.File as File-import qualified Hydra.Packaging as Packaging-import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void---- | Configuration for the Gradle antlr plugin's grammar generation (generateGrammarSource).-data AntlrConfig =- AntlrConfig {- -- | Arguments passed to the ANTLR tool, e.g. ["-visitor"] or ["-visitor", "-listener"]. Faithful to ANTLR's command-line interface; covers all ANTLR flags without enumerating them.- antlrConfigArguments :: [String],- -- | Directory into which ANTLR emits generated lexer/parser sources, relative to the package root (e.g. "build/generated-src/antlr/main"). The host also folds this into the main source set.- antlrConfigOutputDirectory :: File.FilePath}- deriving (Eq, Ord, Read, Show)--_AntlrConfig = Core.Name "hydra.gradle.AntlrConfig"--_AntlrConfig_arguments = Core.Name "arguments"--_AntlrConfig_outputDirectory = Core.Name "outputDirectory"---- | The build configuration for a single Gradle-built distribution package, beyond its generated sources.-data GradleBuildConfiguration =- GradleBuildConfiguration {- -- | Third-party (non-project) dependencies required by the package. Inter-package dependencies within the project are derived separately and are not listed here. Each dependency's scope (api/runtime/test/tool) is significant; its name carries the Maven group and artifact separated by a colon.- gradleBuildConfigurationDependencies :: [Packaging.PackageDependency],- -- | Source paths or patterns to exclude from compilation, relative to the package root.- gradleBuildConfigurationExcludes :: [String],- -- | Additional source directories to fold into the package's main source set, beyond the generated and overlaid sources (e.g. a directory of build-tool-generated sources).- gradleBuildConfigurationExtraSourceDirs :: [File.FilePath],- -- | Gradle plugin identifiers to apply to the build, e.g. "antlr". Applied in the given order.- gradleBuildConfigurationPlugins :: [String],- -- | ANTLR grammar-generation configuration, present when the package uses the antlr plugin. When given, the host emits the generateGrammarSource configuration and the compileJava-depends-on-generateGrammarSource ordering. Modeled as structured vocabulary rather than a raw Groovy fragment.- gradleBuildConfigurationAntlr :: (Maybe AntlrConfig)}- deriving (Eq, Ord, Read, Show)--_GradleBuildConfiguration = Core.Name "hydra.gradle.GradleBuildConfiguration"--_GradleBuildConfiguration_dependencies = Core.Name "dependencies"--_GradleBuildConfiguration_excludes = Core.Name "excludes"--_GradleBuildConfiguration_extraSourceDirs = Core.Name "extraSourceDirs"--_GradleBuildConfiguration_plugins = Core.Name "plugins"--_GradleBuildConfiguration_antlr = Core.Name "antlr"
src/main/haskell/Hydra/Java/Coder.hs view
@@ -4,3246 +4,3249 @@ module Hydra.Java.Coder where -import qualified Hydra.Analysis as Analysis-import qualified Hydra.Annotations as Annotations-import qualified Hydra.Arity as Arity-import qualified Hydra.Ast as Ast-import qualified Hydra.Checking as Checking-import qualified Hydra.Classes as Classes-import qualified Hydra.Coders as Coders-import qualified Hydra.Constants as Constants-import qualified Hydra.Core as Core-import qualified Hydra.Decode.Core as DecodeCore-import qualified Hydra.Dependencies as Dependencies-import qualified Hydra.Encode.Core as EncodeCore-import qualified Hydra.Environment as Environment-import qualified Hydra.Error.Checking as ErrorChecking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Errors as Errors-import qualified Hydra.File as File-import qualified Hydra.Formatting as Formatting-import qualified Hydra.Graph as Graph-import qualified Hydra.Inference as Inference-import qualified Hydra.Java.Environment as JavaEnvironment-import qualified Hydra.Java.Language as Language-import qualified Hydra.Java.Names as JavaNames-import qualified Hydra.Java.Serde as Serde-import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Java.Utils as Utils-import qualified Hydra.Json.Model as Model-import qualified Hydra.Lexical as Lexical-import qualified Hydra.Overlay.Haskell.Lib.Eithers as Eithers-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Literals as Literals-import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic-import qualified Hydra.Overlay.Haskell.Lib.Maps as Maps-import qualified Hydra.Overlay.Haskell.Lib.Math as Math-import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals-import qualified Hydra.Overlay.Haskell.Lib.Ordering as Ordering-import qualified Hydra.Overlay.Haskell.Lib.Pairs as Pairs-import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings-import qualified Hydra.Names as Names-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Predicates as Predicates-import qualified Hydra.Print.Core as PrintCore-import qualified Hydra.Query as Query-import qualified Hydra.Refs as Refs-import qualified Hydra.Relational as Relational-import qualified Hydra.Resolution as Resolution-import qualified Hydra.Rewriting as Rewriting-import qualified Hydra.Scoping as Scoping-import qualified Hydra.Serialization as Serialization-import qualified Hydra.Sorting as Sorting-import qualified Hydra.Strip as Strip-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variables as Variables-import qualified Hydra.Variants as Variants-import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void-import qualified Data.Map as M-import qualified Data.Set as S---- | Attach comments derived from a field's annotations to a class body declaration-addComment :: Syntax.ClassBodyDeclaration -> Core.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments-addComment decl field cx g =- Eithers.map (\c -> Syntax.ClassBodyDeclarationWithComments {- Syntax.classBodyDeclarationWithCommentsValue = decl,- Syntax.classBodyDeclarationWithCommentsComments = c}) (Annotations.commentsFromFieldType cx g field)--analyzeJavaFunction :: JavaEnvironment.JavaEnvironment -> Core.Term -> Typing.InferenceContext -> t0 -> Either t1 (Typing.FunctionStructure JavaEnvironment.JavaEnvironment)-analyzeJavaFunction env term cx g = Analysis.analyzeFunctionTerm cx javaEnvGetGraph javaEnvSetGraph env term--annotateBodyWithCod :: Core.Type -> Core.Term -> Core.Term-annotateBodyWithCod typ term =-- let setAnn = \t -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ typ)) t- in case (Strip.deannotateTerm term) of- Core.TermTypeApplication _ -> setAnn term- Core.TermApplication v0 ->- let lhs = Core.applicationFunction v0- rhs = Core.applicationArgument v0- annotatedRhs =- case (Strip.deannotateTerm rhs) of- Core.TermTypeApplication _ -> annotateBodyWithCod (extractArgType lhs typ) rhs- _ -> rhs- in (setAnn (Core.TermApplication (Core.Application {- Core.applicationFunction = lhs,- Core.applicationArgument = annotatedRhs})))- _ -> setAnn term--annotateLambdaArgs :: Core.Name -> [Core.Type] -> [Core.Term] -> t0 -> Graph.Graph -> Either t1 [Core.Term]-annotateLambdaArgs cname tApps argTerms cx g =- Logic.ifElse (Lists.isEmpty tApps) (Right argTerms) (Eithers.bind (Eithers.bind (Right (Lexical.lookupBinding g cname)) (\mel -> Optionals.match mel (Right (Optionals.map (\prim -> Scoping.termSignatureToTypeScheme (Packaging.primitiveDefinitionSignature (Graph.primitiveDefinition prim))) (Maps.lookup cname (Graph.graphPrimitives g)))) (\el -> Right (Core.bindingTypeScheme el)))) (\mts -> Optionals.match mts (Right argTerms) (\ts ->- let schemeType = Core.typeSchemeBody ts- schemeTypeVars = collectTypeVars schemeType- schemeVars = Lists.filter (\v -> Sets.member v schemeTypeVars) (Core.typeSchemeVariables ts)- in (Logic.ifElse (Logic.or (Lists.isEmpty schemeVars) (Logic.not (Equality.equal (Lists.length schemeVars) (Lists.length tApps)))) (Right argTerms) (- let subst = Maps.fromList (Lists.zip schemeVars tApps)- expectedTypes = peelExpectedTypes subst (Lists.length argTerms) schemeType- in (Right (Lists.zipWith (\arg -> \mExpected -> propagateType mExpected arg) argTerms (Lists.concat2 expectedTypes (Lists.replicate (Lists.length argTerms) (Core.TypeVariable (Core.Name "unused")))))))))))--applyCastIfSafe :: JavaEnvironment.Aliases -> Core.Type -> Syntax.Expression -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression-applyCastIfSafe aliases castType expr cx g =-- let trusted = JavaEnvironment.aliasesTrustedTypeVars aliases- inScope = JavaEnvironment.aliasesInScopeTypeParams aliases- castVars = collectTypeVars castType- javaTypeVars =- Sets.fromList (Lists.filter (\v -> Logic.or (Sets.member v inScope) (isLambdaBoundVariable v)) (Sets.toList castVars))- isSafe =- Logic.or (Sets.isEmpty trusted) (Logic.or (Sets.isEmpty javaTypeVars) (Sets.isEmpty (Sets.difference javaTypeVars trusted)))- in (Logic.ifElse isSafe (Eithers.bind (encodeType aliases Sets.empty castType cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression expr)))))) (Right expr))--applyJavaArg :: Syntax.Expression -> Syntax.Expression -> Syntax.Expression-applyJavaArg expr jarg =- Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Right (Utils.javaExpressionToJavaPrimary expr))) (Syntax.Identifier JavaNames.applyMethodName) [- jarg])--applyOvergenSubstToTermAnnotations :: M.Map Core.Name Core.Type -> Core.Term -> t0 -> Graph.Graph -> Either t1 Core.Term-applyOvergenSubstToTermAnnotations subst term0 cx g = Right (applyOvergenSubstToTermAnnotationsGo subst g term0)--applyOvergenSubstToTermAnnotationsGo :: M.Map Core.Name Core.Type -> Graph.Graph -> Core.Term -> Core.Term-applyOvergenSubstToTermAnnotationsGo subst cx term =- case term of- Core.TermAnnotated v0 ->- let inner = Core.annotatedTermBody v0- ann = Annotations.getAnnotationMap (Core.annotatedTermAnnotation v0)- ann_ =- Optionals.match (Maps.lookup Constants.keyType ann) ann (\typeTerm -> Eithers.either (\_ -> ann) (\t ->- let t_ = substituteTypeVarsWithTypes subst t- in (Maps.insert Constants.keyType (EncodeCore.type_ t_) ann)) (DecodeCore.type_ cx typeTerm))- in (Core.TermAnnotated (Core.AnnotatedTerm {- Core.annotatedTermBody = (applyOvergenSubstToTermAnnotationsGo subst cx inner),- Core.annotatedTermAnnotation = (Annotations.wrapAnnotationMap ann_)}))- Core.TermApplication v0 -> Core.TermApplication (Core.Application {- Core.applicationFunction = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.applicationFunction v0)),- Core.applicationArgument = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.applicationArgument v0))})- Core.TermLambda v0 -> Core.TermLambda (Core.Lambda {- Core.lambdaParameter = (Core.lambdaParameter v0),- Core.lambdaDomain = (Optionals.map (\d -> substituteTypeVarsWithTypes subst d) (Core.lambdaDomain v0)),- Core.lambdaBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.lambdaBody v0))})- Core.TermCases v0 -> Core.TermCases (Core.CaseStatement {- Core.caseStatementTypeName = (Core.caseStatementTypeName v0),- Core.caseStatementDefault = (Optionals.map (\d -> applyOvergenSubstToTermAnnotationsGo subst cx d) (Core.caseStatementDefault v0)),- Core.caseStatementCases = (Lists.map (\fld -> Core.CaseAlternative {- Core.caseAlternativeName = (Core.caseAlternativeName fld),- Core.caseAlternativeHandler = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.caseAlternativeHandler fld))}) (Core.caseStatementCases v0))})- Core.TermLet v0 -> Core.TermLet (Core.Let {- Core.letBindings = (Lists.map (\b -> Core.Binding {- Core.bindingName = (Core.bindingName b),- Core.bindingTerm = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.bindingTerm b)),- Core.bindingTypeScheme = (Core.bindingTypeScheme b)}) (Core.letBindings v0)),- Core.letBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.letBody v0))})- Core.TermTypeApplication v0 -> Core.TermTypeApplication (Core.TypeApplicationTerm {- Core.typeApplicationTermBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.typeApplicationTermBody v0)),- Core.typeApplicationTermType = (substituteTypeVarsWithTypes subst (Core.typeApplicationTermType v0))})- Core.TermTypeLambda v0 -> Core.TermTypeLambda (Core.TypeLambda {- Core.typeLambdaParameter = (Core.typeLambdaParameter v0),- Core.typeLambdaBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.typeLambdaBody v0))})- _ -> term--applySubstFull :: M.Map Core.Name Core.Type -> Core.Type -> Core.Type-applySubstFull s t =- case (Strip.deannotateType t) of- Core.TypeVariable v0 -> Maps.findWithDefault t v0 s- Core.TypeFunction v0 -> Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = (applySubstFull s (Core.functionTypeDomain v0)),- Core.functionTypeCodomain = (applySubstFull s (Core.functionTypeCodomain v0))})- Core.TypeApplication v0 -> Core.TypeApplication (Core.ApplicationType {- Core.applicationTypeFunction = (applySubstFull s (Core.applicationTypeFunction v0)),- Core.applicationTypeArgument = (applySubstFull s (Core.applicationTypeArgument v0))})- Core.TypeList v0 -> Core.TypeList (applySubstFull s v0)- Core.TypeSet v0 -> Core.TypeSet (applySubstFull s v0)- Core.TypeOptional v0 -> Core.TypeOptional (applySubstFull s v0)- Core.TypeEffect v0 -> Core.TypeEffect (applySubstFull s v0)- Core.TypeMap v0 -> Core.TypeMap (Core.MapType {- Core.mapTypeKeys = (applySubstFull s (Core.mapTypeKeys v0)),- Core.mapTypeValues = (applySubstFull s (Core.mapTypeValues v0))})- Core.TypePair v0 -> Core.TypePair (Core.PairType {- Core.pairTypeFirst = (applySubstFull s (Core.pairTypeFirst v0)),- Core.pairTypeSecond = (applySubstFull s (Core.pairTypeSecond v0))})- Core.TypeEither v0 -> Core.TypeEither (Core.EitherType {- Core.eitherTypeLeft = (applySubstFull s (Core.eitherTypeLeft v0)),- Core.eitherTypeRight = (applySubstFull s (Core.eitherTypeRight v0))})- Core.TypeForall v0 -> Core.TypeForall (Core.ForallType {- Core.forallTypeParameter = (Core.forallTypeParameter v0),- Core.forallTypeBody = (applySubstFull (Maps.delete (Core.forallTypeParameter v0) s) (Core.forallTypeBody v0))})- _ -> t--applySubstSimple :: M.Map Core.Name Core.Type -> Core.Type -> Core.Type-applySubstSimple subst t =- case (Strip.deannotateType t) of- Core.TypeVariable v0 -> Maps.findWithDefault t v0 subst- _ -> t--arraysCompareExpr :: String -> String -> Syntax.Expression-arraysCompareExpr otherVar fname =-- let header =- Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Arrays"))),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier "compare")})- arg1 =- Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Syntax.Identifier (Utils.sanitizeJavaName fname))})- arg2 =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier otherVar) (Utils.javaIdentifier fname))- in (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = header,- Syntax.methodInvocationArguments = [- arg1,- arg2]}))--arraysEqualsClause :: String -> String -> Syntax.InclusiveOrExpression-arraysEqualsClause tmpName fname =-- let thisArg =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))- otherArg =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier tmpName) (Utils.javaIdentifier fname))- header =- Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Arrays"))),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.equalsMethodName)})- in (Utils.javaPostfixExpressionToJavaInclusiveOrExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = header,- Syntax.methodInvocationArguments = [- thisArg,- otherArg]})))--augmentVariantClass :: JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> Syntax.ClassDeclaration -> Syntax.ClassDeclaration-augmentVariantClass aliases tparams elName cd =- case cd of- Syntax.ClassDeclarationNormal v0 ->- let args = Lists.map (\tp -> Utils.typeParameterToTypeArgument tp) tparams- extendsPart = Utils.nameToJavaClassType aliases True args elName Nothing- newMods =- [- Syntax.ClassModifierPublic,- Syntax.ClassModifierStatic,- Syntax.ClassModifierFinal]- oldBody = Syntax.normalClassDeclarationBody v0- oldDecls = Syntax.unClassBody oldBody- acceptDecl = withCommentString "Dispatch to {@code visitor}." (Utils.toAcceptMethod False tparams)- newBody = Syntax.ClassBody (Lists.concat2 oldDecls [- acceptDecl])- in (Syntax.ClassDeclarationNormal (Syntax.NormalClassDeclaration {- Syntax.normalClassDeclarationModifiers = newMods,- Syntax.normalClassDeclarationIdentifier = (Syntax.normalClassDeclarationIdentifier v0),- Syntax.normalClassDeclarationParameters = tparams,- Syntax.normalClassDeclarationExtends = (Just extendsPart),- Syntax.normalClassDeclarationImplements = (Syntax.normalClassDeclarationImplements v0),- Syntax.normalClassDeclarationPermits = (Syntax.normalClassDeclarationPermits v0),- Syntax.normalClassDeclarationBody = newBody}))- _ -> cd--bindingIsFunctionType :: Core.Binding -> Bool-bindingIsFunctionType b =- Optionals.match (Core.bindingTypeScheme b) (case (Strip.deannotateTerm (Core.bindingTerm b)) of- Core.TermLambda _ -> True- Core.TermProject _ -> True- Core.TermCases _ -> True- Core.TermUnwrap _ -> True- _ -> False) (\ts -> case (Strip.deannotateType (Core.typeSchemeBody ts)) of- Core.TypeFunction _ -> True- Core.TypeForall v0 -> case (Strip.deannotateType (Core.forallTypeBody v0)) of- Core.TypeFunction _ -> True- _ -> False- _ -> False)--bindingNameToFilePath :: Core.Name -> String-bindingNameToFilePath name =-- let qn = Names.qualifyName name- ns_ = Util.qualifiedNameModuleName qn- local = Util.qualifiedNameLocal qn- sanitized = Formatting.sanitizeWithUnderscores Language.reservedWords local- unq =- Names.unqualifyName (Util.QualifiedName {- Util.qualifiedNameModuleName = ns_,- Util.qualifiedNameLocal = sanitized})- in (Names.nameToFilePath Util.CaseConventionCamel Util.CaseConventionPascal (File.FileExtension "java") unq)--bindingsToStatements :: JavaEnvironment.JavaEnvironment -> [Core.Binding] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error ([Syntax.BlockStatement], JavaEnvironment.JavaEnvironment)-bindingsToStatements env bindings cx g0 =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- g = JavaEnvironment.javaEnvironmentGraph env- flatBindings = dedupBindings (JavaEnvironment.aliasesInScopeJavaVars aliases) (flattenBindings bindings)- gExtended =- Scoping.extendGraphForLet (\g1 -> \b -> Logic.ifElse (Predicates.isComplexBinding g1 b) (Just (Core.TermLiteral (Core.LiteralBoolean True))) Nothing) g (Core.Let {- Core.letBindings = flatBindings,- Core.letBody = (Core.TermVariable (Core.Name "dummy"))})- bindingVars = Sets.fromList (Lists.map (\b -> Core.bindingName b) flatBindings)- allDeps =- Maps.fromList (Lists.map (\b ->- let key = Core.bindingName b- deps = Sets.intersection bindingVars (Variables.freeVariablesInTerm (Core.bindingTerm b))- in (key, deps)) flatBindings)- sorted =- Sorting.topologicalSortComponents (Lists.map (\entry ->- let key = Pairs.first entry- deps = Pairs.second entry- in (key, (Sets.toList deps))) (Maps.toList allDeps))- recursiveVars =- Sets.fromList (Lists.concat (Lists.map (\names -> Logic.ifElse (Equality.equal (Lists.length names) 1) (Optionals.match (Lists.head names) [] (\singleName -> Optionals.match (Maps.lookup singleName allDeps) [] (\deps -> Logic.ifElse (Sets.member singleName deps) [- singleName] []))) names) sorted))- thunkedVars =- Sets.fromList (Lists.concat (Lists.map (\b ->- let bname = Core.bindingName b- in (Logic.ifElse (Logic.and (Logic.not (Sets.member bname recursiveVars)) (Logic.and (Logic.and (Predicates.isComplexBinding g b) (Logic.not (Predicates.isTrivialTerm (Core.bindingTerm b)))) (Logic.not (bindingIsFunctionType b)))) [- bname] [])) flatBindings))- aliasesExtended =- JavaEnvironment.Aliases {- JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases),- JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases),- JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases),- JavaEnvironment.aliasesRecursiveVars = (Sets.union (JavaEnvironment.aliasesRecursiveVars aliases) recursiveVars),- JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases),- JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases),- JavaEnvironment.aliasesInScopeJavaVars = (Sets.union (JavaEnvironment.aliasesInScopeJavaVars aliases) bindingVars),- JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases),- JavaEnvironment.aliasesLambdaVars = (JavaEnvironment.aliasesLambdaVars aliases),- JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases),- JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases),- JavaEnvironment.aliasesMethodCodomain = (JavaEnvironment.aliasesMethodCodomain aliases),- JavaEnvironment.aliasesThunkedVars = (Sets.union (JavaEnvironment.aliasesThunkedVars aliases) thunkedVars)}- envExtended =- JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = aliasesExtended,- JavaEnvironment.javaEnvironmentGraph = gExtended}- in (Logic.ifElse (Lists.isEmpty bindings) (Right ([], envExtended)) (Eithers.bind (Eithers.mapList (\names -> Eithers.bind (Eithers.mapList (\n -> toDeclInit aliasesExtended gExtended recursiveVars flatBindings n cx g) names) (\inits -> Eithers.bind (Eithers.mapList (\n -> toDeclStatement envExtended aliasesExtended gExtended recursiveVars thunkedVars flatBindings n cx g) names) (\decls -> Right (Lists.concat2 (Optionals.givens inits) decls)))) sorted) (\groups -> Right (Lists.concat groups, envExtended))))--boundTypeVariables :: Core.Type -> [Core.Name]-boundTypeVariables typ =- case typ of- Core.TypeAnnotated v0 -> boundTypeVariables (Core.annotatedTypeBody v0)- Core.TypeForall v0 -> Lists.cons (Core.forallTypeParameter v0) (boundTypeVariables (Core.forallTypeBody v0))- _ -> []--buildArgSubst :: S.Set Core.Name -> [Core.Type] -> [t0] -> M.Map Core.Name t0-buildArgSubst schemeVarSet schemeDoms argTypes =- Maps.fromList (Lists.bind (Lists.zip schemeDoms argTypes) (\p ->- let sdom = Pairs.first p- argType = Pairs.second p- in case (Strip.deannotateType sdom) of- Core.TypeVariable v0 -> Logic.ifElse (Sets.member v0 schemeVarSet) [- (v0, argType)] []- _ -> []))--buildCurriedLambda :: [Core.Name] -> Syntax.Expression -> Syntax.Expression-buildCurriedLambda params inner = Lists.foldl (\acc -> \p -> Utils.javaLambda p acc) inner (Lists.reverse params)--buildSubstFromAnnotations :: S.Set Core.Name -> Core.Term -> t0 -> Graph.Graph -> Either t1 (M.Map Core.Name Core.Name)-buildSubstFromAnnotations schemeVarSet term cx g = Right (buildSubstFromAnnotations_go schemeVarSet g term)--buildSubstFromAnnotations_go :: S.Set Core.Name -> Graph.Graph -> Core.Term -> M.Map Core.Name Core.Name-buildSubstFromAnnotations_go schemeVarSet g term =- case term of- Core.TermAnnotated v0 ->- let body = Core.annotatedTermBody v0- anns = Annotations.getAnnotationMap (Core.annotatedTermAnnotation v0)- bodySubst = buildSubstFromAnnotations_go schemeVarSet g body- annSubst =- Optionals.match (Maps.lookup Constants.keyType anns) Maps.empty (\typeTerm -> Eithers.either (\_ -> Maps.empty) (\annType -> case (Strip.deannotateTerm body) of- Core.TermLambda v1 -> Optionals.match (Core.lambdaDomain v1) Maps.empty (\dom -> case (Strip.deannotateType annType) of- Core.TypeFunction v2 -> buildTypeVarSubst schemeVarSet (Core.functionTypeDomain v2) dom- _ -> Maps.empty)- _ -> Maps.empty) (DecodeCore.type_ g typeTerm))- in (Maps.union annSubst bodySubst)- Core.TermApplication v0 -> Maps.union (buildSubstFromAnnotations_go schemeVarSet g (Core.applicationFunction v0)) (buildSubstFromAnnotations_go schemeVarSet g (Core.applicationArgument v0))- Core.TermLambda v0 -> buildSubstFromAnnotations_go schemeVarSet g (Core.lambdaBody v0)- Core.TermCases v0 ->- let defSubst = Optionals.match (Core.caseStatementDefault v0) Maps.empty (\d -> buildSubstFromAnnotations_go schemeVarSet g d)- caseSubsts =- Lists.foldl (\acc -> \fld -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g (Core.caseAlternativeHandler fld))) Maps.empty (Core.caseStatementCases v0)- in (Maps.union defSubst caseSubsts)- Core.TermLet v0 ->- let bindingSubst =- Lists.foldl (\acc -> \b -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g (Core.bindingTerm b))) Maps.empty (Core.letBindings v0)- in (Maps.union bindingSubst (buildSubstFromAnnotations_go schemeVarSet g (Core.letBody v0)))- Core.TermList v0 -> Lists.foldl (\acc -> \t -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g t)) Maps.empty v0- Core.TermOptional v0 -> Optionals.match v0 Maps.empty (\t -> buildSubstFromAnnotations_go schemeVarSet g t)- Core.TermPair v0 -> Maps.union (buildSubstFromAnnotations_go schemeVarSet g (Pairs.first v0)) (buildSubstFromAnnotations_go schemeVarSet g (Pairs.second v0))- Core.TermRecord v0 -> Lists.foldl (\acc -> \fld -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g (Core.fieldTerm fld))) Maps.empty (Core.recordFields v0)- Core.TermSet v0 -> Lists.foldl (\acc -> \t -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g t)) Maps.empty (Sets.toList v0)- Core.TermTypeApplication v0 -> buildSubstFromAnnotations_go schemeVarSet g (Core.typeApplicationTermBody v0)- Core.TermTypeLambda v0 -> buildSubstFromAnnotations_go schemeVarSet g (Core.typeLambdaBody v0)- Core.TermEither v0 -> Eithers.either (\t -> buildSubstFromAnnotations_go schemeVarSet g t) (\t -> buildSubstFromAnnotations_go schemeVarSet g t) v0- _ -> Maps.empty--buildTypeSubst :: S.Set Core.Name -> Core.Type -> Core.Type -> M.Map Core.Name Core.Type-buildTypeSubst schemeVarSet schemeType actualType =- buildTypeSubst_go schemeVarSet (Strip.deannotateType schemeType) (Strip.deannotateType actualType)--buildTypeSubst_go :: S.Set Core.Name -> Core.Type -> Core.Type -> M.Map Core.Name Core.Type-buildTypeSubst_go svs st at =-- let goSub = \a -> \b -> buildTypeSubst_go svs (Strip.deannotateType a) (Strip.deannotateType b)- in case st of- Core.TypeVariable v0 -> Logic.ifElse (Sets.member v0 svs) (Maps.singleton v0 at) Maps.empty- Core.TypeFunction v0 -> case at of- Core.TypeFunction v1 -> Maps.union (goSub (Core.functionTypeDomain v0) (Core.functionTypeDomain v1)) (goSub (Core.functionTypeCodomain v0) (Core.functionTypeCodomain v1))- _ -> Maps.empty- Core.TypeApplication v0 -> case at of- Core.TypeApplication v1 -> Maps.union (goSub (Core.applicationTypeFunction v0) (Core.applicationTypeFunction v1)) (goSub (Core.applicationTypeArgument v0) (Core.applicationTypeArgument v1))- _ -> Maps.empty- Core.TypeList v0 -> case at of- Core.TypeList v1 -> goSub v0 v1- _ -> Maps.empty- Core.TypeSet v0 -> case at of- Core.TypeSet v1 -> goSub v0 v1- _ -> Maps.empty- Core.TypeOptional v0 -> case at of- Core.TypeOptional v1 -> goSub v0 v1- _ -> Maps.empty- Core.TypeMap v0 -> case at of- Core.TypeMap v1 -> Maps.union (goSub (Core.mapTypeKeys v0) (Core.mapTypeKeys v1)) (goSub (Core.mapTypeValues v0) (Core.mapTypeValues v1))- _ -> Maps.empty- Core.TypePair v0 -> case at of- Core.TypePair v1 -> Maps.union (goSub (Core.pairTypeFirst v0) (Core.pairTypeFirst v1)) (goSub (Core.pairTypeSecond v0) (Core.pairTypeSecond v1))- _ -> Maps.empty- Core.TypeEither v0 -> case at of- Core.TypeEither v1 -> Maps.union (goSub (Core.eitherTypeLeft v0) (Core.eitherTypeLeft v1)) (goSub (Core.eitherTypeRight v0) (Core.eitherTypeRight v1))- _ -> Maps.empty- Core.TypeForall v0 -> case at of- Core.TypeForall v1 -> goSub (Core.forallTypeBody v0) (Core.forallTypeBody v1)- _ -> goSub (Core.forallTypeBody v0) at- _ -> Maps.empty--buildTypeVarSubst :: S.Set Core.Name -> Core.Type -> Core.Type -> M.Map Core.Name Core.Name-buildTypeVarSubst schemeVarSet freshTyp canonTyp =- buildTypeVarSubst_go schemeVarSet (Strip.deannotateType freshTyp) (Strip.deannotateType canonTyp)--buildTypeVarSubst_go :: S.Set Core.Name -> Core.Type -> Core.Type -> M.Map Core.Name Core.Name-buildTypeVarSubst_go svs ft ct =-- let goSub = \a -> \b -> buildTypeVarSubst_go svs (Strip.deannotateType a) (Strip.deannotateType b)- in case ft of- Core.TypeVariable v0 -> case ct of- Core.TypeVariable v1 -> Logic.ifElse (Logic.and (Logic.not (Equality.equal v0 v1)) (Sets.member v1 svs)) (Maps.singleton v0 v1) Maps.empty- _ -> Maps.empty- Core.TypeFunction v0 -> case ct of- Core.TypeFunction v1 -> Maps.union (goSub (Core.functionTypeDomain v0) (Core.functionTypeDomain v1)) (goSub (Core.functionTypeCodomain v0) (Core.functionTypeCodomain v1))- _ -> Maps.empty- Core.TypeApplication v0 -> case ct of- Core.TypeApplication v1 -> Maps.union (goSub (Core.applicationTypeFunction v0) (Core.applicationTypeFunction v1)) (goSub (Core.applicationTypeArgument v0) (Core.applicationTypeArgument v1))- _ -> Maps.empty- Core.TypeList v0 -> case ct of- Core.TypeList v1 -> goSub v0 v1- _ -> Maps.empty- Core.TypeSet v0 -> case ct of- Core.TypeSet v1 -> goSub v0 v1- _ -> Maps.empty- Core.TypeOptional v0 -> case ct of- Core.TypeOptional v1 -> goSub v0 v1- _ -> Maps.empty- Core.TypeMap v0 -> case ct of- Core.TypeMap v1 -> Maps.union (goSub (Core.mapTypeKeys v0) (Core.mapTypeKeys v1)) (goSub (Core.mapTypeValues v0) (Core.mapTypeValues v1))- _ -> Maps.empty- Core.TypePair v0 -> case ct of- Core.TypePair v1 -> Maps.union (goSub (Core.pairTypeFirst v0) (Core.pairTypeFirst v1)) (goSub (Core.pairTypeSecond v0) (Core.pairTypeSecond v1))- _ -> Maps.empty- Core.TypeEither v0 -> case ct of- Core.TypeEither v1 -> Maps.union (goSub (Core.eitherTypeLeft v0) (Core.eitherTypeLeft v1)) (goSub (Core.eitherTypeRight v0) (Core.eitherTypeRight v1))- _ -> Maps.empty- Core.TypeForall v0 -> case ct of- Core.TypeForall v1 -> goSub (Core.forallTypeBody v0) (Core.forallTypeBody v1)- _ -> buildTypeVarSubst_go svs (Strip.deannotateType (Core.forallTypeBody v0)) ct- _ -> case ct of- Core.TypeForall v0 -> buildTypeVarSubst_go svs ft (Strip.deannotateType (Core.forallTypeBody v0))- _ -> Maps.empty--builderSetterName :: Core.Name -> String-builderSetterName fname =-- let base = Utils.sanitizeJavaName (Core.unName fname)- in (Logic.ifElse (Logic.or (Equality.equal base "build") (Equality.equal base "builder")) (Strings.concat2 base "_") base)--classModsPublic :: [Syntax.ClassModifier]-classModsPublic = [- Syntax.ClassModifierPublic]--classifyDataReference :: Core.Name -> t0 -> Graph.Graph -> Either Errors.Error JavaEnvironment.JavaSymbolClass-classifyDataReference name cx g =- Eithers.bind (Right (Lexical.lookupBinding g name)) (\mel -> Optionals.match mel (Right JavaEnvironment.JavaSymbolClassLocalVariable) (\el -> Optionals.match (Core.bindingTypeScheme el) (Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "no type scheme for element " (Core.unName (Core.bindingName el)))))) (\ts -> Right (classifyDataTerm ts (Core.bindingTerm el)))))--classifyDataTerm :: Core.TypeScheme -> Core.Term -> JavaEnvironment.JavaSymbolClass-classifyDataTerm ts term =- Logic.ifElse (Dependencies.isLambda term) (- let n = classifyDataTerm_countLambdaParams term- in (Logic.ifElse (Ordering.gt n 1) (JavaEnvironment.JavaSymbolClassHoistedLambda n) JavaEnvironment.JavaSymbolClassUnaryFunction)) (- let hasTypeParams = Logic.not (Lists.isEmpty (Core.typeSchemeVariables ts))- in (Logic.ifElse hasTypeParams (- let n2 = classifyDataTerm_countLambdaParams (classifyDataTerm_stripTypeLambdas term)- in (Logic.ifElse (Ordering.gt n2 0) (JavaEnvironment.JavaSymbolClassHoistedLambda n2) JavaEnvironment.JavaSymbolClassNullaryFunction)) JavaEnvironment.JavaSymbolClassNullaryFunction))--classifyDataTerm_countLambdaParams :: Core.Term -> Int-classifyDataTerm_countLambdaParams t =- case (Strip.deannotateTerm t) of- Core.TermLambda v0 -> Math.add 1 (classifyDataTerm_countLambdaParams (Core.lambdaBody v0))- Core.TermLet v0 -> classifyDataTerm_countLambdaParams (Core.letBody v0)- _ -> 0--classifyDataTerm_stripTypeLambdas :: Core.Term -> Core.Term-classifyDataTerm_stripTypeLambdas t =- case (Strip.deannotateTerm t) of- Core.TermTypeLambda v0 -> classifyDataTerm_stripTypeLambdas (Core.typeLambdaBody v0)- _ -> t--cmpDeclStatement :: t0 -> Syntax.BlockStatement-cmpDeclStatement aliases =- Utils.variableDeclarationStatement aliases Utils.javaIntType (Utils.javaIdentifier "cmp") (Utils.javaIntExpression 0)--cmpNotZeroExpr :: Syntax.Expression-cmpNotZeroExpr =- Utils.javaEqualityExpressionToJavaExpression (Syntax.EqualityExpressionNotEqual (Syntax.EqualityExpression_Binary {- Syntax.equalityExpression_BinaryLhs = lhs,- Syntax.equalityExpression_BinaryRhs = rhs}))- where- lhs =- Utils.javaRelationalExpressionToJavaEqualityExpression (Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionName (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Utils.javaIdentifier "cmp")})))- rhs =- Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionPrimary (Utils.javaLiteralToJavaPrimary (Utils.javaInt 0)))--collectForallParams :: Core.Type -> [Core.Name]-collectForallParams t =- case (Strip.deannotateType t) of- Core.TypeForall v0 -> Lists.cons (Core.forallTypeParameter v0) (collectForallParams (Core.forallTypeBody v0))- _ -> []--collectLambdaDomains :: Core.Term -> ([Core.Type], Core.Term)-collectLambdaDomains t =- case (Strip.deannotateTerm t) of- Core.TermLambda v0 -> Optionals.match (Core.lambdaDomain v0) ([], t) (\dom ->- let rest = collectLambdaDomains (Core.lambdaBody v0)- in (Lists.cons dom (Pairs.first rest), (Pairs.second rest)))- _ -> ([], t)--collectTypeApps :: Core.Term -> [Core.Type] -> (Core.Term, [Core.Type])-collectTypeApps t acc =- case (Strip.deannotateTerm t) of- Core.TermTypeApplication v0 -> collectTypeApps (Core.typeApplicationTermBody v0) (Lists.cons (Core.typeApplicationTermType v0) acc)- _ -> (Strip.deannotateTerm t, acc)--collectTypeApps0 :: Core.Term -> [Core.Type] -> (Core.Term, [Core.Type])-collectTypeApps0 t acc =- case (Strip.deannotateTerm t) of- Core.TermTypeApplication v0 -> collectTypeApps0 (Core.typeApplicationTermBody v0) (Lists.cons (Core.typeApplicationTermType v0) acc)- _ -> (t, acc)--collectTypeVars :: Core.Type -> S.Set Core.Name-collectTypeVars typ = collectTypeVars_go (Strip.deannotateType typ)--collectTypeVars_go :: Core.Type -> S.Set Core.Name-collectTypeVars_go t =- case t of- Core.TypeVariable v0 -> Sets.singleton v0- Core.TypeFunction v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Core.functionTypeDomain v0))) (collectTypeVars_go (Strip.deannotateType (Core.functionTypeCodomain v0)))- Core.TypeApplication v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Core.applicationTypeFunction v0))) (collectTypeVars_go (Strip.deannotateType (Core.applicationTypeArgument v0)))- Core.TypeList v0 -> collectTypeVars_go (Strip.deannotateType v0)- Core.TypeSet v0 -> collectTypeVars_go (Strip.deannotateType v0)- Core.TypeOptional v0 -> collectTypeVars_go (Strip.deannotateType v0)- Core.TypeEffect v0 -> collectTypeVars_go (Strip.deannotateType v0)- Core.TypeMap v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Core.mapTypeKeys v0))) (collectTypeVars_go (Strip.deannotateType (Core.mapTypeValues v0)))- Core.TypePair v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Core.pairTypeFirst v0))) (collectTypeVars_go (Strip.deannotateType (Core.pairTypeSecond v0)))- Core.TypeEither v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Core.eitherTypeLeft v0))) (collectTypeVars_go (Strip.deannotateType (Core.eitherTypeRight v0)))- Core.TypeForall v0 -> collectTypeVars_go (Strip.deannotateType (Core.forallTypeBody v0))- _ -> Sets.empty--collectionTypeArgs :: String -> Int -> JavaEnvironment.Aliases -> [M.Map Core.Name Core.Term] -> [Syntax.Type] -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]-collectionTypeArgs label n aliases anns tyapps cx g =- Logic.ifElse (Logic.not (Lists.isEmpty tyapps)) (takeTypeArgs label n tyapps cx g) (- let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp -> Eithers.bind (Optionals.match mtyp (Right []) (\typ -> case (Strip.deannotateType typ) of- Core.TypeList v0 -> Right [- v0]- Core.TypeSet v0 -> Right [- v0]- Core.TypeOptional v0 -> Right [- v0]- Core.TypeMap v0 -> Right [- Core.mapTypeKeys v0,- (Core.mapTypeValues v0)]- _ -> Right [])) (\compTypes -> Eithers.mapList (\ct -> Eithers.bind (encodeType aliases Sets.empty ct cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) compTypes))))--comparableCompareExpr :: String -> String -> Syntax.Expression-comparableCompareExpr otherVar fname =-- let thisField = Utils.javaIdentifierToJavaExpression (Syntax.Identifier (Utils.sanitizeJavaName fname))- otherField =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier otherVar) (Utils.javaIdentifier fname))- in (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.overlay.java.util.Comparing") (Syntax.Identifier "compare") [- thisField,- otherField]))--compareAndReturnStmts :: String -> Core.FieldType -> [Syntax.BlockStatement]-compareAndReturnStmts otherVar f =- [- Syntax.BlockStatementStatement (Utils.javaAssignmentStatement (Syntax.LeftHandSideExpressionName (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Utils.javaIdentifier "cmp")})) (compareFieldExpr otherVar f)),- (Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {- Syntax.ifThenStatementExpression = cmpNotZeroExpr,- Syntax.ifThenStatementStatement = (Utils.javaReturnStatement (Just (Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Utils.javaIdentifier "cmp")}))))})))]--compareFieldExpr :: String -> Core.FieldType -> Syntax.Expression-compareFieldExpr otherVar ft =-- let fname = Core.unName (Core.fieldTypeName ft)- ftype = Core.fieldTypeType ft- in (Logic.ifElse (isBinaryType ftype) (arraysCompareExpr otherVar fname) (Logic.ifElse (isNonComparableType ftype) (hashCodeCompareExpr otherVar fname) (comparableCompareExpr otherVar fname)))--compareToBody :: t0 -> String -> [Core.FieldType] -> [Syntax.BlockStatement]-compareToBody aliases otherVar fields =-- let zeroStmts = [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaIntExpression 0)))]- in (Optionals.withDefault zeroStmts (Optionals.map (\p ->- let firstField = Pairs.first p- restFields = Pairs.second p- in (Logic.ifElse (Lists.isEmpty restFields) [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (compareFieldExpr otherVar firstField)))] (Lists.concat2 [- cmpDeclStatement aliases] (Lists.concat2 (Lists.concat (Lists.map (\f -> compareAndReturnStmts otherVar f) (Lists.cons firstField (Optionals.withDefault [] (Lists.init restFields))))) [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (compareFieldExpr otherVar (Optionals.withDefault firstField (Lists.last restFields)))))])))) (Lists.uncons fields)))--compareToZeroClause :: String -> String -> Syntax.InclusiveOrExpression-compareToZeroClause tmpName fname =-- let compareToArg =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier tmpName) (Utils.javaIdentifier fname))- compareToVar =- Syntax.MethodInvocation_VariantExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))- compareToHeader =- Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = compareToVar,- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.compareToMethodName)})- lhs =- Utils.javaRelationalExpressionToJavaEqualityExpression (Utils.javaPostfixExpressionToJavaRelationalExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = compareToHeader,- Syntax.methodInvocationArguments = [- compareToArg]})))- rhs =- Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionPrimary (Utils.javaLiteralToJavaPrimary (Utils.javaInt 0)))- in (Utils.javaEqualityExpressionToJavaInclusiveOrExpression (Syntax.EqualityExpressionEqual (Syntax.EqualityExpression_Binary {- Syntax.equalityExpression_BinaryLhs = lhs,- Syntax.equalityExpression_BinaryRhs = rhs})))--constantDecl :: String -> String -> JavaEnvironment.Aliases -> Core.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments-constantDecl comment javaName aliases name cx g =-- let mods =- [- Syntax.FieldModifierPublic,- Syntax.FieldModifierStatic,- Syntax.FieldModifierFinal]- nameName = Utils.nameToJavaName aliases (Core.Name "hydra.core.Name")- env =- JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = aliases,- JavaEnvironment.javaEnvironmentGraph = g}- in (Eithers.bind (encodeType aliases Sets.empty (Core.TypeVariable (Core.Name "hydra.core.Name")) cx g) (\jt -> Eithers.bind (encodeTerm env (Core.TermLiteral (Core.LiteralString (Core.unName name))) cx g) (\arg ->- let init =- Syntax.VariableInitializerExpression (Utils.javaConstructorCall (Utils.javaConstructorName nameName Nothing) [- arg] Nothing)- var = Utils.javaVariableDeclarator (Syntax.Identifier javaName) (Just init)- in (Right (withCommentString comment (Utils.javaMemberField mods jt var))))))--constantDeclForFieldType :: Core.Name -> JavaEnvironment.Aliases -> Core.FieldType -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments-constantDeclForFieldType parentName aliases ftyp cx g =-- let name = Core.fieldTypeName ftyp- javaName =- Formatting.nonAlnumToUnderscores (Formatting.convertCase Util.CaseConventionCamel Util.CaseConventionUpperSnake (Core.unName name))- comment =- Strings.concat [- "Name of the {@code ",- (Core.unName parentName),- ".",- (Core.unName name),- "} field."]- in (constantDecl comment javaName aliases name cx g)--constantDeclForTypeName :: JavaEnvironment.Aliases -> Core.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments-constantDeclForTypeName aliases name cx g =-- let comment =- Strings.concat [- "Name of the {@code ",- (Core.unName name),- "} type."]- in (constantDecl comment "TYPE_" aliases name cx g)--constructElementsInterface :: Packaging.Module -> [Syntax.InterfaceMemberDeclarationWithComments] -> (Core.Name, Syntax.CompilationUnit)-constructElementsInterface mod members =-- let ns = Packaging.moduleName mod- parentNs = namespaceParent ns- pkg = Optionals.match parentNs (Utils.javaPackageDeclaration ns) (\pns -> Utils.javaPackageDeclaration pns)- mods = [- Syntax.InterfaceModifierPublic]- className = elementsClassName ns- elName = elementsQualifiedName ns- body = Syntax.InterfaceBody members- itf =- Syntax.TopLevelClassOrInterfaceDeclarationInterface (Syntax.InterfaceDeclarationNormalInterface (Syntax.NormalInterfaceDeclaration {- Syntax.normalInterfaceDeclarationModifiers = mods,- Syntax.normalInterfaceDeclarationIdentifier = (Utils.javaTypeIdentifier className),- Syntax.normalInterfaceDeclarationParameters = [],- Syntax.normalInterfaceDeclarationExtends = [],- Syntax.normalInterfaceDeclarationPermits = [],- Syntax.normalInterfaceDeclarationBody = body}))- decl =- Syntax.TopLevelClassOrInterfaceDeclarationWithComments {- Syntax.topLevelClassOrInterfaceDeclarationWithCommentsValue = itf,- Syntax.topLevelClassOrInterfaceDeclarationWithCommentsComments = (Optionals.bind (Packaging.moduleMetadata mod) (\em -> Packaging.entityMetadataDescription em))}- in (- elName,- (Syntax.CompilationUnitOrdinary (Syntax.OrdinaryCompilationUnit {- Syntax.ordinaryCompilationUnitPackage = (Just pkg),- Syntax.ordinaryCompilationUnitImports = [],- Syntax.ordinaryCompilationUnitTypes = [- decl]})))--correctCastType :: Core.Term -> [Core.Type] -> Core.Type -> t0 -> t1 -> Either t2 Core.Type-correctCastType innerBody typeArgs fallback cx g =- case (Strip.deannotateTerm innerBody) of- Core.TermPair _ -> Logic.ifElse (Equality.equal (Lists.length typeArgs) 2) (Right (Core.TypePair (Core.PairType {- Core.pairTypeFirst = (Optionals.withDefault fallback (Lists.at 0 typeArgs)),- Core.pairTypeSecond = (Optionals.withDefault fallback (Lists.at 1 typeArgs))}))) (Right fallback)- _ -> Right fallback--correctTypeApps :: t0 -> Core.Name -> [Core.Term] -> [Core.Type] -> t1 -> Graph.Graph -> Either Errors.Error [Core.Type]-correctTypeApps gr name args fallbackTypeApps cx g =- Eithers.bind (Right (Lexical.lookupBinding g name)) (\mel -> Optionals.match mel (Right fallbackTypeApps) (\el -> Optionals.match (Core.bindingTypeScheme el) (Right fallbackTypeApps) (\ts ->- let schemeType = Core.typeSchemeBody ts- allSchemeVars = Lists.filter (\v -> isSimpleName v) (Core.typeSchemeVariables ts)- schemeTypeVars = collectTypeVars schemeType- usedFlags = Lists.map (\v -> Sets.member v schemeTypeVars) allSchemeVars- usedSchemeVars = filterByFlags allSchemeVars usedFlags- nParams = countFunctionParams schemeType- peeled = peelDomainTypes nParams schemeType- calleeDoms = Pairs.first peeled- calleeCod = Pairs.second peeled- overgenSubst = detectAccumulatorUnification calleeDoms calleeCod usedSchemeVars- keepFlags =- Lists.map (\v -> Logic.and (Sets.member v schemeTypeVars) (Logic.not (Maps.member v overgenSubst))) allSchemeVars- schemeVars = filterByFlags allSchemeVars keepFlags- filteredFallback0 =- Logic.ifElse (Equality.equal (Lists.length allSchemeVars) (Lists.length fallbackTypeApps)) (filterByFlags fallbackTypeApps keepFlags) fallbackTypeApps- filteredFallback =- Logic.ifElse (Maps.isEmpty overgenSubst) filteredFallback0 (Lists.map (\t -> substituteTypeVarsWithTypes overgenSubst t) filteredFallback0)- in (Logic.ifElse (Logic.or (Lists.isEmpty schemeVars) (Logic.not (Equality.equal (Lists.length schemeVars) (Lists.length filteredFallback)))) (Right filteredFallback) (correctTypeAppsWithArgs schemeVars filteredFallback schemeType args cx g)))))--correctTypeAppsWithArgs :: [Core.Name] -> [Core.Type] -> Core.Type -> [Core.Term] -> t0 -> Graph.Graph -> Either Errors.Error [Core.Type]-correctTypeAppsWithArgs schemeVars fallbackTypeApps schemeType args cx g =-- let schemeVarSet = Sets.fromList schemeVars- irSubst = Maps.fromList (Lists.zip schemeVars fallbackTypeApps)- peeled = peelDomainTypes (Lists.length args) schemeType- schemeDoms = Pairs.first peeled- in (Eithers.bind (Eithers.mapList (\arg -> Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal arg))) args) (\mArgTypes -> Logic.ifElse (Logic.not (Lists.isEmpty (Lists.filter (\m -> Optionals.isNone m) mArgTypes))) (Right fallbackTypeApps) (- let argTypes = Lists.bind mArgTypes (\m -> Optionals.match m [] (\x -> Lists.singleton x))- irDoms = Lists.map (\d -> applySubstSimple irSubst d) schemeDoms- domsMatch =- Lists.isEmpty (Lists.filter (\p -> Logic.not (typesMatch (Strip.deannotateType (Pairs.first p)) (Strip.deannotateType (Pairs.second p)))) (Lists.zip irDoms argTypes))- in (Logic.ifElse domsMatch (Right fallbackTypeApps) (Right (resolveTypeApps schemeVars fallbackTypeApps (buildArgSubst schemeVarSet schemeDoms argTypes)))))))--countFunctionParams :: Core.Type -> Int-countFunctionParams t =- case (Strip.deannotateType t) of- Core.TypeFunction v0 -> Math.add 1 (countFunctionParams (Core.functionTypeCodomain v0))- _ -> 0--declarationForRecordType :: Bool -> Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> [Core.FieldType] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration-declarationForRecordType isInner isSer aliases tparams elName fields cx g =- declarationForRecordType_ isInner isSer aliases tparams elName Nothing Nothing fields cx g--declarationForRecordType_ :: Bool -> Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> Maybe Core.Name -> Maybe Int -> [Core.FieldType] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration-declarationForRecordType_ isInner isSer aliases tparams elName parentName ordinal fields cx g =- Eithers.bind (Eithers.mapList (\f -> recordMemberVar aliases f cx g) fields) (\memberVars -> Eithers.bind (Eithers.mapList (\p -> addComment (Pairs.first p) (Pairs.second p) cx g) (Lists.zip memberVars fields)) (\memberVars_ ->- let elNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases elName)- linkTargetStr =- Optionals.match parentName elNameStr (\pn -> Strings.concat2 (Strings.concat2 (Syntax.unIdentifier (Utils.nameToJavaName aliases pn)) ".") (Utils.sanitizeJavaName (Util.qualifiedNameLocal (Names.qualifyName elName))))- in (Eithers.bind (Logic.ifElse (Ordering.gt (Lists.length fields) 1) (Eithers.mapList (\f -> Eithers.bind (recordWithMethod aliases elName fields f cx g) (\decl ->- let fname = Core.unName (Core.fieldTypeName f)- comment =- Strings.concat [- "Returns a copy of this {@link ",- linkTargetStr,- "} with {@code ",- fname,- "} replaced."]- in (Right (withCommentString comment decl)))) fields) (Right [])) (\withMethods -> Eithers.bind (recordConstructor aliases elName fields cx g) (\cons -> Eithers.bind (Eithers.mapList (\f ->- let fname = Utils.sanitizeJavaName (Core.unName (Core.fieldTypeName f))- in (Eithers.bind (Annotations.commentsFromFieldType cx g f) (\mDoc -> Right (Optionals.match mDoc "" (\d -> Strings.concat [- "@param ",- fname,- " ",- d]))))) fields) (\paramLines ->- let nonEmptyParamLines = Lists.filter (\l -> Logic.not (Equality.equal l "")) paramLines- consBaseComment =- Strings.concat [- "Constructs an immutable {@link ",- linkTargetStr,- "}."]- consComment =- Logic.ifElse (Lists.isEmpty nonEmptyParamLines) consBaseComment (Strings.concat [- consBaseComment,- "\n\n",- (Strings.join "\n" nonEmptyParamLines)])- consWithComment = withCommentString consComment cons- in (Eithers.bind (Logic.ifElse isInner (Right []) (Eithers.bind (constantDeclForTypeName aliases elName cx g) (\d -> Eithers.bind (Eithers.mapList (\f -> constantDeclForFieldType elName aliases f cx g) fields) (\dfields -> Right (Lists.cons d dfields))))) (\tn -> Eithers.bind (Logic.ifElse isInner (Right []) (recordBuilderClass aliases tparams elName fields cx g)) (\builderDecls ->- let comparableMethods =- Optionals.match parentName (Logic.ifElse (Logic.and (Logic.not isInner) isSer) [- recordCompareToMethod aliases tparams elName fields] []) (\pn -> Logic.ifElse isSer (variantCompareToMethod aliases tparams pn elName (Optionals.withDefault 0 ordinal) fields) [])- noCommentMethods =- Lists.map (\x -> noComment x) (Lists.concat2 [- recordEqualsMethod aliases elName fields,- (recordHashCodeMethod fields),- (recordToStringMethod elName fields)] comparableMethods)- bodyDecls =- Lists.concat [- tn,- memberVars_,- [- consWithComment],- noCommentMethods,- withMethods,- builderDecls]- ifaces = Logic.ifElse isInner (serializableTypes isSer) (interfaceTypes isSer aliases tparams elName)- in (Right (Utils.javaClassDeclaration aliases tparams elName classModsPublic Nothing ifaces bodyDecls)))))))))))--declarationForUnionType :: Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> [Core.FieldType] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration-declarationForUnionType isSer aliases tparams elName fields cx g =- Eithers.bind (Eithers.mapList (\ftord ->- let ft = Pairs.first ftord- ordinal = Pairs.second ftord- fname = Core.fieldTypeName ft- ftype = Core.fieldTypeType ft- rfields =- Logic.ifElse (Predicates.isUnitType (Strip.deannotateType ftype)) [] [- Core.FieldType {- Core.fieldTypeName = (Core.Name "value"),- Core.fieldTypeType = (Strip.deannotateType ftype)}]- varName = Utils.variantClassName False elName fname- in (Eithers.bind (declarationForRecordType_ True isSer aliases [] varName (Logic.ifElse isSer (Just elName) Nothing) (Logic.ifElse isSer (Just ordinal) Nothing) rfields cx g) (\innerDecl -> Right (augmentVariantClass aliases tparams elName innerDecl)))) (Lists.zip fields (Math.range 0 (Lists.length fields)))) (\variantClasses ->- let variantDecls =- Lists.map (\vc -> Syntax.ClassBodyDeclarationClassMember (Syntax.ClassMemberDeclarationClass vc)) variantClasses- in (Eithers.bind (Eithers.mapList (\pair -> addComment (Pairs.first pair) (Pairs.second pair) cx g) (Lists.zip variantDecls fields)) (\variantDecls_ ->- let privateConst = Utils.makeConstructor aliases elName True [] []- acceptDecl = Utils.toAcceptMethod True tparams- vtparams = Lists.concat2 tparams [- Utils.javaTypeParameter JavaNames.visitorReturnParameter]- elNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases elName)- visitorMethods =- Lists.map (\ft ->- let fname = Core.fieldTypeName ft- fnameStr = Core.unName fname- typeArgs = Lists.map (\tp -> Utils.typeParameterToTypeArgument tp) tparams- varName = Utils.variantClassName False elName fname- varNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases varName)- varLocalStr = Utils.sanitizeJavaName (Util.qualifiedNameLocal (Names.qualifyName varName))- linkVarNameStr = Strings.concat2 (Strings.concat2 elNameStr ".") varLocalStr- varRef = Utils.javaClassTypeToJavaType (Utils.nameToJavaClassType aliases False typeArgs varName Nothing)- param = Utils.javaTypeToJavaFormalParameter varRef (Core.Name "instance")- resultR = Utils.javaTypeToJavaResult (Syntax.TypeReference Utils.visitorTypeVariable)- comment =- Strings.concat [- "Visit the {@link ",- linkVarNameStr,- "} case."]- in (comment, (Utils.interfaceMethodDeclaration [] [] JavaNames.visitMethodName [- param] resultR Nothing))) fields- visitorBody =- Syntax.InterfaceBody (Lists.map (\p -> withInterfaceCommentString (Pairs.first p) (Pairs.second p)) visitorMethods)- visitor =- Utils.javaInterfaceDeclarationToJavaClassBodyDeclaration (Syntax.NormalInterfaceDeclaration {- Syntax.normalInterfaceDeclarationModifiers = [- Syntax.InterfaceModifierPublic],- Syntax.normalInterfaceDeclarationIdentifier = (Syntax.TypeIdentifier (Syntax.Identifier JavaNames.visitorName)),- Syntax.normalInterfaceDeclarationParameters = vtparams,- Syntax.normalInterfaceDeclarationExtends = [],- Syntax.normalInterfaceDeclarationPermits = [],- Syntax.normalInterfaceDeclarationBody = visitorBody})- typeArgs = Lists.map (\tp -> Utils.typeParameterToTypeArgument tp) tparams- visitorClassType =- Utils.javaClassType (Lists.concat2 (Lists.map (\tp -> Utils.typeParameterToReferenceType tp) tparams) [- Utils.visitorTypeVariable]) Nothing JavaNames.visitorName- mainInstanceParam =- Utils.javaTypeToJavaFormalParameter (Utils.javaClassTypeToJavaType (Utils.nameToJavaClassType aliases False typeArgs elName Nothing)) (Core.Name "instance")- resultR = Utils.javaTypeToJavaResult (Syntax.TypeReference Utils.visitorTypeVariable)- throwStmt =- Syntax.BlockStatementStatement (Utils.javaThrowIllegalStateException [- Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions [- Utils.javaStringMultiplicativeExpression "Non-exhaustive patterns when matching: ",- (Syntax.MultiplicativeExpressionUnary (Utils.javaIdentifierToJavaUnaryExpression (Syntax.Identifier "instance")))])])- defaultMod = [- Syntax.InterfaceMethodModifierDefault]- otherwiseDecl =- Utils.interfaceMethodDeclaration defaultMod [] JavaNames.otherwiseMethodName [- mainInstanceParam] resultR (Just [- throwStmt])- otherwiseComment = "Default branch for unhandled cases."- pvVisitMethods =- Lists.map (\ft ->- let fname = Core.fieldTypeName ft- varName = Utils.variantClassName False elName fname- varNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases varName)- varLocalStr = Utils.sanitizeJavaName (Util.qualifiedNameLocal (Names.qualifyName varName))- linkVarNameStr = Strings.concat2 (Strings.concat2 elNameStr ".") varLocalStr- varRef = Utils.javaClassTypeToJavaType (Utils.nameToJavaClassType aliases False typeArgs varName Nothing)- param = Utils.javaTypeToJavaFormalParameter varRef (Core.Name "instance")- mi =- Utils.methodInvocation Nothing (Syntax.Identifier JavaNames.otherwiseMethodName) [- Utils.javaIdentifierToJavaExpression (Syntax.Identifier "instance")]- returnOtherwise =- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaPrimaryToJavaExpression (Utils.javaMethodInvocationToJavaPrimary mi))))- comment =- Strings.concat [- "Visit the {@link ",- linkVarNameStr,- "} case."]- in (- comment,- (Utils.interfaceMethodDeclaration defaultMod [] JavaNames.visitMethodName [- param] resultR (Just [- returnOtherwise])))) fields- pvBody =- Syntax.InterfaceBody (Lists.cons (withInterfaceCommentString otherwiseComment otherwiseDecl) (Lists.map (\p -> withInterfaceCommentString (Pairs.first p) (Pairs.second p)) pvVisitMethods))- partialVisitor =- Utils.javaInterfaceDeclarationToJavaClassBodyDeclaration (Syntax.NormalInterfaceDeclaration {- Syntax.normalInterfaceDeclarationModifiers = [- Syntax.InterfaceModifierPublic],- Syntax.normalInterfaceDeclarationIdentifier = (Syntax.TypeIdentifier (Syntax.Identifier JavaNames.partialVisitorName)),- Syntax.normalInterfaceDeclarationParameters = vtparams,- Syntax.normalInterfaceDeclarationExtends = [- Syntax.InterfaceType visitorClassType],- Syntax.normalInterfaceDeclarationPermits = [],- Syntax.normalInterfaceDeclarationBody = pvBody})- in (Eithers.bind (constantDeclForTypeName aliases elName cx g) (\tn0 -> Eithers.bind (Eithers.mapList (\ft -> constantDeclForFieldType elName aliases ft cx g) fields) (\tn1 ->- let tn = Lists.concat2 [- tn0] tn1- privateConstComment =- Strings.concat [- "Constructs an immutable {@link ",- elNameStr,- "}."]- acceptComment = "Dispatch to {@code visitor}."- visitorIfaceComment =- Strings.concat [- "Visitor over {@link ",- elNameStr,- "}."]- partialVisitorIfaceComment =- Strings.concat [- "Partial visitor over {@link ",- elNameStr,- "} with a default {@link #otherwise} branch."]- hydraOrdinalAbstractDecls = Logic.ifElse isSer [- noComment (hydraOrdinalMethod Nothing)] []- otherDecls =- Lists.concat2 [- withCommentString privateConstComment privateConst,- (withCommentString acceptComment acceptDecl),- (withCommentString visitorIfaceComment visitor),- (withCommentString partialVisitorIfaceComment partialVisitor)] hydraOrdinalAbstractDecls- bodyDecls =- Lists.concat [- tn,- otherDecls,- variantDecls_]- mods = Lists.concat2 classModsPublic [- Syntax.ClassModifierAbstract]- in (Right (Utils.javaClassDeclaration aliases tparams elName mods Nothing (interfaceTypes isSer aliases tparams elName) bodyDecls))))))))--decodeTypeFromTerm :: Core.Term -> Maybe Core.Type-decodeTypeFromTerm term =- case (Strip.deannotateTerm term) of- Core.TermInject v0 -> Logic.ifElse (Equality.equal (Core.injectionTypeName v0) (Core.Name "hydra.core.Type")) (- let fname = Core.unName (Core.fieldName (Core.injectionField v0))- fterm = Core.fieldTerm (Core.injectionField v0)- in (Logic.ifElse (Equality.equal fname "variable") (case fterm of- Core.TermWrap v1 -> case (Core.wrappedTermBody v1) of- Core.TermLiteral v2 -> case v2 of- Core.LiteralString v3 -> Just (Core.TypeVariable (Core.Name v3))- _ -> Nothing- _ -> Nothing- _ -> Nothing) (Logic.ifElse (Equality.equal fname "annotated") (case fterm of- Core.TermRecord v1 -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Core.fieldName f) (Core.Name "body")) (Core.recordFields v1))) (\bodyField -> decodeTypeFromTerm (Core.fieldTerm bodyField))- _ -> Nothing) (Logic.ifElse (Equality.equal fname "application") (case fterm of- Core.TermRecord v1 -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Core.fieldName f) (Core.Name "function")) (Core.recordFields v1))) (\funcField -> Optionals.bind (decodeTypeFromTerm (Core.fieldTerm funcField)) (\func -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Core.fieldName f) (Core.Name "argument")) (Core.recordFields v1))) (\argField -> Optionals.map (\arg -> Core.TypeApplication (Core.ApplicationType {- Core.applicationTypeFunction = func,- Core.applicationTypeArgument = arg})) (decodeTypeFromTerm (Core.fieldTerm argField)))))- _ -> Nothing) (Logic.ifElse (Equality.equal fname "function") (case fterm of- Core.TermRecord v1 -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Core.fieldName f) (Core.Name "domain")) (Core.recordFields v1))) (\domField -> Optionals.bind (decodeTypeFromTerm (Core.fieldTerm domField)) (\dom -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Core.fieldName f) (Core.Name "codomain")) (Core.recordFields v1))) (\codField -> Optionals.map (\cod -> Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = cod})) (decodeTypeFromTerm (Core.fieldTerm codField)))))- _ -> Nothing) (Logic.ifElse (Equality.equal fname "literal") (case fterm of- Core.TermInject v1 -> Logic.ifElse (Equality.equal (Core.unName (Core.fieldName (Core.injectionField v1))) "string") (Just (Core.TypeLiteral Core.LiteralTypeString)) Nothing- _ -> Nothing) Nothing)))))) Nothing- _ -> Nothing--dedupBindings :: S.Set Core.Name -> [Core.Binding] -> [Core.Binding]-dedupBindings inScope bs =- Optionals.withDefault [] (Optionals.map (\p ->- let b = Pairs.first p- rest = Pairs.second p- name = Core.bindingName b- in (Logic.ifElse (Sets.member name inScope) (- let newName = freshJavaName name inScope- subst = Maps.singleton name newName- rest2 =- Lists.map (\b2 -> Core.Binding {- Core.bindingName = (Core.bindingName b2),- Core.bindingTerm = (Variables.substituteVariables subst (Core.bindingTerm b2)),- Core.bindingTypeScheme = (Core.bindingTypeScheme b2)}) rest- in (Lists.cons (Core.Binding {- Core.bindingName = newName,- Core.bindingTerm = (Core.bindingTerm b),- Core.bindingTypeScheme = (Core.bindingTypeScheme b)}) (dedupBindings (Sets.insert newName inScope) rest2))) (Lists.cons b (dedupBindings (Sets.insert name inScope) rest)))) (Lists.uncons bs))--detectAccumulatorUnification :: [Core.Type] -> Core.Type -> [Core.Name] -> M.Map Core.Name Core.Type-detectAccumulatorUnification doms cod tparams =-- let tparamSet = Sets.fromList tparams- allPairs = Lists.bind doms (\d -> extractInOutPair d)- groupedByInput = groupPairsByFirst allPairs- selfRefSubst = selfRefSubstitution groupedByInput- directPairs = Lists.bind doms (\d -> extractDirectReturn tparamSet d)- groupedDirect = groupPairsByFirst directPairs- directInputVars = Sets.fromList (Lists.map (\p -> Pairs.first p) directPairs)- codVar =- case (Strip.deannotateType cod) of- Core.TypeVariable v0 -> Just v0- _ -> Nothing- directRefSubst = directRefSubstitution directInputVars codVar groupedDirect- codSubst =- Optionals.match (findPairFirst cod) Maps.empty (\cv -> Logic.ifElse (Maps.member cv selfRefSubst) Maps.empty (Optionals.match (findSelfRefVar groupedByInput) Maps.empty (\refVar -> Logic.ifElse (Equality.equal cv refVar) Maps.empty (Maps.singleton cv refVar))))- domVars = Sets.fromList (Lists.bind doms (\d -> Sets.toList (collectTypeVars d)))- danglingSubst =- Optionals.match (findPairFirst cod) Maps.empty (\cv -> Logic.ifElse (Sets.member cv domVars) Maps.empty (Optionals.match (findSelfRefVar groupedByInput) Maps.empty (\refVar -> Maps.singleton cv (Core.TypeVariable refVar))))- in (Maps.union (Maps.union (Maps.union (nameMapToTypeMap selfRefSubst) (nameMapToTypeMap codSubst)) danglingSubst) (nameMapToTypeMap directRefSubst))--directRefSubstitution :: (Eq t0, Ord t0) => (S.Set t0 -> Maybe t0 -> M.Map t0 [t0] -> M.Map t0 t0)-directRefSubstitution directInputVars codVar grouped =- Lists.foldl (\subst -> \entry -> directRefSubstitution_processGroup directInputVars codVar subst (Pairs.first entry) (Pairs.second entry)) Maps.empty (Maps.toList grouped)--directRefSubstitution_processGroup :: (Eq t0, Ord t0) => (S.Set t0 -> Maybe t0 -> M.Map t0 t0 -> t0 -> [t0] -> M.Map t0 t0)-directRefSubstitution_processGroup directInputVars codVar subst inVar outVars =-- let selfRefCount = Lists.length (Lists.filter (\v -> Equality.equal v inVar) outVars)- nonSelfVars = Lists.filter (\v -> Logic.not (Equality.equal v inVar)) outVars- safeNonSelfVars =- Lists.filter (\v -> Logic.and (Logic.not (Sets.member v directInputVars)) (Logic.not (Equality.equal (Just v) codVar))) nonSelfVars- in (Logic.ifElse (Logic.and (Ordering.gte selfRefCount 2) (Logic.not (Lists.isEmpty safeNonSelfVars))) (Lists.foldl (\s -> \v -> Maps.insert v inVar s) subst safeNonSelfVars) subst)--domTypeArgs :: JavaEnvironment.Aliases -> Core.Type -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]-domTypeArgs aliases d cx g =-- let args = extractTypeApplicationArgs (Strip.deannotateType d)- in (Logic.ifElse (Logic.not (Lists.isEmpty args)) (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) args) (Right (javaTypeArgumentsForType d)))--elementJavaIdentifier :: Bool -> Bool -> JavaEnvironment.Aliases -> Core.Name -> Syntax.Identifier-elementJavaIdentifier isPrim isMethod aliases name =-- let qn = Names.qualifyName name- ns_ = Util.qualifiedNameModuleName qn- local = Util.qualifiedNameLocal qn- sep = Logic.ifElse isMethod "::" "."- in (Logic.ifElse isPrim (Syntax.Identifier (Strings.concat2 (Strings.concat2 (elementJavaIdentifier_qualify aliases ns_ (Formatting.capitalize local)) ".") JavaNames.applyMethodName)) (Optionals.match ns_ (Syntax.Identifier (Utils.sanitizeJavaName local)) (\n -> Syntax.Identifier (Strings.concat2 (Strings.concat2 (elementJavaIdentifier_qualify aliases (namespaceParent n) (elementsClassName n)) sep) (Utils.sanitizeJavaName local)))))--elementJavaIdentifier_qualify :: JavaEnvironment.Aliases -> Maybe Packaging.ModuleName -> String -> String-elementJavaIdentifier_qualify aliases mns s =- Syntax.unIdentifier (Utils.nameToJavaName aliases (Names.unqualifyName (Util.QualifiedName {- Util.qualifiedNameModuleName = mns,- Util.qualifiedNameLocal = s})))--elementsClassName :: Packaging.ModuleName -> String-elementsClassName ns =-- let nsStr = Packaging.unModuleName ns- parts = Strings.splitOn "." nsStr- in (Formatting.sanitizeWithUnderscores Language.reservedWords (Formatting.capitalize (Optionals.withDefault nsStr (Lists.last parts))))--elementsQualifiedName :: Packaging.ModuleName -> Core.Name-elementsQualifiedName ns =- Names.unqualifyName (Util.QualifiedName {- Util.qualifiedNameModuleName = (namespaceParent ns),- Util.qualifiedNameLocal = (elementsClassName ns)})--encodeApplication :: JavaEnvironment.JavaEnvironment -> Core.Application -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeApplication env app cx g0 =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- g = JavaEnvironment.javaEnvironmentGraph env- gathered = Analysis.gatherArgsWithTypeApps (Core.TermApplication app) [] []- fun = Pairs.first gathered- args = Pairs.first (Pairs.second gathered)- typeApps = Pairs.second (Pairs.second gathered)- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal fun))) (\mfunTyp -> Eithers.bind (Optionals.match mfunTyp (Checking.typeOfTerm cx g fun) (\t -> Right t)) (\funTyp ->- let arity = Arity.typeArity funTyp- deannotatedFun = Strip.deannotateTerm fun- calleeName =- case deannotatedFun of- Core.TermVariable v0 -> Just v0- _ -> Nothing- in (Eithers.bind (Optionals.match calleeName (Right args) (\cname -> annotateLambdaArgs cname typeApps args cx g)) (\annotatedArgs -> case deannotatedFun of- Core.TermVariable v0 -> Logic.ifElse (Optionals.isGiven (Maps.lookup v0 (Graph.graphPrimitives g))) (- let hargs = Lists.take arity annotatedArgs- rargs = Lists.drop arity annotatedArgs- in (Eithers.bind (functionCall env True v0 hargs [] cx g) (\initialCall -> Eithers.foldList (\acc -> \h -> Eithers.bind (encodeTerm env h cx g) (\jarg -> Right (applyJavaArg acc jarg))) initialCall rargs))) (Logic.ifElse (Logic.and (isRecursiveVariable aliases v0) (Logic.not (isLambdaBoundIn v0 (JavaEnvironment.aliasesLambdaVars aliases)))) (encodeApplication_fallback env aliases g typeApps (Core.applicationFunction app) (Core.applicationArgument app) cx g) (Eithers.bind (classifyDataReference v0 cx g) (\symClass ->- let methodArity =- case symClass of- JavaEnvironment.JavaSymbolClassHoistedLambda v1 -> v1- _ -> arity- hargs = Lists.take methodArity annotatedArgs- rargs = Lists.drop methodArity annotatedArgs- trusted = JavaEnvironment.aliasesTrustedTypeVars aliases- inScope = JavaEnvironment.aliasesInScopeTypeParams aliases- filteredTypeApps =- Logic.ifElse (Logic.or (Sets.isEmpty trusted) (Sets.isEmpty inScope)) [] (- let allVars = Sets.unions (Lists.map (\t -> collectTypeVars t) typeApps)- in (Logic.ifElse (Logic.not (Sets.isEmpty (Sets.difference allVars inScope))) [] (Logic.ifElse (Sets.isEmpty (Sets.difference allVars trusted)) typeApps [])))- in (Eithers.bind (Logic.ifElse (Lists.isEmpty filteredTypeApps) (Right []) (correctTypeApps g v0 hargs filteredTypeApps cx g)) (\safeTypeApps -> Eithers.bind (filterPhantomTypeArgs v0 safeTypeApps cx g) (\finalTypeApps -> Eithers.bind (functionCall env False v0 hargs finalTypeApps cx g) (\initialCall -> Eithers.foldList (\acc -> \h -> Eithers.bind (encodeTerm env h cx g) (\jarg -> Right (applyJavaArg acc jarg))) initialCall rargs)))))))- _ -> encodeApplication_fallback env aliases g typeApps (Core.applicationFunction app) (Core.applicationArgument app) cx g)))))--encodeApplication_fallback :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Graph.Graph -> [Core.Type] -> Core.Term -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeApplication_fallback env aliases gr typeApps lhs rhs cx g =- Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal lhs))) (\mt -> Eithers.bind (Optionals.match mt (Checking.typeOfTerm cx g lhs) (\typ -> Right typ)) (\t -> case (Strip.deannotateTypeParameters (Strip.deannotateType t)) of- Core.TypeFunction v0 ->- let dom = Core.functionTypeDomain v0- cod = Core.functionTypeCodomain v0- defaultExpr =- \_bug438_dflt -> Eithers.bind (encodeTerm env lhs cx g) (\jfun -> Eithers.bind (encodeTerm env rhs cx g) (\jarg -> Right (applyJavaArg jfun jarg)))- elimBranch =- \_bug438_elim -> Eithers.bind (encodeTerm env rhs cx g) (\jarg -> Eithers.bind (Logic.ifElse (Logic.not (Lists.isEmpty (javaTypeArgumentsForType dom))) (Right dom) (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal rhs))) (\mrt -> Optionals.match mrt (Eithers.bind (Checking.typeOfTerm cx g rhs) (\rt -> Right (Logic.ifElse (Logic.not (Lists.isEmpty (javaTypeArgumentsForType rt))) rt dom))) (\rt -> Right (Logic.ifElse (Logic.not (Lists.isEmpty (javaTypeArgumentsForType rt))) rt dom))))) (\enrichedDom -> encodeElimination env (Just jarg) enrichedDom cod (Strip.deannotateTerm lhs) cx g))- in case (Strip.deannotateAndDetypeTerm lhs) of- Core.TermProject _ -> elimBranch ()- Core.TermCases _ -> elimBranch ()- Core.TermUnwrap _ -> elimBranch ()- _ -> defaultExpr ()- _ -> Eithers.bind (encodeTerm env lhs cx g) (\jfun -> Eithers.bind (encodeTerm env rhs cx g) (\jarg -> Right (applyJavaArg jfun jarg)))))--encodeDefinitions :: S.Set String -> Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map Core.Name Syntax.CompilationUnit)-encodeDefinitions overlaySubs mod defs cx g =-- let aliases = Utils.importAliasesForModule overlaySubs mod- env =- JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = aliases,- JavaEnvironment.javaEnvironmentGraph = g}- pkg = Utils.javaPackageDeclaration (Packaging.moduleName mod)- partitioned = Environment.partitionDefinitions defs- typeDefs = Pairs.first partitioned- termDefs = Pairs.second partitioned- nonTypedefDefs =- Lists.filter (\td ->- let typ = Core.typeSchemeBody (Packaging.typeDefinitionBody td)- in (isSerializableJavaType typ)) typeDefs- in (Eithers.bind (Eithers.mapList (\td -> encodeTypeDefinition pkg aliases td cx g) nonTypedefDefs) (\typeUnits -> Eithers.bind (Logic.ifElse (Lists.isEmpty termDefs) (Right []) (Eithers.bind (Eithers.mapList (\td -> encodeTermDefinition env td cx g) termDefs) (\dataMembers -> Right [- constructElementsInterface mod dataMembers]))) (\termUnits -> Right (Maps.fromList (Lists.concat2 typeUnits termUnits)))))--encodeElimination :: JavaEnvironment.JavaEnvironment -> Maybe Syntax.Expression -> Core.Type -> Core.Type -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeElimination env marg dom cod elimTerm cx g =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- in case (Strip.deannotateAndDetypeTerm elimTerm) of- Core.TermProject v0 ->- let fname = Core.projectionFieldName v0- in (Eithers.bind (encodeType aliases Sets.empty dom cx g) (\jdom0 -> Eithers.bind (Utils.javaTypeToJavaReferenceType jdom0 cx) (\_ -> Optionals.match marg (- let projVar = Core.Name "projected"- jbody =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.variableToJavaIdentifier projVar) (Utils.javaIdentifier (Core.unName fname)))- in (Right (Utils.javaLambda projVar jbody))) (\jarg ->- let qual = Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary jarg)- in (Right (Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {- Syntax.fieldAccessQualifier = qual,- Syntax.fieldAccessIdentifier = (Utils.javaIdentifier (Core.unName fname))})))))))- Core.TermCases v0 ->- let tname = Core.caseStatementTypeName v0- def_ = Core.caseStatementDefault v0- fields = Core.caseStatementCases v0- in (Optionals.match marg (- let uVar = Core.Name "u"- domTypeArgs0 =- \ty -> \acc -> case (Strip.deannotateType ty) of- Core.TypeApplication v1 -> domTypeArgs0 (Core.applicationTypeFunction v1) (Lists.cons (Core.applicationTypeArgument v1) acc)- _ -> acc- domTypeArgs = domTypeArgs0 dom []- bareElim = Strip.deannotateAndDetypeTerm elimTerm- wrappedElimTerm =- Lists.foldl (\trm -> \t -> Core.TermTypeApplication (Core.TypeApplicationTerm {- Core.typeApplicationTermBody = trm,- Core.typeApplicationTermType = t})) bareElim domTypeArgs- typedLambda =- Core.TermLambda (Core.Lambda {- Core.lambdaParameter = uVar,- Core.lambdaDomain = (Just dom),- Core.lambdaBody = (Core.TermApplication (Core.Application {- Core.applicationFunction = wrappedElimTerm,- Core.applicationArgument = (Core.TermVariable uVar)}))})- in (encodeTerm env typedLambda cx g)) (\jarg ->- let prim = Utils.javaExpressionToJavaPrimary jarg- consId = innerClassRef aliases tname JavaNames.partialVisitorName- effectiveCod = cod- in (Eithers.bind (encodeType aliases Sets.empty effectiveCod cx g) (\jcod -> Eithers.bind (Utils.javaTypeToJavaReferenceType jcod cx) (\rt -> Eithers.bind (domTypeArgs aliases dom cx g) (\domArgs ->- let targs = typeArgsOrDiamond (Lists.concat2 domArgs [- Syntax.TypeArgumentReference rt])- in (Eithers.bind (Optionals.match def_ (Right []) (\d -> Eithers.bind (otherwiseBranch env aliases dom cod tname jcod domArgs d cx g) (\b -> Right [- b]))) (\otherwiseBranches -> Eithers.bind (Eithers.mapList (\f -> visitBranch env aliases dom tname jcod domArgs f cx g) fields) (\visitBranches ->- let body = Syntax.ClassBody (Lists.concat2 otherwiseBranches visitBranches)- visitor = Utils.javaConstructorCall (Utils.javaConstructorName consId (Just targs)) [] (Just body)- in (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Right prim)) (Syntax.Identifier JavaNames.acceptMethodName) [- visitor]))))))))))))- Core.TermUnwrap _ ->- let withArg =- \ja -> Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {- Syntax.fieldAccessQualifier = (Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary ja)),- Syntax.fieldAccessIdentifier = (Utils.javaIdentifier JavaNames.valueFieldName)})- in (Right (Optionals.match marg (- let wVar = Core.Name "wrapped"- wArg = Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier wVar)- in (Utils.javaLambda wVar (withArg wArg))) (\jarg -> withArg jarg)))- _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "unexpected " (Strings.concat2 "elimination case" (Strings.concat2 " in " "encodeElimination")))))--encodeFunction :: JavaEnvironment.JavaEnvironment -> Core.Type -> Core.Type -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeFunction env dom cod funTerm cx g =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- encodeLambdaFallback =- \env2 -> \lam ->- let lambdaVar = Core.lambdaParameter lam- body = Core.lambdaBody lam- in (Eithers.bind (analyzeJavaFunction env2 body cx g) (\fs ->- let bindings = Typing.functionStructureBindings fs- innerBody = Typing.functionStructureBody fs- env3 = Typing.functionStructureEnvironment fs- in (Eithers.bind (bindingsToStatements env3 bindings cx g) (\bindResult ->- let bindingStmts = Pairs.first bindResult- env4 = Pairs.second bindResult- in (Eithers.bind (encodeTerm env4 innerBody cx g) (\jbody ->- let lam1 =- Logic.ifElse (Lists.isEmpty bindings) (Utils.javaLambda lambdaVar jbody) (- let returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jbody))- in (Utils.javaLambdaFromBlock lambdaVar (Syntax.Block (Lists.concat2 bindingStmts [- returnSt]))))- in (applyCastIfSafe aliases (Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = cod})) lam1 cx g)))))))- in case (Strip.deannotateTerm funTerm) of- Core.TermProject _ -> encodeElimination env Nothing dom cod (Strip.deannotateTerm funTerm) cx g- Core.TermCases _ -> encodeElimination env Nothing dom cod (Strip.deannotateTerm funTerm) cx g- Core.TermUnwrap _ -> encodeElimination env Nothing dom cod (Strip.deannotateTerm funTerm) cx g- Core.TermLambda v0 -> withLambda env v0 (\env2 ->- let lambdaVar = Core.lambdaParameter v0- body = Core.lambdaBody v0- in case (Strip.deannotateTerm body) of- Core.TermLambda v1 -> case (Strip.deannotateType cod) of- Core.TypeFunction v2 ->- let dom2 = Core.functionTypeDomain v2- cod2 = Core.functionTypeCodomain v2- in (Eithers.bind (encodeFunction env2 dom2 cod2 (Core.TermLambda v1) cx g) (\innerJavaLambda ->- let lam1 = Utils.javaLambda lambdaVar innerJavaLambda- in (applyCastIfSafe aliases (Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = cod})) lam1 cx g)))- _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "expected function type for lambda body, but got: " (PrintCore.type_ cod))))- _ -> encodeLambdaFallback env2 v0)- _ -> Right (encodeLiteral (Core.LiteralString (Strings.concat2 "Unimplemented function variant: " (PrintCore.term funTerm))))--encodeFunctionFormTerm :: JavaEnvironment.JavaEnvironment -> [M.Map Core.Name Core.Term] -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeFunctionFormTerm env anns term cx g =-- let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mt -> Eithers.bind (Optionals.match mt (Optionals.match (tryInferFunctionType term) (Checking.typeOfTerm cx g term) (\inferredType -> Right inferredType)) (\t -> Right t)) (\typ -> case (Strip.deannotateType typ) of- Core.TypeFunction v0 -> encodeFunction env (Core.functionTypeDomain v0) (Core.functionTypeCodomain v0) term cx g- _ -> encodeNullaryConstant env typ term cx g)))--encodeFunctionPrimitiveByName :: JavaEnvironment.JavaEnvironment -> Core.Type -> Core.Type -> Core.Name -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeFunctionPrimitiveByName env dom cod name cx g =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- classWithApply = Syntax.unIdentifier (elementJavaIdentifier True False aliases name)- suffix = Strings.concat2 "." JavaNames.applyMethodName- className =- Strings.fromList (Lists.take (Math.sub (Strings.length classWithApply) (Strings.length suffix)) (Strings.toList classWithApply))- arity =- Arity.typeArity (Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = cod}))- in (Logic.ifElse (Ordering.lte arity 1) (Right (Utils.javaIdentifierToJavaExpression (Syntax.Identifier (Strings.concat [- className,- "::",- JavaNames.applyMethodName])))) (- let paramNames = Lists.map (\i -> Core.Name (Strings.concat2 "p" (Literals.printInt32 i))) (Math.range 0 arity)- paramExprs = Lists.map (\p -> Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier p)) paramNames- classId = Syntax.Identifier className- call =- Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic classId (Syntax.Identifier JavaNames.applyMethodName) paramExprs)- curried = buildCurriedLambda paramNames call- in (Eithers.bind (encodeType aliases Sets.empty (Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = cod})) cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression curried))))))))--encodeLiteral :: Core.Literal -> Syntax.Expression-encodeLiteral lit =- case lit of- Core.LiteralBinary v0 ->- let byteValues = Literals.binaryToBytes v0- in (Utils.javaArrayCreation Utils.javaBytePrimitiveType (Just (Utils.javaArrayInitializer (Lists.map (\w -> Utils.javaLiteralToJavaExpression (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int32ToBigint (Logic.ifElse (Ordering.gt w 127) (Math.sub w 256) w))))) byteValues))))- Core.LiteralBoolean v0 -> encodeLiteral_litExp (Utils.javaBoolean v0)- Core.LiteralDecimal v0 -> Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "java.math.BigDecimal") Nothing) [- encodeLiteral (Core.LiteralString (Literals.printDecimal v0))] Nothing- Core.LiteralFloat v0 -> encodeLiteral_encodeFloat v0- Core.LiteralInteger v0 -> encodeLiteral_encodeInteger v0- Core.LiteralString v0 -> encodeLiteral_litExp (Utils.javaString v0)--encodeLiteralType :: Core.LiteralType -> t0 -> t1 -> Either t2 Syntax.Type-encodeLiteralType lt cx g =- case lt of- Core.LiteralTypeBinary -> Right (Syntax.TypeReference (Syntax.ReferenceTypeArray (Syntax.ArrayType {- Syntax.arrayTypeDims = (Syntax.Dims [- []]),- Syntax.arrayTypeVariant = (Syntax.ArrayType_VariantPrimitive (Syntax.PrimitiveTypeWithAnnotations {- Syntax.primitiveTypeWithAnnotationsType = (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeByte)),- Syntax.primitiveTypeWithAnnotationsAnnotations = []}))})))- Core.LiteralTypeBoolean -> encodeLiteralType_simple "Boolean" cx g- Core.LiteralTypeDecimal -> Right (Utils.javaRefType [] (Just (JavaNames.javaPackageName [- "java",- "math"])) "BigDecimal")- Core.LiteralTypeFloat v0 -> case v0 of- Core.FloatTypeFloat32 -> encodeLiteralType_simple "Float" cx g- Core.FloatTypeFloat64 -> encodeLiteralType_simple "Double" cx g- Core.LiteralTypeInteger v0 -> case v0 of- Core.IntegerTypeBigint -> Right (Utils.javaRefType [] (Just (JavaNames.javaPackageName [- "java",- "math"])) "BigInteger")- Core.IntegerTypeInt8 -> encodeLiteralType_simple "Byte" cx g- Core.IntegerTypeInt16 -> encodeLiteralType_simple "Short" cx g- Core.IntegerTypeInt32 -> encodeLiteralType_simple "Integer" cx g- Core.IntegerTypeInt64 -> encodeLiteralType_simple "Long" cx g- Core.IntegerTypeUint8 -> encodeLiteralType_simple "Short" cx g- Core.IntegerTypeUint16 -> encodeLiteralType_simple "Character" cx g- Core.IntegerTypeUint32 -> encodeLiteralType_simple "Long" cx g- Core.IntegerTypeUint64 -> Right (Utils.javaRefType [] (Just (JavaNames.javaPackageName [- "java",- "math"])) "BigInteger")- Core.LiteralTypeString -> encodeLiteralType_simple "String" cx g--encodeLiteralType_simple :: String -> t0 -> t1 -> Either t2 Syntax.Type-encodeLiteralType_simple n cx g = Right (Utils.javaRefType [] Nothing n)--encodeLiteral_encodeFloat :: Core.FloatValue -> Syntax.Expression-encodeLiteral_encodeFloat f =- case f of- Core.FloatValueFloat32 v0 -> encodeLiteral_encodeFloat32 v0- Core.FloatValueFloat64 v0 -> encodeLiteral_encodeFloat64 v0--encodeLiteral_encodeFloat32 :: Float -> Syntax.Expression-encodeLiteral_encodeFloat32 v =-- let s = Literals.printFloat32 v- in (Logic.ifElse (Equality.equal s "NaN") (encodeLiteral_javaSpecialFloatExpr "Float" "NaN") (Logic.ifElse (Equality.equal s "Infinity") (encodeLiteral_javaSpecialFloatExpr "Float" "POSITIVE_INFINITY") (Logic.ifElse (Equality.equal s "-Infinity") (encodeLiteral_javaSpecialFloatExpr "Float" "NEGATIVE_INFINITY") (encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeFloatingPoint Syntax.FloatingPointTypeFloat)) (encodeLiteral_litExp (Syntax.LiteralFloatingPoint (Syntax.FloatingPointLiteral (Literals.float32ToFloat64 v))))))))--encodeLiteral_encodeFloat64 :: Double -> Syntax.Expression-encodeLiteral_encodeFloat64 v =-- let s = Literals.printFloat64 v- in (Logic.ifElse (Equality.equal s "NaN") (encodeLiteral_javaSpecialFloatExpr "Double" "NaN") (Logic.ifElse (Equality.equal s "Infinity") (encodeLiteral_javaSpecialFloatExpr "Double" "POSITIVE_INFINITY") (Logic.ifElse (Equality.equal s "-Infinity") (encodeLiteral_javaSpecialFloatExpr "Double" "NEGATIVE_INFINITY") (Logic.ifElse (Equality.equal s "-0.0") (encodeLiteral_javaParseDouble "-0.0") (encodeLiteral_litExp (Syntax.LiteralFloatingPoint (Syntax.FloatingPointLiteral v)))))))--encodeLiteral_encodeInteger :: Core.IntegerValue -> Syntax.Expression-encodeLiteral_encodeInteger i =- case i of- Core.IntegerValueBigint v0 -> Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "java.math.BigInteger") Nothing) [- encodeLiteral (Core.LiteralString (Literals.printBigint v0))] Nothing- Core.IntegerValueInt8 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeByte)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int8ToBigint v0))))- Core.IntegerValueInt16 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeShort)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int16ToBigint v0))))- Core.IntegerValueInt32 v0 -> encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int32ToBigint v0)))- Core.IntegerValueInt64 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeLong)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int64ToBigint v0))))- Core.IntegerValueUint8 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeShort)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.uint8ToBigint v0))))- Core.IntegerValueUint16 v0 -> encodeLiteral_litExp (Syntax.LiteralCharacter v0)- Core.IntegerValueUint32 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeLong)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.uint32ToBigint v0))))- Core.IntegerValueUint64 v0 -> Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "java.math.BigInteger") Nothing) [- encodeLiteral (Core.LiteralString (Literals.printBigint (Literals.uint64ToBigint v0)))] Nothing--encodeLiteral_javaParseDouble :: String -> Syntax.Expression-encodeLiteral_javaParseDouble value =- Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "Double") (Syntax.Identifier "parseDouble") [- encodeLiteral (Core.LiteralString value)])--encodeLiteral_javaSpecialFloatExpr :: String -> String -> Syntax.Expression-encodeLiteral_javaSpecialFloatExpr className fieldName =- Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {- Syntax.expressionNameQualifier = (Just (Syntax.AmbiguousName [- Syntax.Identifier className])),- Syntax.expressionNameIdentifier = (Syntax.Identifier fieldName)})--encodeLiteral_litExp :: Syntax.Literal -> Syntax.Expression-encodeLiteral_litExp l = Utils.javaLiteralToJavaExpression l--encodeLiteral_primCast :: Syntax.PrimitiveType -> Syntax.Expression -> Syntax.Expression-encodeLiteral_primCast pt expr =- Utils.javaCastExpressionToJavaExpression (Utils.javaCastPrimitive pt (Utils.javaExpressionToJavaUnaryExpression expr))--encodeNullaryConstant :: t0 -> t1 -> Core.Term -> t2 -> t3 -> Either Errors.Error t4-encodeNullaryConstant env typ funTerm cx g =- Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "unexpected " (Strings.concat2 "nullary function" (Strings.concat2 " in " (PrintCore.term funTerm))))))--encodeNullaryConstant_typeArgsFromReturnType :: JavaEnvironment.Aliases -> Core.Type -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]-encodeNullaryConstant_typeArgsFromReturnType aliases t cx g =- case (Strip.deannotateType t) of- Core.TypeSet v0 -> Eithers.bind (encodeType aliases Sets.empty v0 cx g) (\jst -> Eithers.bind (Utils.javaTypeToJavaReferenceType jst cx) (\rt -> Right [- Syntax.TypeArgumentReference rt]))- Core.TypeList v0 -> Eithers.bind (encodeType aliases Sets.empty v0 cx g) (\jlt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jlt cx) (\rt -> Right [- Syntax.TypeArgumentReference rt]))- Core.TypeOptional v0 -> Eithers.bind (encodeType aliases Sets.empty v0 cx g) (\jmt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jmt cx) (\rt -> Right [- Syntax.TypeArgumentReference rt]))- Core.TypeMap v0 -> Eithers.bind (encodeType aliases Sets.empty (Core.mapTypeKeys v0) cx g) (\jkt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jkt cx) (\rk -> Eithers.bind (encodeType aliases Sets.empty (Core.mapTypeValues v0) cx g) (\jvt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jvt cx) (\rv -> Right [- Syntax.TypeArgumentReference rk,- (Syntax.TypeArgumentReference rv)]))))- _ -> Right []--encodeNullaryPrimitiveByName :: JavaEnvironment.JavaEnvironment -> Core.Type -> Core.Name -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeNullaryPrimitiveByName env typ name cx g =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- in (Eithers.bind (encodeNullaryConstant_typeArgsFromReturnType aliases typ cx g) (\targs -> Logic.ifElse (Lists.isEmpty targs) (- let header = Syntax.MethodInvocation_HeaderSimple (Syntax.MethodName (elementJavaIdentifier True False aliases name))- in (Right (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = header,- Syntax.methodInvocationArguments = []})))) (- let fullName = Syntax.unIdentifier (elementJavaIdentifier True False aliases name)- parts = Strings.splitOn "." fullName- className = Syntax.Identifier (Strings.join "." (Optionals.withDefault [] (Lists.init parts)))- methodName = Syntax.Identifier (Optionals.withDefault fullName (Lists.last parts))- in (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs className methodName targs []))))))--encodeTerm :: JavaEnvironment.JavaEnvironment -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeTerm env term cx g = encodeTermInternal env [] [] term cx g--encodeTermDefinition :: JavaEnvironment.JavaEnvironment -> Packaging.TermDefinition -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.InterfaceMemberDeclarationWithComments-encodeTermDefinition env tdef cx g =-- let name = Packaging.termDefinitionName tdef- term0 = Packaging.termDefinitionBody tdef- in (Eithers.bind (Annotations.getTermDescription cx g term0) (\mDoc ->- let ts =- Optionals.match (Packaging.termDefinitionSignature tdef) (Core.TypeScheme {- Core.typeSchemeVariables = [],- Core.typeSchemeBody = (Core.TypeVariable (Core.Name "hydra.core.Unit")),- Core.typeSchemeConstraints = Maps.empty}) (\sig -> Scoping.termSignatureToTypeScheme sig)- term = Variables.unshadowVariables term0- in (Eithers.bind (analyzeJavaFunction env term cx g) (\fs ->- let schemeVars = Lists.filter (\v -> isSimpleName v) (Core.typeSchemeVariables ts)- termVars = Typing.functionStructureTypeParams fs- schemeTypeVars = collectTypeVars (Core.typeSchemeBody ts)- usedSchemeVars = Lists.filter (\v -> Sets.member v schemeTypeVars) schemeVars- tparams = Logic.ifElse (Lists.isEmpty usedSchemeVars) termVars usedSchemeVars- params = Typing.functionStructureParams fs- bindings = Typing.functionStructureBindings fs- body = Typing.functionStructureBody fs- doms = Typing.functionStructureDomains fs- env2 = Typing.functionStructureEnvironment fs- schemeType = Core.typeSchemeBody ts- numParams = Lists.length params- peelResult = peelDomainsAndCod numParams schemeType- schemeDoms = Pairs.first peelResult- cod = Pairs.second peelResult- schemeVarSet = Sets.fromList tparams- in (Eithers.bind (Logic.ifElse (Lists.isEmpty tparams) (Right Maps.empty) (buildSubstFromAnnotations schemeVarSet term cx g)) (\typeVarSubst ->- let overgenSubst = detectAccumulatorUnification schemeDoms cod tparams- overgenVarSubst =- Maps.fromList (Optionals.givens (Lists.map (\entry ->- let k = Pairs.first entry- v = Pairs.second entry- in case v of- Core.TypeVariable v0 -> Just (k, v0)- _ -> Nothing) (Maps.toList overgenSubst)))- fixedCod = Logic.ifElse (Maps.isEmpty overgenSubst) cod (substituteTypeVarsWithTypes overgenSubst cod)- fixedDoms =- Logic.ifElse (Maps.isEmpty overgenSubst) schemeDoms (Lists.map (\d -> substituteTypeVarsWithTypes overgenSubst d) schemeDoms)- fixedTparams =- Logic.ifElse (Maps.isEmpty overgenSubst) tparams (Lists.filter (\v -> Logic.not (Maps.member v overgenSubst)) tparams)- constraints = Core.typeSchemeConstraints ts- jparams = Lists.map (\v -> Utils.javaTypeParameter (Formatting.capitalize (Core.unName v))) fixedTparams- aliases2base = JavaEnvironment.javaEnvironmentAliases env2- trustedVars = Sets.unions (Lists.map (\d -> collectTypeVars d) (Lists.concat2 fixedDoms [- fixedCod]))- fixedSchemeVarSet = Sets.fromList fixedTparams- aliases2 =- JavaEnvironment.Aliases {- JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases2base),- JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases2base),- JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases2base),- JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases2base),- JavaEnvironment.aliasesInScopeTypeParams = fixedSchemeVarSet,- JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases2base),- JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases2base),- JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases2base),- JavaEnvironment.aliasesLambdaVars = (Sets.union (JavaEnvironment.aliasesLambdaVars aliases2base) (Sets.fromList params)),- JavaEnvironment.aliasesTypeVarSubst = (Maps.union overgenVarSubst typeVarSubst),- JavaEnvironment.aliasesTrustedTypeVars = (Sets.intersection trustedVars fixedSchemeVarSet),- JavaEnvironment.aliasesMethodCodomain = (Just fixedCod),- JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases2base)}- env2WithTypeParams =- JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = aliases2,- JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env2)}- in (Eithers.bind (bindingsToStatements env2WithTypeParams bindings cx g) (\bindResult ->- let bindingStmts = Pairs.first bindResult- env3 = Pairs.second bindResult- in (Eithers.bind (Logic.ifElse (Maps.isEmpty overgenSubst) (Right body) (applyOvergenSubstToTermAnnotations overgenSubst body cx g)) (\body_ ->- let annotatedBody = propagateTypesInAppChain fixedCod fixedCod body_- in (Eithers.bind (Eithers.mapList (\pair -> Eithers.bind (encodeType aliases2 Sets.empty (Pairs.first pair) cx g) (\jdom -> Right (Utils.javaTypeToJavaFormalParameter jdom (Pairs.second pair)))) (Lists.zip fixedDoms params)) (\jformalParams -> Eithers.bind (encodeType aliases2 Sets.empty fixedCod cx g) (\jcod ->- let result = Utils.javaTypeToJavaResult jcod- mods = [- Syntax.InterfaceMethodModifierStatic]- jname = Utils.sanitizeJavaName (Formatting.decapitalize (Names.localNameOf name))- isTCO = Logic.and (Logic.not (Lists.isEmpty params)) (Analysis.isSelfTailRecursive name body)- in (Eithers.bind (Logic.ifElse isTCO (- let tcoSuffix = "_tco"- snapshotNames = Lists.map (\p -> Core.Name (Strings.concat2 (Core.unName p) tcoSuffix)) params- tcoVarRenames = Maps.fromList (Lists.zip params snapshotNames)- snapshotDecls =- Lists.map (\pair -> Utils.finalVarDeclarationStatement (Utils.variableToJavaIdentifier (Pairs.second pair)) (Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier (Pairs.first pair)))) (Lists.zip params snapshotNames)- tcoBody =- Logic.ifElse (Lists.isEmpty bindings) annotatedBody (Core.TermLet (Core.Let {- Core.letBindings = bindings,- Core.letBody = annotatedBody}))- in (Eithers.bind (encodeTermTCO env2WithTypeParams name params tparams tcoVarRenames 0 tcoBody cx g) (\tcoStmts ->- let whileBodyStmts = Lists.concat2 snapshotDecls tcoStmts- whileBodyBlock =- Syntax.StatementWithoutTrailing (Syntax.StatementWithoutTrailingSubstatementBlock (Syntax.Block whileBodyStmts))- noCond = Nothing- whileStmt =- Syntax.BlockStatementStatement (Syntax.StatementWhile (Syntax.WhileStatement {- Syntax.whileStatementCond = noCond,- Syntax.whileStatementBody = whileBodyBlock}))- in (Right [- whileStmt])))) (Eithers.bind (encodeTerm env3 annotatedBody cx g) (\jbody ->- let returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jbody))- in (Right (Lists.concat2 bindingStmts [- returnSt]))))) (\methodBody ->- let imdMember = Utils.interfaceMethodDeclaration mods jparams jname jformalParams result (Just methodBody)- in (Right (Optionals.match mDoc (noInterfaceComment imdMember) (\doc -> withInterfaceCommentString doc imdMember))))))))))))))))))--encodeTermInternal :: JavaEnvironment.JavaEnvironment -> [M.Map Core.Name Core.Term] -> [Syntax.Type] -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeTermInternal env anns tyapps term cx g0 =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- g = JavaEnvironment.javaEnvironmentGraph env- encode = \t -> encodeTerm env t cx g- in case term of- Core.TermAnnotated v0 -> encodeTermInternal env (Lists.cons (Annotations.getAnnotationMap (Core.annotatedTermAnnotation v0)) anns) tyapps (Core.annotatedTermBody v0) cx g- Core.TermApplication v0 -> encodeApplication env v0 cx g- Core.TermEither v0 -> Eithers.bind (Logic.ifElse (Lists.isEmpty tyapps) (Right Nothing) (Eithers.bind (takeTypeArgs "either" 2 tyapps cx g) (\ta -> Right (Just ta)))) (\mtargs ->- let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mEitherType ->- let branchTypes =- Optionals.bind mEitherType (\etyp -> case (Strip.deannotateType etyp) of- Core.TypeEither v1 -> Just (Core.eitherTypeLeft v1, (Core.eitherTypeRight v1))- _ -> Nothing)- encodeWithType =- \branchType -> \t1 ->- let annotated = Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ branchType)) t1- in (encodeTermInternal env anns [] annotated cx g)- eitherCall =- \methodName -> \expr -> Optionals.match mtargs (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.overlay.java.util.Either") (Syntax.Identifier methodName) [- expr])) (\targs -> Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.Either") (Syntax.Identifier methodName) targs [- expr]))- in (Eithers.either (\term1 -> Eithers.bind (Optionals.match branchTypes (encode term1) (\bt -> encodeWithType (Pairs.first bt) term1)) (\expr -> Right (eitherCall "left" expr))) (\term1 -> Eithers.bind (Optionals.match branchTypes (encode term1) (\bt -> encodeWithType (Pairs.second bt) term1)) (\expr -> Right (eitherCall "right" expr))) v0))))- Core.TermLambda _ -> encodeFunctionFormTerm env anns term cx g- Core.TermProject _ -> encodeFunctionFormTerm env anns term cx g- Core.TermCases _ -> encodeFunctionFormTerm env anns term cx g- Core.TermUnwrap _ -> encodeFunctionFormTerm env anns term cx g- Core.TermLet v0 ->- let bindings = Core.letBindings v0- body = Core.letBody v0- in (Logic.ifElse (Lists.isEmpty bindings) (encodeTermInternal env anns [] body cx g) (Eithers.bind (bindingsToStatements env bindings cx g) (\bindResult ->- let bindingStmts = Pairs.first bindResult- env2 = Pairs.second bindResult- in (Eithers.bind (encodeTermInternal env2 anns [] body cx g) (\jbody ->- let returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jbody))- block = Syntax.Block (Lists.concat2 bindingStmts [- returnSt])- nullaryLambda =- Syntax.ExpressionLambda (Syntax.LambdaExpression {- Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersTuple []),- Syntax.lambdaExpressionBody = (Syntax.LambdaBodyBlock block)})- combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- g2 = JavaEnvironment.javaEnvironmentGraph env2- aliases2 = JavaEnvironment.javaEnvironmentAliases env2- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mt -> Eithers.bind (Optionals.match mt (Checking.typeOfTerm cx g2 body) (\t -> Right t)) (\letType -> Eithers.bind (encodeType aliases2 Sets.empty letType cx g) (\jLetType -> Eithers.bind (Utils.javaTypeToJavaReferenceType jLetType cx) (\rt ->- let supplierRt =- Syntax.ReferenceTypeClassOrInterface (Syntax.ClassOrInterfaceTypeClass (Utils.javaClassType [- rt] JavaNames.javaUtilFunctionPackageName "Supplier"))- castExpr =- Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression supplierRt (Utils.javaExpressionToJavaUnaryExpression nullaryLambda))- in (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Right (Utils.javaExpressionToJavaPrimary castExpr))) (Syntax.Identifier "get") [])))))))))))))- Core.TermList v0 -> Logic.ifElse (Lists.isEmpty v0) (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.overlay.java.util.ConsList") (Syntax.Identifier "empty") []))) (Eithers.bind (takeTypeArgs "list" 1 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.ConsList") (Syntax.Identifier "empty") targs []))))) (Eithers.bind (Eithers.mapList encode v0) (\jels -> Eithers.bind (collectionTypeArgs "list" 1 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.ConsList") (Syntax.Identifier "of") targs jels)))))- Core.TermLiteral v0 -> Right (encodeLiteral v0)- Core.TermMap v0 -> Logic.ifElse (Maps.isEmpty v0) (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.overlay.java.util.PersistentMap") (Syntax.Identifier "empty") []))) (Eithers.bind (takeTypeArgs "map" 2 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.PersistentMap") (Syntax.Identifier "empty") targs []))))) (Eithers.bind (Eithers.mapList encode (Maps.keys v0)) (\jkeys -> Eithers.bind (Eithers.mapList encode (Maps.elems v0)) (\jvals ->- let pairExprs =- Lists.map (\kv -> Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "java.util.Map") (Syntax.Identifier "entry") [- Pairs.first kv,- (Pairs.second kv)])) (Lists.zip jkeys jvals)- in (Eithers.bind (collectionTypeArgs "map" 2 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.PersistentMap") (Syntax.Identifier "ofEntries") targs pairExprs)))))))- Core.TermOptional v0 -> Optionals.match v0 (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.overlay.java.util.Optional") (Syntax.Identifier "none") []))) (Eithers.bind (takeTypeArgs "optional" 1 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.Optional") (Syntax.Identifier "none") targs []))))) (\term1 -> Eithers.bind (encode term1) (\expr -> Eithers.bind (collectionTypeArgs "optional" 1 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.Optional") (Syntax.Identifier "given") targs [- expr])))))- Core.TermPair v0 -> Eithers.bind (encode (Pairs.first v0)) (\jterm1 -> Eithers.bind (encode (Pairs.second v0)) (\jterm2 -> Eithers.bind (Logic.ifElse (Lists.isEmpty tyapps) (Right Nothing) (Eithers.bind (Eithers.mapList (\jt -> Utils.javaTypeToJavaReferenceType jt cx) tyapps) (\rts -> Right (Just (Syntax.TypeArgumentsOrDiamondArguments (Lists.map (\rt -> Syntax.TypeArgumentReference rt) rts)))))) (\mtargs -> Right (Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "hydra.overlay.java.util.Pair") mtargs) [- jterm1,- jterm2] Nothing))))- Core.TermRecord v0 ->- let recName = Core.recordTypeName v0- mRecordType = Eithers.either (\_ -> Nothing) (\t -> Just t) (Resolution.requireType cx g recName)- strippedRecTyp = Optionals.map (\recTyp -> stripForalls (Strip.deannotateType recTyp)) mRecordType- mFieldTypeMap =- Optionals.bind strippedRecTyp (\bodyTyp -> case bodyTyp of- Core.TypeRecord v1 -> Just (Maps.fromList (Lists.map (\ft -> (Core.fieldTypeName ft, (Core.fieldTypeType ft))) v1))- _ -> Nothing)- combinedAnnsRec = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnnsRec)) (\mAnnotType ->- let mTypeSubst =- Optionals.bind mAnnotType (\annTyp -> Optionals.bind mRecordType (\recTyp ->- let args = extractTypeApplicationArgs (Strip.deannotateType annTyp)- params = collectForallParams (Strip.deannotateType recTyp)- in (Logic.ifElse (Logic.or (Lists.isEmpty args) (Logic.not (Equality.equal (Lists.length args) (Lists.length params)))) Nothing (Just (Maps.fromList (Lists.zip params args))))))- encodeField =- \fld -> Optionals.match mFieldTypeMap (encode (Core.fieldTerm fld)) (\ftmap ->- let mftyp = Maps.lookup (Core.fieldName fld) ftmap- in (Optionals.match mftyp (encode (Core.fieldTerm fld)) (\ftyp ->- let resolvedType = Optionals.match mTypeSubst ftyp (\subst -> applySubstFull subst ftyp)- annotatedFieldTerm =- Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ resolvedType)) (Core.fieldTerm fld)- in (encodeTermInternal env anns [] annotatedFieldTerm cx g))))- in (Eithers.bind (Eithers.mapList encodeField (Core.recordFields v0)) (\fieldExprs ->- let consId = Utils.nameToJavaName aliases recName- in (Eithers.bind (Logic.ifElse (Logic.not (Lists.isEmpty tyapps)) (Eithers.bind (Eithers.mapList (\jt -> Utils.javaTypeToJavaReferenceType jt cx) tyapps) (\rts -> Right (Just (Syntax.TypeArgumentsOrDiamondArguments (Lists.map (\rt -> Syntax.TypeArgumentReference rt) rts))))) (- let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp -> Optionals.match mtyp (Right Nothing) (\annTyp ->- let typeArgs = extractTypeApplicationArgs (Strip.deannotateType annTyp)- in (Logic.ifElse (Lists.isEmpty typeArgs) (Right Nothing) (Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Utils.javaTypeToJavaReferenceType jt cx)) typeArgs) (\jTypeArgs -> Right (Just (Syntax.TypeArgumentsOrDiamondArguments (Lists.map (\rt -> Syntax.TypeArgumentReference rt) jTypeArgs))))))))))) (\mtargs -> Right (Utils.javaConstructorCall (Utils.javaConstructorName consId mtargs) fieldExprs Nothing)))))))- Core.TermSet v0 -> Logic.ifElse (Sets.isEmpty v0) (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.overlay.java.util.PersistentSet") (Syntax.Identifier "empty") []))) (Eithers.bind (takeTypeArgs "set" 1 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.PersistentSet") (Syntax.Identifier "empty") targs []))))) (- let slist = Sets.toList v0- in (Eithers.bind (Eithers.mapList encode slist) (\jels -> Eithers.bind (collectionTypeArgs "set" 1 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.PersistentSet") (Syntax.Identifier "of") targs jels))))))- Core.TermTypeLambda v0 -> withTypeLambda env v0 (\env2 ->- let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp ->- let annotatedBody =- Optionals.match mtyp (Core.typeLambdaBody v0) (\t -> case t of- Core.TypeForall v1 -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ (Core.forallTypeBody v1))) (Core.typeLambdaBody v0)- _ -> Core.typeLambdaBody v0)- in (encodeTerm env2 annotatedBody cx g))))- Core.TermInject v0 ->- let injTypeName = Core.injectionTypeName v0- injField = Core.injectionField v0- injFieldName = Core.fieldName injField- injFieldTerm = Core.fieldTerm injField- typeId = Syntax.unIdentifier (Utils.nameToJavaName aliases injTypeName)- consId =- Syntax.Identifier (Strings.concat [- typeId,- ".",- (Utils.sanitizeJavaName (Formatting.capitalize (Core.unName injFieldName)))])- in (Eithers.bind (isFieldUnitType injTypeName injFieldName cx g) (\fieldIsUnit -> Eithers.bind (Logic.ifElse (Logic.or (Predicates.isUnitTerm (Strip.deannotateTerm injFieldTerm)) fieldIsUnit) (Right []) (Eithers.bind (encode injFieldTerm) (\ex -> Right [- ex]))) (\args -> Right (Utils.javaConstructorCall (Utils.javaConstructorName consId Nothing) args Nothing))))- Core.TermVariable v0 -> Optionals.match (Maps.lookup v0 (Graph.graphPrimitives g)) (encodeVariable env v0 cx g) (\_ ->- let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mt -> Eithers.bind (Optionals.match mt (Checking.typeOfTerm cx g term) (\t -> Right t)) (\typ -> case (Strip.deannotateType typ) of- Core.TypeFunction v1 -> encodeFunctionPrimitiveByName env (Core.functionTypeDomain v1) (Core.functionTypeCodomain v1) v0 cx g- _ -> encodeNullaryPrimitiveByName env typ v0 cx g))))- Core.TermUnit -> Right (Utils.javaLiteralToJavaExpression Syntax.LiteralNull)- Core.TermWrap v0 -> Eithers.bind (encode (Core.wrappedTermBody v0)) (\jarg -> Right (Utils.javaConstructorCall (Utils.javaConstructorName (Utils.nameToJavaName aliases (Core.wrappedTermTypeName v0)) Nothing) [- jarg] Nothing))- Core.TermTypeApplication v0 ->- let atyp = Core.typeApplicationTermType v0- body = Core.typeApplicationTermBody v0- in (Eithers.bind (encodeType aliases Sets.empty atyp cx g) (\jatyp ->- let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns- in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp -> Eithers.bind (Optionals.match mtyp (Checking.typeOfTerm cx g term) (\t -> Right t)) (\typ ->- let collected0 = collectTypeApps0 body [- atyp]- innermostBody0 = Pairs.first collected0- allTypeArgs0 = Pairs.second collected0- in (Eithers.bind (correctCastType innermostBody0 allTypeArgs0 typ cx g) (\correctedTyp ->- let collected = collectTypeApps body [- atyp]- innermostBody = Pairs.first collected- allTypeArgs = Pairs.second collected- in case innermostBody of- Core.TermVariable v1 -> Eithers.bind (classifyDataReference v1 cx g) (\cls -> typeAppNullaryOrHoisted env aliases anns tyapps jatyp body correctedTyp v1 cls allTypeArgs cx g)- Core.TermEither v1 -> Logic.ifElse (Equality.equal (Lists.length allTypeArgs) 2) (- let eitherBranchTypes =- (Optionals.withDefault correctedTyp (Lists.at 0 allTypeArgs), (Optionals.withDefault correctedTyp (Lists.at 1 allTypeArgs)))- in (Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Utils.javaTypeToJavaReferenceType jt cx)) allTypeArgs) (\jTypeArgs ->- let eitherTargs = Lists.map (\rt -> Syntax.TypeArgumentReference rt) jTypeArgs- encodeEitherBranch =- \branchType -> \t1 ->- let annotated = Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ branchType)) t1- in (encodeTermInternal env anns [] annotated cx g)- in (Eithers.either (\term1 -> Eithers.bind (encodeEitherBranch (Pairs.first eitherBranchTypes) term1) (\expr -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.Either") (Syntax.Identifier "left") eitherTargs [- expr])))) (\term1 -> Eithers.bind (encodeEitherBranch (Pairs.second eitherBranchTypes) term1) (\expr -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.overlay.java.util.Either") (Syntax.Identifier "right") eitherTargs [- expr])))) v1)))) (typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g)- _ -> typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g)))))))- _ -> Right (encodeLiteral (Core.LiteralString "Unimplemented term variant"))--encodeTermTCO :: JavaEnvironment.JavaEnvironment -> Core.Name -> [Core.Name] -> [Core.Name] -> M.Map Core.Name Core.Name -> Int -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error [Syntax.BlockStatement]-encodeTermTCO env0 funcName paramNames tparams tcoVarRenames tcoDepth term cx g =-- let aliases0 = JavaEnvironment.javaEnvironmentAliases env0- env =- JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = JavaEnvironment.Aliases {- JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases0),- JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases0),- JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases0),- JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases0),- JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases0),- JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases0),- JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases0),- JavaEnvironment.aliasesVarRenames = (Maps.union tcoVarRenames (JavaEnvironment.aliasesVarRenames aliases0)),- JavaEnvironment.aliasesLambdaVars = (JavaEnvironment.aliasesLambdaVars aliases0),- JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases0),- JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases0),- JavaEnvironment.aliasesMethodCodomain = (JavaEnvironment.aliasesMethodCodomain aliases0),- JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases0)},- JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env0)}- stripped = Strip.deannotateAndDetypeTerm term- gathered = Analysis.gatherApplications stripped- gatherArgs = Pairs.first gathered- gatherFun = Pairs.second gathered- strippedFun = Strip.deannotateAndDetypeTerm gatherFun- isSelfCall =- case strippedFun of- Core.TermVariable v0 -> Equality.equal v0 funcName- _ -> False- in (Logic.ifElse (Logic.and isSelfCall (Equality.equal (Lists.length gatherArgs) (Lists.length paramNames))) (- let changePairs =- Lists.filter (\pair -> Logic.not (case (Strip.deannotateAndDetypeTerm (Pairs.second pair)) of- Core.TermVariable v0 -> Equality.equal v0 (Pairs.first pair)- _ -> False)) (Lists.zip paramNames gatherArgs)- changedParams = Lists.map Pairs.first changePairs- in (Eithers.bind (Eithers.mapList (\pair -> encodeTerm env (Pairs.second pair) cx g) changePairs) (\jChangedArgs ->- let assignments =- Lists.map (\pair ->- let paramName = Pairs.first pair- jArg = Pairs.second pair- in (Syntax.BlockStatementStatement (Utils.javaAssignmentStatement (Syntax.LeftHandSideExpressionName (Utils.javaIdentifierToJavaExpressionName (Utils.variableToJavaIdentifier paramName))) jArg))) (Lists.zip changedParams jChangedArgs)- continueStmt =- Syntax.BlockStatementStatement (Syntax.StatementWithoutTrailing (Syntax.StatementWithoutTrailingSubstatementContinue (Syntax.ContinueStatement Nothing)))- in (Right (Lists.concat2 assignments [- continueStmt]))))) (case stripped of- Core.TermLet v0 ->- let letBindings = Core.letBindings v0- letBody = Core.letBody v0- in (Eithers.bind (bindingsToStatements env letBindings cx g) (\bindResult ->- let letStmts = Pairs.first bindResult- envAfterLet = Pairs.second bindResult- in (Eithers.bind (encodeTermTCO envAfterLet funcName paramNames tparams tcoVarRenames tcoDepth letBody cx g) (\tcoBodyStmts -> Right (Lists.concat2 letStmts tcoBodyStmts)))))- _ ->- let gathered2 = Analysis.gatherApplications term- args2 = Pairs.first gathered2- body2 = Pairs.second gathered2- in (Logic.ifElse (Equality.equal (Lists.length args2) 1) (- let arg = Optionals.withDefault Core.TermUnit (Lists.head args2)- in case (Strip.deannotateAndDetypeTerm body2) of- Core.TermCases v0 ->- let aliases = JavaEnvironment.javaEnvironmentAliases env- tname = Core.caseStatementTypeName v0- dflt = Core.caseStatementDefault v0- cases_ = Core.caseStatementCases v0- tnameIsGeneric =- Optionals.match (Maps.lookup tname (Graph.graphSchemaTypes g)) False (\ts -> Logic.not (Lists.isEmpty (Core.typeSchemeVariables ts)))- domArgs =- Logic.ifElse tnameIsGeneric (Lists.map (\tp -> Utils.typeParameterToTypeArgument (Utils.javaTypeParameter (Formatting.capitalize (Core.unName tp)))) tparams) []- in (Eithers.bind (encodeTerm env arg cx g) (\jArgRaw ->- let depthSuffix = Logic.ifElse (Equality.equal tcoDepth 0) "" (Literals.printInt32 tcoDepth)- matchVarId =- Utils.javaIdentifier (Strings.concat [- "_tco_match_",- (Formatting.decapitalize (Names.localNameOf tname)),- depthSuffix])- matchDecl = Utils.varDeclarationStatement matchVarId jArgRaw- jArg = Utils.javaIdentifierToJavaExpression matchVarId- in (Eithers.bind (Eithers.mapList (\field ->- let fieldName = Core.caseAlternativeName field- variantRefType =- Utils.nameToJavaReferenceType aliases True domArgs tname (Just (Formatting.capitalize (Core.unName fieldName)))- variantRawType = Utils.nameToJavaReferenceType aliases True [] tname (Just (Formatting.capitalize (Core.unName fieldName)))- in case (Strip.deannotateTerm (Core.caseAlternativeHandler field)) of- Core.TermLambda v1 -> withLambda env v1 (\env2 ->- let lambdaParam = Core.lambdaParameter v1- branchBody = Core.lambdaBody v1- env3 = insertBranchVar lambdaParam env2- varId = Utils.variableToJavaIdentifier lambdaParam- castExpr =- Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression variantRefType (Utils.javaExpressionToJavaUnaryExpression jArg))- localDecl = Utils.varDeclarationStatement varId castExpr- isBranchTailCall = Analysis.isTailRecursiveInTailPosition funcName branchBody- in (Eithers.bind (Logic.ifElse isBranchTailCall (encodeTermTCO env3 funcName paramNames tparams tcoVarRenames (Math.add tcoDepth 1) branchBody cx g) (Eithers.bind (analyzeJavaFunction env3 branchBody cx g) (\fs ->- let bindings = Typing.functionStructureBindings fs- innerBody = Typing.functionStructureBody fs- env4 = Typing.functionStructureEnvironment fs- in (Eithers.bind (bindingsToStatements env4 bindings cx g) (\bindResult ->- let bindingStmts = Pairs.first bindResult- env5 = Pairs.second bindResult- in (Eithers.bind (encodeTerm env5 innerBody cx g) (\jret ->- let returnStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jret))- in (Right (Lists.concat2 bindingStmts [- returnStmt]))))))))) (\bodyStmts ->- let relExpr =- Utils.javaInstanceOf (Utils.javaUnaryExpressionToJavaRelationalExpression (Utils.javaExpressionToJavaUnaryExpression jArg)) variantRawType- condExpr = Utils.javaRelationalExpressionToJavaExpression relExpr- blockStmts = Lists.cons localDecl bodyStmts- ifBody = Syntax.StatementWithoutTrailing (Syntax.StatementWithoutTrailingSubstatementBlock (Syntax.Block blockStmts))- in (Right (Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {- Syntax.ifThenStatementExpression = condExpr,- Syntax.ifThenStatementStatement = ifBody})))))))- _ -> Left (Errors.ErrorOther (Errors.OtherError "TCO: case branch is not a lambda"))) cases_) (\ifBlocks -> Eithers.bind (Optionals.match dflt (Right [- Syntax.BlockStatementStatement (Utils.javaThrowIllegalStateException [- Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions [- Utils.javaStringMultiplicativeExpression "Non-exhaustive patterns when matching"])])]) (\d -> Eithers.bind (encodeTerm env d cx g) (\dExpr -> Right [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just dExpr))]))) (\defaultStmt -> Right (Lists.concat [- [- matchDecl],- ifBlocks,- defaultStmt]))))))- _ -> Eithers.bind (encodeTerm env term cx g) (\expr -> Right [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just expr))])) (Eithers.bind (encodeTerm env term cx g) (\expr -> Right [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just expr))])))))--encodeType :: JavaEnvironment.Aliases -> S.Set Core.Name -> Core.Type -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Type-encodeType aliases boundVars t cx g =-- let inScopeTypeParams = JavaEnvironment.aliasesInScopeTypeParams aliases- typeVarSubst = JavaEnvironment.aliasesTypeVarSubst aliases- in case (Strip.deannotateType t) of- Core.TypeApplication v0 -> Eithers.bind (encodeType aliases boundVars (Core.applicationTypeFunction v0) cx g) (\jlhs -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.applicationTypeArgument v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jrhs -> Utils.addJavaTypeParameter jrhs jlhs cx))- Core.TypeFunction v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.functionTypeDomain v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jdom -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.functionTypeCodomain v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jcod -> Right (Utils.javaRefType [- jdom,- jcod] JavaNames.javaUtilFunctionPackageName "Function")))- Core.TypeForall v0 -> Eithers.bind (encodeType aliases (Sets.insert (Core.forallTypeParameter v0) boundVars) (Core.forallTypeBody v0) cx g) (\jbody -> Utils.addJavaTypeParameter (Utils.javaTypeVariable (Core.unName (Core.forallTypeParameter v0))) jbody cx)- Core.TypeList v0 -> Eithers.bind (encodeType aliases boundVars v0 cx g) (\jet -> Eithers.bind (Eithers.bind (Right jet) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\rt -> Right (Utils.javaRefType [- rt] JavaNames.javaUtilPackageName "List")))- Core.TypeEffect v0 -> encodeType aliases boundVars v0 cx g- Core.TypeLiteral v0 -> encodeLiteralType v0 cx g- Core.TypeEither v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.eitherTypeLeft v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jlt -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.eitherTypeRight v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jrt -> Right (Utils.javaRefType [- jlt,- jrt] JavaNames.hydraUtilPackageName "Either")))- Core.TypeMap v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.mapTypeKeys v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jkt -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.mapTypeValues v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jvt -> Right (Utils.javaRefType [- jkt,- jvt] JavaNames.javaUtilPackageName "Map")))- Core.TypePair v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.pairTypeFirst v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jfirst -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Core.pairTypeSecond v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jsecond -> Right (Utils.javaRefType [- jfirst,- jsecond] JavaNames.hydraUtilPackageName "Pair")))- Core.TypeUnit -> Right (Utils.javaRefType [] JavaNames.javaLangPackageName "Void")- Core.TypeRecord v0 -> Logic.ifElse (Lists.isEmpty v0) (Right (Utils.javaRefType [] JavaNames.javaLangPackageName "Void")) (Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous record type")))- Core.TypeOptional v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars v0 cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jot -> Right (Utils.javaRefType [- jot] JavaNames.hydraUtilPackageName "Optional"))- Core.TypeSet v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars v0 cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jst -> Right (Utils.javaRefType [- jst] JavaNames.javaUtilPackageName "Set"))- Core.TypeUnion _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous union type"))- Core.TypeVariable v0 ->- let name = Optionals.withDefault v0 (Maps.lookup v0 typeVarSubst)- in (Eithers.bind (encodeType_resolveIfTypedef aliases boundVars inScopeTypeParams name cx g) (\resolved -> Optionals.match resolved (Right (Logic.ifElse (Logic.or (Sets.member name boundVars) (Sets.member name inScopeTypeParams)) (Syntax.TypeReference (Utils.javaTypeVariable (Core.unName name))) (Logic.ifElse (isLambdaBoundVariable name) (Syntax.TypeReference (Utils.javaTypeVariable (Core.unName name))) (Logic.ifElse (isUnresolvedInferenceVar name) (Syntax.TypeReference (Syntax.ReferenceTypeClassOrInterface (Syntax.ClassOrInterfaceTypeClass (Utils.javaClassType [] JavaNames.javaLangPackageName "Object")))) (Syntax.TypeReference (Utils.nameToJavaReferenceType aliases True [] name Nothing)))))) (\resolvedType -> encodeType aliases boundVars resolvedType cx g)))- Core.TypeWrap _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous wrap type"))- _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "can't encode unsupported type in Java: " (PrintCore.type_ t))))--encodeTypeDefinition :: Syntax.PackageDeclaration -> JavaEnvironment.Aliases -> Packaging.TypeDefinition -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (Core.Name, Syntax.CompilationUnit)-encodeTypeDefinition pkg aliases tdef cx g =-- let name = Packaging.typeDefinitionName tdef- typ = Core.typeSchemeBody (Packaging.typeDefinitionBody tdef)- serializable = isSerializableJavaType typ- imports =- Logic.ifElse serializable [- Syntax.ImportDeclarationSingleType (Syntax.SingleTypeImportDeclaration (Utils.javaTypeName (Syntax.Identifier "java.io.Serializable")))] []- in (Eithers.bind (toClassDecl False serializable aliases [] name typ cx g) (\decl -> Eithers.bind (Annotations.getTypeDescription cx g typ) (\comment ->- let tdecl =- Syntax.TopLevelClassOrInterfaceDeclarationWithComments {- Syntax.topLevelClassOrInterfaceDeclarationWithCommentsValue = (Syntax.TopLevelClassOrInterfaceDeclarationClass decl),- Syntax.topLevelClassOrInterfaceDeclarationWithCommentsComments = comment}- in (Right (- name,- (Syntax.CompilationUnitOrdinary (Syntax.OrdinaryCompilationUnit {- Syntax.ordinaryCompilationUnitPackage = (Just pkg),- Syntax.ordinaryCompilationUnitImports = imports,- Syntax.ordinaryCompilationUnitTypes = [- tdecl]})))))))--encodeType_resolveIfTypedef :: t0 -> S.Set Core.Name -> S.Set Core.Name -> Core.Name -> t1 -> Graph.Graph -> Either t2 (Maybe Core.Type)-encodeType_resolveIfTypedef aliases boundVars inScopeTypeParams name cx g =- Logic.ifElse (Logic.or (Sets.member name boundVars) (Sets.member name inScopeTypeParams)) (Right Nothing) (Logic.ifElse (isLambdaBoundVariable name) (Right Nothing) (- let schemaTypes = Graph.graphSchemaTypes g- in (Optionals.match (Maps.lookup name schemaTypes) (Right Nothing) (\ts -> Logic.ifElse (Logic.not (Lists.isEmpty (Core.typeSchemeVariables ts))) (Right Nothing) (case (Strip.deannotateType (Core.typeSchemeBody ts)) of- Core.TypeRecord _ -> Right Nothing- Core.TypeUnion _ -> Right Nothing- Core.TypeWrap _ -> Right Nothing- _ -> Right (Just (Core.typeSchemeBody ts)))))))--encodeVariable :: JavaEnvironment.JavaEnvironment -> Core.Name -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeVariable env name cx g =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- resolvedName = Utils.lookupJavaVarName aliases name- jid = Utils.javaIdentifier (Core.unName resolvedName)- in (Logic.ifElse (Sets.member name (JavaEnvironment.aliasesBranchVars aliases)) (Right (Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {- Syntax.fieldAccessQualifier = (Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary (Utils.javaIdentifierToJavaExpression jid))),- Syntax.fieldAccessIdentifier = (Utils.javaIdentifier JavaNames.valueFieldName)}))) (Logic.ifElse (Logic.and (Equality.equal name (Core.Name (Strings.concat [- JavaNames.instanceName,- "_",- JavaNames.valueFieldName]))) (isRecursiveVariable aliases name)) (- let instanceExpr = Utils.javaIdentifierToJavaExpression (Utils.javaIdentifier JavaNames.instanceName)- in (Right (Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {- Syntax.fieldAccessQualifier = (Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary instanceExpr)),- Syntax.fieldAccessIdentifier = (Utils.javaIdentifier JavaNames.valueFieldName)})))) (Logic.ifElse (Logic.and (isRecursiveVariable aliases name) (Logic.not (isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)))) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Left (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = jid}))) (Syntax.Identifier JavaNames.getMethodName) []))) (Logic.ifElse (Logic.and (Sets.member name (JavaEnvironment.aliasesThunkedVars aliases)) (Logic.not (isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)))) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Left (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = jid}))) (Syntax.Identifier JavaNames.getMethodName) []))) (Logic.ifElse (isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)) (- let actualName = findMatchingLambdaVar name (JavaEnvironment.aliasesLambdaVars aliases)- resolvedActual = Utils.lookupJavaVarName aliases actualName- in (Right (Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier resolvedActual)))) (Logic.ifElse (Sets.member name (JavaEnvironment.aliasesInScopeJavaVars aliases)) (Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False False aliases resolvedName))) (Eithers.bind (classifyDataReference name cx g) (\cls -> case cls of- JavaEnvironment.JavaSymbolClassHoistedLambda v0 -> encodeVariable_hoistedLambdaCase aliases name v0 cx g- JavaEnvironment.JavaSymbolClassLocalVariable -> Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False False aliases resolvedName))- JavaEnvironment.JavaSymbolClassConstant -> Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False False aliases name))- JavaEnvironment.JavaSymbolClassNullaryFunction -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation Nothing (elementJavaIdentifier False False aliases name) []))- JavaEnvironment.JavaSymbolClassUnaryFunction -> Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False True aliases name))))))))))--encodeVariable_buildCurried :: [Core.Name] -> Syntax.Expression -> Syntax.Expression-encodeVariable_buildCurried params inner =- Optionals.withDefault inner (Optionals.map (\p -> Utils.javaLambda (Pairs.first p) (encodeVariable_buildCurried (Pairs.second p) inner)) (Lists.uncons params))--encodeVariable_hoistedLambdaCase :: JavaEnvironment.Aliases -> Core.Name -> Int -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression-encodeVariable_hoistedLambdaCase aliases name arity cx g =-- let paramNames = Lists.map (\i -> Core.Name (Strings.concat2 "p" (Literals.printInt32 i))) (Math.range 0 arity)- paramExprs = Lists.map (\pn -> Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier pn)) paramNames- call =- Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation Nothing (elementJavaIdentifier False False aliases name) paramExprs)- lam = encodeVariable_buildCurried paramNames call- in (Eithers.bind (Right (Lexical.lookupBinding g name)) (\mel -> Optionals.match mel (Right lam) (\el -> Optionals.match (Core.bindingTypeScheme el) (Right lam) (\ts ->- let typ = Core.typeSchemeBody ts- in (Eithers.bind (encodeType aliases Sets.empty typ cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression lam))))))))))--eqClause :: String -> Core.FieldType -> Syntax.InclusiveOrExpression-eqClause tmpName ft =-- let fname = Core.unName (Core.fieldTypeName ft)- ftype = Core.fieldTypeType ft- in (Logic.ifElse (isBinaryType ftype) (arraysEqualsClause tmpName fname) (Logic.ifElse (isBigIntegerType ftype) (compareToZeroClause tmpName fname) (equalsClause tmpName fname)))--equalsClause :: String -> String -> Syntax.InclusiveOrExpression-equalsClause tmpName fname =-- let thisArg =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))- otherArg =- Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier tmpName) (Utils.javaIdentifier fname))- header =- Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Objects"))),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.equalsMethodName)})- in (Utils.javaPostfixExpressionToJavaInclusiveOrExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = header,- Syntax.methodInvocationArguments = [- thisArg,- otherArg]})))--extractArgType :: t0 -> Core.Type -> Core.Type-extractArgType _lhs typ =- case typ of- Core.TypeApplication v0 -> case (Core.applicationTypeFunction v0) of- Core.TypeApplication _ -> Core.applicationTypeArgument v0- _ -> typ- _ -> typ--extractDirectReturn :: S.Set Core.Name -> Core.Type -> [(Core.Name, Core.Name)]-extractDirectReturn tparamSet t = extractDirectReturn_go tparamSet t--extractDirectReturn_go :: S.Set Core.Name -> Core.Type -> [(Core.Name, Core.Name)]-extractDirectReturn_go tparamSet t =- case (Strip.deannotateType t) of- Core.TypeFunction v0 ->- let dom = Strip.deannotateType (Core.functionTypeDomain v0)- cod = Core.functionTypeCodomain v0- in case dom of- Core.TypeVariable v1 -> Logic.ifElse (Sets.member v1 tparamSet) (case (Strip.deannotateType cod) of- Core.TypeFunction v2 ->- let midArg = Strip.deannotateType (Core.functionTypeDomain v2)- retPart = Strip.deannotateType (Core.functionTypeCodomain v2)- in case midArg of- Core.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) [] (case retPart of- Core.TypeVariable v4 -> Logic.ifElse (Sets.member v4 tparamSet) [- (v1, v4)] []- _ -> [])- _ -> case retPart of- Core.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) [- (v1, v3)] []- _ -> []- _ -> []) (extractDirectReturn_go tparamSet cod)- _ -> extractDirectReturn_go tparamSet cod- _ -> []--extractInOutPair :: Core.Type -> [(Core.Name, Core.Name)]-extractInOutPair t =- case (Strip.deannotateType t) of- Core.TypeFunction v0 -> case (Strip.deannotateType (Core.functionTypeDomain v0)) of- Core.TypeVariable v1 ->- let retType = unwrapReturnType (Core.functionTypeCodomain v0)- in case (Strip.deannotateType retType) of- Core.TypePair v2 -> case (Strip.deannotateType (Core.pairTypeFirst v2)) of- Core.TypeVariable v3 -> [- (v1, v3)]- _ -> []- _ -> []- _ -> []- _ -> []--extractTypeApplicationArgs :: Core.Type -> [Core.Type]-extractTypeApplicationArgs typ = Lists.reverse (extractTypeApplicationArgs_go typ)--extractTypeApplicationArgs_go :: Core.Type -> [Core.Type]-extractTypeApplicationArgs_go t =- case t of- Core.TypeApplication v0 -> Lists.cons (Core.applicationTypeArgument v0) (extractTypeApplicationArgs_go (Core.applicationTypeFunction v0))- _ -> []--fieldToStringPart :: Core.FieldType -> [Syntax.MultiplicativeExpression]-fieldToStringPart f =-- let fname = Core.unName (Core.fieldTypeName f)- nameLiteral = Utils.javaStringMultiplicativeExpression (Strings.concat2 fname "=")- valueExpr =- Syntax.MultiplicativeExpressionUnary (Utils.javaExpressionToJavaUnaryExpression (Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))))- in [- Utils.javaStringMultiplicativeExpression ", ",- nameLiteral,- valueExpr]--fieldTypeToFormalParam :: JavaEnvironment.Aliases -> Core.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.FormalParameter-fieldTypeToFormalParam aliases ft cx g =- Eithers.bind (encodeType aliases Sets.empty (Core.fieldTypeType ft) cx g) (\jt -> Right (Utils.javaTypeToJavaFormalParameter jt (Core.fieldTypeName ft)))--filterByFlags :: [t0] -> [Bool] -> [t0]-filterByFlags xs flags = Lists.map (\p -> Pairs.first p) (Lists.filter (\p -> Pairs.second p) (Lists.zip xs flags))--filterPhantomTypeArgs :: Core.Name -> [Core.Type] -> t0 -> Graph.Graph -> Either t1 [Core.Type]-filterPhantomTypeArgs calleeName allTypeArgs cx g =- Eithers.bind (Right (Lexical.lookupBinding g calleeName)) (\mel -> Optionals.match mel (Right allTypeArgs) (\el -> Optionals.match (Core.bindingTypeScheme el) (Right allTypeArgs) (\ts ->- let schemeVars = Lists.filter (\v -> isSimpleName v) (Core.typeSchemeVariables ts)- schemeTypeVars = collectTypeVars (Core.typeSchemeBody ts)- schemeType = Core.typeSchemeBody ts- nParams = countFunctionParams schemeType- peeled = peelDomainTypes nParams schemeType- calleeDoms = Pairs.first peeled- calleeCod = Pairs.second peeled- overgenSubst = detectAccumulatorUnification calleeDoms calleeCod schemeVars- keepFlags = Lists.map (\v -> Logic.and (Sets.member v schemeTypeVars) (Logic.not (Maps.member v overgenSubst))) schemeVars- in (Logic.ifElse (Logic.not (Equality.equal (Lists.length schemeVars) (Lists.length allTypeArgs))) (Right allTypeArgs) (Right (filterPhantomTypeArgs_filterAndApply allTypeArgs keepFlags overgenSubst))))))--filterPhantomTypeArgs_filterAndApply :: [Core.Type] -> [Bool] -> M.Map Core.Name Core.Type -> [Core.Type]-filterPhantomTypeArgs_filterAndApply allTypeArgs keepFlags overgenSubst =-- let filtered = Lists.map (\p -> Pairs.first p) (Lists.filter (\p -> Pairs.second p) (Lists.zip allTypeArgs keepFlags))- in (Logic.ifElse (Logic.not (Maps.isEmpty overgenSubst)) (Lists.map (\t -> substituteTypeVarsWithTypes overgenSubst t) filtered) filtered)--findMatchingLambdaVar :: Core.Name -> S.Set Core.Name -> Core.Name-findMatchingLambdaVar name lambdaVars =- Logic.ifElse (Sets.member name lambdaVars) name (Logic.ifElse (isLambdaBoundIn_isQualified name) (Optionals.withDefault name (Lists.find (\lv -> Logic.and (isLambdaBoundIn_isQualified lv) (Equality.equal (Names.localNameOf lv) (Names.localNameOf name))) (Sets.toList lambdaVars))) (Logic.ifElse (Sets.member (Core.Name (Names.localNameOf name)) lambdaVars) (Core.Name (Names.localNameOf name)) name))--findPairFirst :: Core.Type -> Maybe Core.Name-findPairFirst t =- case (Strip.deannotateType t) of- Core.TypePair v0 -> case (Strip.deannotateType (Core.pairTypeFirst v0)) of- Core.TypeVariable v1 -> Just v1- _ -> Nothing- _ -> Nothing--findSelfRefVar :: (Eq t0, Ord t0) => (M.Map t0 [t0] -> Maybe t0)-findSelfRefVar grouped =-- let selfRefs = Lists.filter (\entry -> Lists.member (Pairs.first entry) (Pairs.second entry)) (Maps.toList grouped)- in (Optionals.map (\entry -> Pairs.first entry) (Lists.head selfRefs))--first20Primes :: [Integer]-first20Primes =- [- 2,- 3,- 5,- 7,- 11,- 13,- 17,- 19,- 23,- 29,- 31,- 37,- 41,- 43,- 47,- 53,- 59,- 61,- 67,- 71]--flattenApps :: Core.Term -> [Core.Term] -> ([Core.Term], Core.Term)-flattenApps t acc =- case (Strip.deannotateTerm t) of- Core.TermApplication v0 -> flattenApps (Core.applicationFunction v0) (Lists.cons (Core.applicationArgument v0) acc)- _ -> (acc, t)--flattenBindings :: [Core.Binding] -> [Core.Binding]-flattenBindings bindings =- Lists.bind bindings (\b -> case (Strip.deannotateTerm (Core.bindingTerm b)) of- Core.TermLet v0 -> Lists.concat2 (flattenBindings (Core.letBindings v0)) [- Core.Binding {- Core.bindingName = (Core.bindingName b),- Core.bindingTerm = (Core.letBody v0),- Core.bindingTypeScheme = (Core.bindingTypeScheme b)}]- _ -> [- b])--freshJavaName :: Core.Name -> S.Set Core.Name -> Core.Name-freshJavaName base avoid = freshJavaName_go base avoid 2--freshJavaName_go :: Core.Name -> S.Set Core.Name -> Int -> Core.Name-freshJavaName_go base avoid i =-- let candidate = Core.Name (Strings.concat2 (Core.unName base) (Literals.printInt32 i))- in (Logic.ifElse (Sets.member candidate avoid) (freshJavaName_go base avoid (Math.add i 1)) candidate)--functionCall :: JavaEnvironment.JavaEnvironment -> Bool -> Core.Name -> [Core.Term] -> [Core.Type] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-functionCall env isPrim name args typeApps cx g =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- isLambdaBound = isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)- in (Eithers.bind (Eithers.mapList (\arg -> encodeTerm env arg cx g) args) (\jargs0 ->- let wrapResult = wrapLazyArguments g name jargs0- jargs = Pairs.first wrapResult- mMethodOverride = Pairs.second wrapResult- in (Logic.ifElse (Logic.or (isLocalVariable name) isLambdaBound) (Eithers.bind (encodeVariable env name cx g) (\baseExpr -> Right (Lists.foldl (\acc -> \jarg -> applyJavaArg acc jarg) baseExpr jargs))) (- let overrideMethodName =- \jid -> Optionals.match mMethodOverride jid (\m ->- let s = Syntax.unIdentifier jid- in (Syntax.Identifier (Strings.concat2 (Strings.fromList (Lists.take (Math.sub (Strings.length s) (Strings.length JavaNames.applyMethodName)) (Strings.toList s))) m)))- in (Logic.ifElse (Lists.isEmpty typeApps) (- let header =- Syntax.MethodInvocation_HeaderSimple (Syntax.MethodName (overrideMethodName (elementJavaIdentifier isPrim False aliases name)))- in (Right (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = header,- Syntax.methodInvocationArguments = jargs})))) (- let qn = Names.qualifyName name- mns = Util.qualifiedNameModuleName qn- localName = Util.qualifiedNameLocal qn- in (Optionals.match mns (- let header =- Syntax.MethodInvocation_HeaderSimple (Syntax.MethodName (overrideMethodName (elementJavaIdentifier isPrim False aliases name)))- in (Right (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = header,- Syntax.methodInvocationArguments = jargs})))) (\ns_ ->- let classId = Utils.nameToJavaName aliases (elementsQualifiedName ns_)- methodId =- Logic.ifElse isPrim (overrideMethodName (Syntax.Identifier (Strings.concat2 (Syntax.unIdentifier (Utils.nameToJavaName aliases (Names.unqualifyName (Util.QualifiedName {- Util.qualifiedNameModuleName = (Just ns_),- Util.qualifiedNameLocal = (Formatting.capitalize localName)})))) (Strings.concat2 "." JavaNames.applyMethodName)))) (Syntax.Identifier (Utils.sanitizeJavaName localName))- in (Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) typeApps) (\jTypeArgs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs classId methodId jTypeArgs jargs))))))))))))--getCodomain :: M.Map Core.Name Core.Term -> t0 -> Graph.Graph -> Either Errors.Error Core.Type-getCodomain ann cx g = Eithers.map (\ft -> Core.functionTypeCodomain ft) (getFunctionType ann cx g)--getFunctionType :: M.Map Core.Name Core.Term -> t0 -> Graph.Graph -> Either Errors.Error Core.FunctionType-getFunctionType ann cx g =- Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g ann)) (\mt -> Optionals.match mt (Left (Errors.ErrorOther (Errors.OtherError "type annotation is required for function and elimination terms in Java"))) (\t -> case t of- Core.TypeFunction v0 -> Right v0- _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "expected function type, got: " (PrintCore.type_ t))))))--groupPairsByFirst :: Ord t0 => ([(t0, t1)] -> M.Map t0 [t1])-groupPairsByFirst pairs =- Lists.foldl (\m -> \p ->- let k = Pairs.first p- v = Pairs.second p- in (Maps.alter (\mv -> Optionals.match mv (Just [- v]) (\vs -> Just (Lists.concat2 vs [- v]))) k m)) Maps.empty pairs--hashCodeCompareExpr :: String -> String -> Syntax.Expression-hashCodeCompareExpr otherVar fname =-- let header =- Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "Integer"))),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier "compare")})- thisHashCode =- Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantExpression (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Syntax.Identifier (Utils.sanitizeJavaName fname))})),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hashCodeMethodName)})),- Syntax.methodInvocationArguments = []})- otherHashCode =- Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantExpression (Utils.fieldExpression (Utils.javaIdentifier otherVar) (Utils.javaIdentifier fname))),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hashCodeMethodName)})),- Syntax.methodInvocationArguments = []})- in (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = header,- Syntax.methodInvocationArguments = [- thisHashCode,- otherHashCode]}))--hashCodeMultPair :: Integer -> Core.Name -> Syntax.MultiplicativeExpression-hashCodeMultPair i fname =-- let fnameStr = Core.unName fname- lhs =- Syntax.MultiplicativeExpressionUnary (Utils.javaPrimaryToJavaUnaryExpression (Utils.javaLiteralToJavaPrimary (Utils.javaInt i)))- rhs =- Utils.javaPostfixExpressionToJavaUnaryExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Objects"))),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hashCodeMethodName)})),- Syntax.methodInvocationArguments = [- Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Syntax.Identifier (Utils.sanitizeJavaName fnameStr))})]}))- in (Syntax.MultiplicativeExpressionTimes (Syntax.MultiplicativeExpression_Binary {- Syntax.multiplicativeExpression_BinaryLhs = lhs,- Syntax.multiplicativeExpression_BinaryRhs = rhs}))--hydraOrdinalMethod :: Maybe Int -> Syntax.ClassBodyDeclaration-hydraOrdinalMethod ordinal =-- let mods =- Logic.ifElse (Optionals.isNone ordinal) [- Syntax.MethodModifierPublic,- Syntax.MethodModifierAbstract] [- Syntax.MethodModifierPublic]- anns = Logic.ifElse (Optionals.isNone ordinal) [] [- Utils.overrideAnnotation]- result = Utils.javaTypeToJavaResult Utils.javaIntType- body =- Optionals.map (\n -> [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaIntExpression (Literals.int32ToBigint n))))]) ordinal- in (Utils.methodDeclaration mods [] anns JavaNames.hydraOrdinalMethodName [] result body)--innerClassRef :: JavaEnvironment.Aliases -> Core.Name -> String -> Syntax.Identifier-innerClassRef aliases name local =-- let id = Syntax.unIdentifier (Utils.nameToJavaName aliases name)- in (Syntax.Identifier (Strings.concat2 (Strings.concat2 id ".") local))--insertBranchVar :: Core.Name -> JavaEnvironment.JavaEnvironment -> JavaEnvironment.JavaEnvironment-insertBranchVar name env =-- let aliases = JavaEnvironment.javaEnvironmentAliases env- in JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = JavaEnvironment.Aliases {- JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases),- JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases),- JavaEnvironment.aliasesBranchVars = (Sets.insert name (JavaEnvironment.aliasesBranchVars aliases)),- JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases),- JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases),- JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases),- JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases),- JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases),- JavaEnvironment.aliasesLambdaVars = (JavaEnvironment.aliasesLambdaVars aliases),- JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases),- JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases),- JavaEnvironment.aliasesMethodCodomain = Nothing,- JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases)},- JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env)}--interfaceTypes :: Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> [Syntax.InterfaceType]-interfaceTypes isSer aliases tparams elName =-- let javaSerializableType =- Syntax.InterfaceType (Syntax.ClassType {- Syntax.classTypeAnnotations = [],- Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,- Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Serializable"),- Syntax.classTypeArguments = []})- selfTypeArg =- Syntax.TypeArgumentReference (Utils.nameToJavaReferenceType aliases False (Lists.map (\tp_ -> Utils.typeParameterToTypeArgument tp_) tparams) elName Nothing)- javaComparableType =- Syntax.InterfaceType (Syntax.ClassType {- Syntax.classTypeAnnotations = [],- Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,- Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Comparable"),- Syntax.classTypeArguments = [- selfTypeArg]})- in (Logic.ifElse isSer [- javaSerializableType,- javaComparableType] [])--isBigIntegerType :: Core.Type -> Bool-isBigIntegerType typ =- case (Strip.deannotateType typ) of- Core.TypeLiteral v0 -> case v0 of- Core.LiteralTypeInteger v1 -> case v1 of- Core.IntegerTypeBigint -> True- _ -> False- _ -> False- _ -> False--isBinaryType :: Core.Type -> Bool-isBinaryType typ =- case (Strip.deannotateType typ) of- Core.TypeLiteral v0 -> case v0 of- Core.LiteralTypeBinary -> True- _ -> False- _ -> False--isFieldUnitType :: Core.Name -> Core.Name -> t0 -> Graph.Graph -> Either t1 Bool-isFieldUnitType typeName fieldName cx g =-- let schemaTypes = Graph.graphSchemaTypes g- in (Optionals.match (Maps.lookup typeName schemaTypes) (Right False) (\ts -> case (Strip.deannotateType (Core.typeSchemeBody ts)) of- Core.TypeUnion v0 -> Right (Optionals.match (Lists.find (\ft -> Equality.equal (Core.fieldTypeName ft) fieldName) v0) False (\ft -> Predicates.isUnitType (Strip.deannotateType (Core.fieldTypeType ft))))- _ -> Right False))--isLambdaBoundIn :: Core.Name -> S.Set Core.Name -> Bool-isLambdaBoundIn name lambdaVars =- Logic.or (Sets.member name lambdaVars) (Logic.or (Logic.and (isLambdaBoundIn_isQualified name) (Optionals.isGiven (Lists.find (\lv -> Logic.and (isLambdaBoundIn_isQualified lv) (Equality.equal (Names.localNameOf lv) (Names.localNameOf name))) (Sets.toList lambdaVars)))) (Logic.and (Logic.not (isLambdaBoundIn_isQualified name)) (Sets.member (Core.Name (Names.localNameOf name)) lambdaVars)))--isLambdaBoundIn_isQualified :: Core.Name -> Bool-isLambdaBoundIn_isQualified n = Optionals.isGiven (Util.qualifiedNameModuleName (Names.qualifyName n))--isLambdaBoundVariable :: Core.Name -> Bool-isLambdaBoundVariable name =-- let v = Core.unName name- in (Ordering.lte (Strings.length v) 4)--isLocalVariable :: Core.Name -> Bool-isLocalVariable name = Optionals.isNone (Util.qualifiedNameModuleName (Names.qualifyName name))--isNonComparableType :: Core.Type -> Bool-isNonComparableType typ =- case (Strip.deannotateType typ) of- Core.TypeEither _ -> True- Core.TypeFunction _ -> True- Core.TypeUnit -> True- Core.TypeLiteral v0 -> case v0 of- Core.LiteralTypeBinary -> True- _ -> False- Core.TypeForall v0 -> isNonComparableType (Core.forallTypeBody v0)- _ -> False--isRecursiveVariable :: JavaEnvironment.Aliases -> Core.Name -> Bool-isRecursiveVariable aliases name = Sets.member name (JavaEnvironment.aliasesRecursiveVars aliases)--isSerializableJavaType :: Core.Type -> Bool-isSerializableJavaType typ = Predicates.isNominalType typ--isSimpleName :: Core.Name -> Bool-isSimpleName name = Equality.equal (Lists.length (Strings.splitOn "." (Core.unName name))) 1--isUnresolvedInferenceVar :: Core.Name -> Bool-isUnresolvedInferenceVar name =-- let chars = Strings.toList (Core.unName name)- in (Optionals.withDefault False (Optionals.map (\p ->- let firstCh = Pairs.first p- rest = Pairs.second p- in (Logic.ifElse (Logic.not (Equality.equal firstCh 116)) False (Logic.and (Logic.not (Lists.isEmpty rest)) (Lists.isEmpty (Lists.filter (\c -> Logic.not (isUnresolvedInferenceVar_isDigit c)) rest))))) (Lists.uncons chars)))--isUnresolvedInferenceVar_isDigit :: Int -> Bool-isUnresolvedInferenceVar_isDigit c = Logic.and (Ordering.gte c 48) (Ordering.lte c 57)--java11Features :: JavaEnvironment.JavaFeatures-java11Features = JavaEnvironment.JavaFeatures {- JavaEnvironment.javaFeaturesSupportsDiamondOperator = True}--java8Features :: JavaEnvironment.JavaFeatures-java8Features = JavaEnvironment.JavaFeatures {- JavaEnvironment.javaFeaturesSupportsDiamondOperator = False}--javaComparableRefType :: Syntax.ReferenceType-javaComparableRefType =- Syntax.ReferenceTypeClassOrInterface (Syntax.ClassOrInterfaceTypeClass (Syntax.ClassType {- Syntax.classTypeAnnotations = [],- Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,- Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Comparable"),- Syntax.classTypeArguments = []}))--javaEnvGetGraph :: JavaEnvironment.JavaEnvironment -> Graph.Graph-javaEnvGetGraph env = JavaEnvironment.javaEnvironmentGraph env--javaEnvSetGraph :: Graph.Graph -> JavaEnvironment.JavaEnvironment -> JavaEnvironment.JavaEnvironment-javaEnvSetGraph g env =- JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = (JavaEnvironment.javaEnvironmentAliases env),- JavaEnvironment.javaEnvironmentGraph = g}--javaFeatures :: JavaEnvironment.JavaFeatures-javaFeatures = java11Features--javaIdentifierToString :: Syntax.Identifier -> String-javaIdentifierToString id = Syntax.unIdentifier id--javaTypeArgumentsForNamedType :: Core.Name -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]-javaTypeArgumentsForNamedType tname cx g =- Eithers.bind (Resolution.requireType cx g tname) (\typ -> Right (Lists.map (\tp_ -> Utils.typeParameterToTypeArgument tp_) (javaTypeParametersForType typ)))--javaTypeArgumentsForType :: Core.Type -> [Syntax.TypeArgument]-javaTypeArgumentsForType typ = Lists.reverse (Lists.map Utils.typeParameterToTypeArgument (javaTypeParametersForType typ))--javaTypeParametersForType :: Core.Type -> [Syntax.TypeParameter]-javaTypeParametersForType typ =-- let toParam = \name -> Utils.javaTypeParameter (Formatting.capitalize (Core.unName name))- boundVars = javaTypeParametersForType_bvars typ- freeVars = Lists.filter (\v -> isLambdaBoundVariable v) (Sets.toList (Variables.freeVariablesInType typ))- vars = Lists.distinct (Lists.concat2 boundVars freeVars)- in (Lists.map toParam vars)--javaTypeParametersForType_bvars :: Core.Type -> [Core.Name]-javaTypeParametersForType_bvars t =- case t of- Core.TypeForall v0 -> Lists.cons (Core.forallTypeParameter v0) (javaTypeParametersForType_bvars (Core.forallTypeBody v0))- _ -> []--lazyFlagsForPrimitive :: Graph.Graph -> Core.Name -> [Bool]-lazyFlagsForPrimitive g name =- Optionals.match (Maps.lookup name (Graph.graphPrimitives g)) [] (\prim -> Lists.map (\p -> Typing.parameterIsLazy p) (Typing.termSignatureParameters (Packaging.primitiveDefinitionSignature (Graph.primitiveDefinition prim))))--moduleToJava :: S.Set String -> Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map String String)-moduleToJava overlaySubs mod defs cx g =- Eithers.bind (encodeDefinitions overlaySubs mod defs cx g) (\units -> Right (Maps.fromList (Lists.map (\entry ->- let name = Pairs.first entry- unit = Pairs.second entry- in (bindingNameToFilePath name, (Serialization.printExpr (Serialization.parenthesize (Serde.compilationUnitToExpr unit))))) (Maps.toList units))))--nameMapToTypeMap :: Ord t0 => (M.Map t0 Core.Name -> M.Map t0 Core.Type)-nameMapToTypeMap m = Maps.map (\v -> Core.TypeVariable v) m--namespaceParent :: Packaging.ModuleName -> Maybe Packaging.ModuleName-namespaceParent ns =-- let parts = Strings.splitOn "." (Packaging.unModuleName ns)- initParts = Optionals.withDefault [] (Lists.init parts)- in (Logic.ifElse (Lists.isEmpty initParts) Nothing (Just (Packaging.ModuleName (Strings.join "." initParts))))--noComment :: Syntax.ClassBodyDeclaration -> Syntax.ClassBodyDeclarationWithComments-noComment decl =- Syntax.ClassBodyDeclarationWithComments {- Syntax.classBodyDeclarationWithCommentsValue = decl,- Syntax.classBodyDeclarationWithCommentsComments = Nothing}--noInterfaceComment :: Syntax.InterfaceMemberDeclaration -> Syntax.InterfaceMemberDeclarationWithComments-noInterfaceComment decl =- Syntax.InterfaceMemberDeclarationWithComments {- Syntax.interfaceMemberDeclarationWithCommentsValue = decl,- Syntax.interfaceMemberDeclarationWithCommentsComments = Nothing}--otherwiseBranch :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Core.Type -> Core.Type -> Core.Name -> Syntax.Type -> [Syntax.TypeArgument] -> Core.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments-otherwiseBranch env aliases dom cod tname jcod targs d cx g =-- let jdom = Syntax.TypeReference (Utils.nameToJavaReferenceType aliases True targs tname Nothing)- mods = [- Syntax.MethodModifierPublic]- anns = [- Utils.overrideAnnotation]- param = Utils.javaTypeToJavaFormalParameter jdom (Core.Name "instance")- result = Syntax.ResultType (Syntax.UnannType jcod)- in (Eithers.bind (analyzeJavaFunction env d cx g) (\fs ->- let bindings = Typing.functionStructureBindings fs- rawBody = Typing.functionStructureBody fs- innerBody = annotateBodyWithCod cod rawBody- env2 = Typing.functionStructureEnvironment fs- in (Eithers.bind (bindingsToStatements env2 bindings cx g) (\bindResult ->- let bindingStmts = Pairs.first bindResult- env3 = Pairs.second bindResult- in (Eithers.bind (encodeTerm env3 innerBody cx g) (\jret ->- let returnStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jret))- allStmts = Lists.concat2 bindingStmts [- returnStmt]- in (Right (noComment (Utils.methodDeclaration mods [] anns JavaNames.otherwiseMethodName [- param] result (Just allStmts))))))))))--peelDomainTypes :: Int -> Core.Type -> ([Core.Type], Core.Type)-peelDomainTypes n t =- Logic.ifElse (Ordering.lte n 0) ([], t) (case (Strip.deannotateType t) of- Core.TypeFunction v0 ->- let rest = peelDomainTypes (Math.sub n 1) (Core.functionTypeCodomain v0)- in (Lists.cons (Core.functionTypeDomain v0) (Pairs.first rest), (Pairs.second rest))- _ -> ([], t))--peelDomainsAndCod :: Int -> Core.Type -> ([Core.Type], Core.Type)-peelDomainsAndCod n t =- Logic.ifElse (Ordering.lte n 0) ([], t) (case (Strip.deannotateType t) of- Core.TypeFunction v0 ->- let rest = peelDomainsAndCod (Math.sub n 1) (Core.functionTypeCodomain v0)- in (Lists.cons (Core.functionTypeDomain v0) (Pairs.first rest), (Pairs.second rest))- _ -> ([], t))--peelExpectedTypes :: M.Map Core.Name Core.Type -> Int -> Core.Type -> [Core.Type]-peelExpectedTypes subst n t =- Logic.ifElse (Equality.equal n 0) [] (case (Strip.deannotateType t) of- Core.TypeFunction v0 -> Lists.cons (applySubstFull subst (Core.functionTypeDomain v0)) (peelExpectedTypes subst (Math.sub n 1) (Core.functionTypeCodomain v0))- _ -> [])--propagateType :: Core.Type -> Core.Term -> Core.Term-propagateType typ term =-- let setTypeAnn = \t -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ typ)) t- in case (Strip.deannotateTerm term) of- Core.TermLambda _ ->- let annotated = setTypeAnn term- in case (Strip.deannotateType typ) of- Core.TypeFunction v1 -> propagateType_propagateIntoLambda (Core.functionTypeCodomain v1) annotated- _ -> annotated- Core.TermLet v0 ->- let propagatedBindings =- Lists.map (\b -> Optionals.match (Core.bindingTypeScheme b) b (\ts -> Core.Binding {- Core.bindingName = (Core.bindingName b),- Core.bindingTerm = (propagateType (Core.typeSchemeBody ts) (Core.bindingTerm b)),- Core.bindingTypeScheme = (Core.bindingTypeScheme b)})) (Core.letBindings v0)- in (setTypeAnn (propagateType_rebuildLet term propagatedBindings (propagateType typ (Core.letBody v0))))- Core.TermApplication v0 ->- let fun = Core.applicationFunction v0- arg = Core.applicationArgument v0- annotatedFun =- case (Strip.deannotateTerm fun) of- Core.TermCases v1 ->- let dom = Resolution.nominalApplication (Core.caseStatementTypeName v1) []- ft =- Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = typ})- in (Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ ft)) fun)- _ -> fun- in (setTypeAnn (Core.TermApplication (Core.Application {- Core.applicationFunction = annotatedFun,- Core.applicationArgument = arg})))- _ -> setTypeAnn term--propagateType_propagateIntoLambda :: Core.Type -> Core.Term -> Core.Term-propagateType_propagateIntoLambda cod t =- case t of- Core.TermAnnotated v0 -> Core.TermAnnotated (Core.AnnotatedTerm {- Core.annotatedTermBody = (propagateType_propagateIntoLambda cod (Core.annotatedTermBody v0)),- Core.annotatedTermAnnotation = (Core.annotatedTermAnnotation v0)})- Core.TermLambda v0 -> Core.TermLambda (Core.Lambda {- Core.lambdaParameter = (Core.lambdaParameter v0),- Core.lambdaDomain = (Core.lambdaDomain v0),- Core.lambdaBody = (propagateType cod (Core.lambdaBody v0))})- _ -> t--propagateType_rebuildLet :: Core.Term -> [Core.Binding] -> Core.Term -> Core.Term-propagateType_rebuildLet t bindings newBody =- case t of- Core.TermAnnotated v0 -> Core.TermAnnotated (Core.AnnotatedTerm {- Core.annotatedTermBody = (propagateType_rebuildLet (Core.annotatedTermBody v0) bindings newBody),- Core.annotatedTermAnnotation = (Core.annotatedTermAnnotation v0)})- Core.TermLet _ -> Core.TermLet (Core.Let {- Core.letBindings = bindings,- Core.letBody = newBody})- _ -> t--propagateTypesInAppChain :: Core.Type -> Core.Type -> Core.Term -> Core.Term-propagateTypesInAppChain fixedCod resultType t =-- let flattened = flattenApps t []- args = Pairs.first flattened- fun = Pairs.second flattened- lambdaDomsResult = collectLambdaDomains fun- lambdaDoms = Pairs.first lambdaDomsResult- nArgs = Lists.length args- nLambdaDoms = Lists.length lambdaDoms- in (Logic.ifElse (Logic.and (Ordering.gt nLambdaDoms 0) (Ordering.gt nArgs 0)) (- let bodyRetType = Pairs.second (peelDomainsAndCod (Math.sub nLambdaDoms nArgs) resultType)- funType =- Lists.foldl (\c -> \d -> Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = d,- Core.functionTypeCodomain = c})) bodyRetType (Lists.reverse lambdaDoms)- annotatedFun = Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ funType)) fun- in (rebuildApps annotatedFun args funType)) (case (Strip.deannotateTerm t) of- Core.TermApplication v0 ->- let lhs = Core.applicationFunction v0- rhs = Core.applicationArgument v0- annotatedLhs =- case (Strip.deannotateTerm lhs) of- Core.TermCases v1 ->- let dom = Resolution.nominalApplication (Core.caseStatementTypeName v1) []- ft =- Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = fixedCod})- in (Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ ft)) lhs)- _ -> lhs- in (Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ resultType)) (Core.TermApplication (Core.Application {- Core.applicationFunction = annotatedLhs,- Core.applicationArgument = rhs})))- _ -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ resultType)) t))--rebuildApps :: Core.Term -> [Core.Term] -> Core.Type -> Core.Term-rebuildApps f args fType =- Logic.ifElse (Lists.isEmpty args) f (case (Strip.deannotateType fType) of- Core.TypeFunction v0 -> Optionals.withDefault f (Optionals.map (\p ->- let arg = Pairs.first p- rest = Pairs.second p- remainingType = Core.functionTypeCodomain v0- app =- Core.TermApplication (Core.Application {- Core.applicationFunction = f,- Core.applicationArgument = arg})- annotatedApp = Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ remainingType)) app- in (rebuildApps annotatedApp rest remainingType)) (Lists.uncons args))- _ -> Lists.foldl (\acc -> \a -> Core.TermApplication (Core.Application {- Core.applicationFunction = acc,- Core.applicationArgument = a})) f args)--recordBuilderClass :: JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> [Core.FieldType] -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.ClassBodyDeclarationWithComments]-recordBuilderClass aliases tparams elName fields cx g =-- let typeArgRefs = Lists.map Utils.typeParameterToReferenceType tparams- typeArgs = Lists.map (\rt -> Syntax.TypeArgumentReference rt) typeArgRefs- mTypeArgs = Logic.ifElse (Lists.isEmpty tparams) Nothing (Just (Syntax.TypeArgumentsOrDiamondArguments typeArgs))- recordLocalName = Utils.sanitizeJavaName (Names.localNameOf elName)- builderType = Utils.javaRefType typeArgRefs Nothing "Builder"- builderResult = Utils.javaTypeToJavaResult builderType- recordType = Utils.javaRefType typeArgRefs Nothing recordLocalName- recordResult = Utils.javaTypeToJavaResult recordType- returnThisStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just Utils.javaThis))- in (Eithers.bind (Eithers.mapList (\f ->- let mods = [- Syntax.FieldModifierPrivate]- ftype = Core.fieldTypeType f- fname = Core.fieldTypeName f- in (Eithers.bind (encodeType aliases Sets.empty ftype cx g) (\jt -> Right (noComment (Utils.javaMemberField mods jt (Utils.fieldNameToJavaVariableDeclarator fname)))))) fields) (\builderFields -> Eithers.bind (Eithers.mapList (\f ->- let mods = [- Syntax.MethodModifierPublic]- fname = Core.fieldTypeName f- assignStmt = Syntax.BlockStatementStatement (Utils.toAssignStmt fname)- in (Eithers.bind (fieldTypeToFormalParam aliases f cx g) (\param -> Right (noComment (Utils.methodDeclaration mods [] [] (builderSetterName fname) [- param] builderResult (Just [- assignStmt,- returnThisStmt])))))) fields) (\setterMethods ->- let buildMods = [- Syntax.MethodModifierPublic]- buildArgs = Lists.map (\f -> Utils.fieldNameToJavaExpression (Core.fieldTypeName f)) fields- buildReturnStmt =- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier recordLocalName) mTypeArgs) buildArgs Nothing)))- buildMethod =- withCommentString (Strings.concat2 "Builds an immutable {@link " (Strings.concat2 recordLocalName "}.")) (Utils.methodDeclaration buildMods [] [] "build" [] recordResult (Just [- buildReturnStmt]))- builderClassDecl =- Utils.javaClassDeclaration aliases tparams (Core.Name "Builder") [- Syntax.ClassModifierPublic,- Syntax.ClassModifierStatic,- Syntax.ClassModifierFinal] Nothing [] (Lists.concat [- builderFields,- setterMethods,- [- buildMethod]])- builderClassMember =- withCommentString (Strings.concat2 "A fluent builder for {@link " (Strings.concat2 recordLocalName "}.")) (Syntax.ClassBodyDeclarationClassMember (Syntax.ClassMemberDeclarationClass builderClassDecl))- factoryMods =- [- Syntax.MethodModifierPublic,- Syntax.MethodModifierStatic]- factoryReturnStmt =- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "Builder") mTypeArgs) [] Nothing)))- factoryMethod =- withCommentString (Strings.concat2 "Creates a new fluent builder for {@link " (Strings.concat2 recordLocalName "}.")) (Utils.methodDeclaration factoryMods tparams [] "builder" [] builderResult (Just [- factoryReturnStmt]))- in (Right [- factoryMethod,- builderClassMember]))))--recordCompareToMethod :: JavaEnvironment.Aliases -> t0 -> Core.Name -> [Core.FieldType] -> Syntax.ClassBodyDeclaration-recordCompareToMethod aliases tparams elName fields =-- let anns =- [- Utils.overrideAnnotation,- Utils.suppressWarningsUncheckedAnnotation]- mods = [- Syntax.MethodModifierPublic]- param =- Utils.javaTypeToJavaFormalParameter (Utils.javaTypeFromTypeName aliases elName) (Core.Name JavaNames.otherInstanceName)- result = Utils.javaTypeToJavaResult Utils.javaIntType- in (Utils.methodDeclaration mods [] anns JavaNames.compareToMethodName [- param] result (Just (compareToBody aliases JavaNames.otherInstanceName fields)))--recordConstructor :: JavaEnvironment.Aliases -> Core.Name -> [Core.FieldType] -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclaration-recordConstructor aliases elName fields cx g =-- let assignStmts = Lists.map (\f -> Syntax.BlockStatementStatement (Utils.toAssignStmt (Core.fieldTypeName f))) fields- in (Eithers.bind (Eithers.mapList (\f -> fieldTypeToFormalParam aliases f cx g) fields) (\params -> Right (Utils.makeConstructor aliases elName False params assignStmts)))--recordEqualsMethod :: JavaEnvironment.Aliases -> Core.Name -> [Core.FieldType] -> Syntax.ClassBodyDeclaration-recordEqualsMethod aliases elName fields =-- let anns = [- Utils.overrideAnnotation]- mods = [- Syntax.MethodModifierPublic]- param = Utils.javaTypeToJavaFormalParameter (Utils.javaRefType [] Nothing "Object") (Core.Name JavaNames.otherInstanceName)- result = Utils.javaTypeToJavaResult Utils.javaBooleanType- tmpName = "o"- instanceOfStmt =- Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {- Syntax.ifThenStatementExpression = (Utils.javaUnaryExpressionToJavaExpression (Syntax.UnaryExpressionOther (Syntax.UnaryExpressionNotPlusMinusNot (Utils.javaRelationalExpressionToJavaUnaryExpression (Utils.javaInstanceOf (Utils.javaIdentifierToJavaRelationalExpression (Utils.javaIdentifier JavaNames.otherInstanceName)) (Utils.nameToJavaReferenceType aliases False [] elName Nothing)))))),- Syntax.ifThenStatementStatement = (Utils.javaReturnStatement (Just (Utils.javaBooleanExpression False)))}))- castStmt =- Utils.variableDeclarationStatement aliases (Utils.javaTypeFromTypeName aliases elName) (Utils.javaIdentifier tmpName) (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression (Utils.nameToJavaReferenceType aliases False [] elName Nothing) (Utils.javaIdentifierToJavaUnaryExpression (Syntax.Identifier (Utils.sanitizeJavaName JavaNames.otherInstanceName)))))- returnAllFieldsEqual =- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Logic.ifElse (Lists.isEmpty fields) (Utils.javaBooleanExpression True) (Utils.javaConditionalAndExpressionToJavaExpression (Syntax.ConditionalAndExpression (Lists.map (\f -> eqClause tmpName f) fields))))))- in (Utils.methodDeclaration mods [] anns JavaNames.equalsMethodName [- param] result (Just [- instanceOfStmt,- castStmt,- returnAllFieldsEqual]))--recordHashCodeMethod :: [Core.FieldType] -> Syntax.ClassBodyDeclaration-recordHashCodeMethod fields =-- let anns = [- Utils.overrideAnnotation]- mods = [- Syntax.MethodModifierPublic]- result = Utils.javaTypeToJavaResult Utils.javaIntType- returnSum =- Syntax.BlockStatementStatement (Logic.ifElse (Lists.isEmpty fields) (Utils.javaReturnStatement (Just (Utils.javaIntExpression 0))) (Utils.javaReturnStatement (Just (Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions (Lists.zipWith hashCodeMultPair first20Primes (Lists.map (\f -> Core.fieldTypeName f) fields)))))))- in (Utils.methodDeclaration mods [] anns JavaNames.hashCodeMethodName [] result (Just [- returnSum]))--recordMemberVar :: JavaEnvironment.Aliases -> Core.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclaration-recordMemberVar aliases ft cx g =-- let mods =- [- Syntax.FieldModifierPublic,- Syntax.FieldModifierFinal]- fname = Core.fieldTypeName ft- ftype = Core.fieldTypeType ft- in (Eithers.bind (encodeType aliases Sets.empty ftype cx g) (\jt -> Right (Utils.javaMemberField mods jt (Utils.fieldNameToJavaVariableDeclarator fname))))--recordToStringMethod :: Core.Name -> [Core.FieldType] -> Syntax.ClassBodyDeclaration-recordToStringMethod elName fields =-- let anns = [- Utils.overrideAnnotation]- mods = [- Syntax.MethodModifierPublic]- result = Utils.javaTypeToJavaResult (Utils.javaRefType [] Nothing "String")- className = Core.unName elName- fieldParts = Lists.drop 1 (Lists.concat (Lists.map fieldToStringPart fields))- allParts =- Lists.concat2 [- Utils.javaStringMultiplicativeExpression (Strings.concat2 className "{")] (Lists.concat2 fieldParts [- Utils.javaStringMultiplicativeExpression "}"])- returnStr =- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions allParts))))- in (Utils.methodDeclaration mods [] anns JavaNames.toStringMethodName [] result (Just [- returnStr]))--recordWithMethod :: JavaEnvironment.Aliases -> Core.Name -> [Core.FieldType] -> Core.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclaration-recordWithMethod aliases elName fields field cx g =-- let mods = [- Syntax.MethodModifierPublic]- anns = []- methodName =- Strings.concat2 "with" (Formatting.nonAlnumToUnderscores (Formatting.capitalize (Core.unName (Core.fieldTypeName field))))- result = Utils.referenceTypeToResult (Utils.nameToJavaReferenceType aliases False [] elName Nothing)- consId = Syntax.Identifier (Utils.sanitizeJavaName (Names.localNameOf elName))- fieldArgs = Lists.map (\f -> Utils.fieldNameToJavaExpression (Core.fieldTypeName f)) fields- returnStmt =- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaConstructorCall (Utils.javaConstructorName consId Nothing) fieldArgs Nothing)))- in (Eithers.bind (fieldTypeToFormalParam aliases field cx g) (\param -> Right (Utils.methodDeclaration mods [] anns methodName [- param] result (Just [- returnStmt]))))--resolveTypeApps :: [Core.Name] -> [Core.Type] -> M.Map Core.Name Core.Type -> [Core.Type]-resolveTypeApps schemeVars fallbackTypeApps argSubst =-- let resolvedVars = Sets.fromList (Maps.keys argSubst)- unresolvedVars = Lists.filter (\v -> Logic.not (Sets.member v resolvedVars)) schemeVars- usedTypes = Sets.fromList (Maps.elems argSubst)- unusedIrTypes = Lists.filter (\t -> Logic.not (Sets.member t usedTypes)) fallbackTypeApps- remainingSubst = Maps.fromList (Lists.zip unresolvedVars unusedIrTypes)- fullSubst = Maps.union argSubst remainingSubst- in (Lists.map (\v -> Maps.findWithDefault (Core.TypeVariable v) v fullSubst) schemeVars)--selfRefSubstitution :: (Eq t0, Ord t0) => (M.Map t0 [t0] -> M.Map t0 t0)-selfRefSubstitution grouped =- Lists.foldl (\subst -> \entry -> selfRefSubstitution_processGroup subst (Pairs.first entry) (Pairs.second entry)) Maps.empty (Maps.toList grouped)--selfRefSubstitution_processGroup :: (Eq t0, Ord t0) => (M.Map t0 t0 -> t0 -> [t0] -> M.Map t0 t0)-selfRefSubstitution_processGroup subst inVar outVars =- Logic.ifElse (Lists.member inVar outVars) (Lists.foldl (\s -> \v -> Logic.ifElse (Equality.equal v inVar) s (Maps.insert v inVar s)) subst outVars) subst--serializableTypes :: Bool -> [Syntax.InterfaceType]-serializableTypes isSer =-- let javaSerializableType =- Syntax.InterfaceType (Syntax.ClassType {- Syntax.classTypeAnnotations = [],- Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,- Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Serializable"),- Syntax.classTypeArguments = []})- in (Logic.ifElse isSer [- javaSerializableType] [])--splitConstantInitializer :: Syntax.InterfaceMemberDeclaration -> [Syntax.InterfaceMemberDeclaration]-splitConstantInitializer member =- case member of- Syntax.InterfaceMemberDeclarationConstant v0 -> Lists.bind (Syntax.constantDeclarationVariables v0) (splitConstantInitializer_splitVar (Syntax.constantDeclarationModifiers v0) (Syntax.constantDeclarationType v0))- _ -> [- member]--splitConstantInitializer_splitVar :: [Syntax.ConstantModifier] -> Syntax.UnannType -> Syntax.VariableDeclarator -> [Syntax.InterfaceMemberDeclaration]-splitConstantInitializer_splitVar mods utype vd =-- let vid = Syntax.variableDeclaratorId vd- mInit = Syntax.variableDeclaratorInitializer vd- in (Optionals.match mInit [- Syntax.InterfaceMemberDeclarationConstant (Syntax.ConstantDeclaration {- Syntax.constantDeclarationModifiers = mods,- Syntax.constantDeclarationType = utype,- Syntax.constantDeclarationVariables = [- vd]})] (\init_ -> case init_ of- Syntax.VariableInitializerExpression v0 ->- let varName = javaIdentifierToString (Syntax.variableDeclaratorIdIdentifier vid)- helperName = Strings.concat2 "_init_" varName- callExpr = Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation Nothing (Syntax.Identifier helperName) [])- field =- Syntax.InterfaceMemberDeclarationConstant (Syntax.ConstantDeclaration {- Syntax.constantDeclarationModifiers = mods,- Syntax.constantDeclarationType = utype,- Syntax.constantDeclarationVariables = [- Syntax.VariableDeclarator {- Syntax.variableDeclaratorId = vid,- Syntax.variableDeclaratorInitializer = (Just (Syntax.VariableInitializerExpression callExpr))}]})- returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just v0))- resultType = Syntax.ResultType utype- helper =- Utils.interfaceMethodDeclaration [- Syntax.InterfaceMethodModifierStatic,- Syntax.InterfaceMethodModifierPrivate] [] helperName [] resultType (Just [- returnSt])- in [- field,- helper]- _ -> [- Syntax.InterfaceMemberDeclarationConstant (Syntax.ConstantDeclaration {- Syntax.constantDeclarationModifiers = mods,- Syntax.constantDeclarationType = utype,- Syntax.constantDeclarationVariables = [- vd]})]))--stripForalls :: Core.Type -> Core.Type-stripForalls t =- case (Strip.deannotateType t) of- Core.TypeForall v0 -> stripForalls (Core.forallTypeBody v0)- _ -> t--substituteTypeVarsWithTypes :: M.Map Core.Name Core.Type -> Core.Type -> Core.Type-substituteTypeVarsWithTypes subst t = substituteTypeVarsWithTypes_go subst (Strip.deannotateType t)--substituteTypeVarsWithTypes_go :: M.Map Core.Name Core.Type -> Core.Type -> Core.Type-substituteTypeVarsWithTypes_go subst t =- case (Strip.deannotateType t) of- Core.TypeVariable v0 -> Optionals.match (Maps.lookup v0 subst) t (\rep -> rep)- Core.TypeFunction v0 -> Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = (substituteTypeVarsWithTypes_go subst (Core.functionTypeDomain v0)),- Core.functionTypeCodomain = (substituteTypeVarsWithTypes_go subst (Core.functionTypeCodomain v0))})- Core.TypeApplication v0 -> Core.TypeApplication (Core.ApplicationType {- Core.applicationTypeFunction = (substituteTypeVarsWithTypes_go subst (Core.applicationTypeFunction v0)),- Core.applicationTypeArgument = (substituteTypeVarsWithTypes_go subst (Core.applicationTypeArgument v0))})- Core.TypeList v0 -> Core.TypeList (substituteTypeVarsWithTypes_go subst v0)- Core.TypeSet v0 -> Core.TypeSet (substituteTypeVarsWithTypes_go subst v0)- Core.TypeOptional v0 -> Core.TypeOptional (substituteTypeVarsWithTypes_go subst v0)- Core.TypeEffect v0 -> Core.TypeEffect (substituteTypeVarsWithTypes_go subst v0)- Core.TypeMap v0 -> Core.TypeMap (Core.MapType {- Core.mapTypeKeys = (substituteTypeVarsWithTypes_go subst (Core.mapTypeKeys v0)),- Core.mapTypeValues = (substituteTypeVarsWithTypes_go subst (Core.mapTypeValues v0))})- Core.TypePair v0 -> Core.TypePair (Core.PairType {- Core.pairTypeFirst = (substituteTypeVarsWithTypes_go subst (Core.pairTypeFirst v0)),- Core.pairTypeSecond = (substituteTypeVarsWithTypes_go subst (Core.pairTypeSecond v0))})- Core.TypeEither v0 -> Core.TypeEither (Core.EitherType {- Core.eitherTypeLeft = (substituteTypeVarsWithTypes_go subst (Core.eitherTypeLeft v0)),- Core.eitherTypeRight = (substituteTypeVarsWithTypes_go subst (Core.eitherTypeRight v0))})- Core.TypeForall v0 -> Core.TypeForall (Core.ForallType {- Core.forallTypeParameter = (Core.forallTypeParameter v0),- Core.forallTypeBody = (substituteTypeVarsWithTypes_go subst (Core.forallTypeBody v0))})- _ -> t--tagCmpNotZeroExpr :: Syntax.Expression-tagCmpNotZeroExpr =- Utils.javaEqualityExpressionToJavaExpression (Syntax.EqualityExpressionNotEqual (Syntax.EqualityExpression_Binary {- Syntax.equalityExpression_BinaryLhs = lhs,- Syntax.equalityExpression_BinaryRhs = rhs}))- where- lhs =- Utils.javaRelationalExpressionToJavaEqualityExpression (Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionName (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Utils.javaIdentifier "tagCmp")})))- rhs =- Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionPrimary (Utils.javaLiteralToJavaPrimary (Utils.javaInt 0)))--tagCompareExpr :: Syntax.Expression-tagCompareExpr =- Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {- Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "Integer"))),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier "compare")})),- Syntax.methodInvocationArguments = [- Utils.javaMethodInvocationToJavaExpression thisOrdinal,- (Utils.javaMethodInvocationToJavaExpression otherOrdinal)]})- where- thisOrdinal =- Syntax.MethodInvocation {- Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantPrimary (Utils.javaExpressionToJavaPrimary Utils.javaThis)),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hydraOrdinalMethodName)})),- Syntax.methodInvocationArguments = []}- otherOrdinal =- Syntax.MethodInvocation {- Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {- Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantExpression (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Syntax.Identifier JavaNames.otherInstanceName)})),- Syntax.methodInvocation_ComplexTypeArguments = [],- Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hydraOrdinalMethodName)})),- Syntax.methodInvocationArguments = []}--takeTypeArgs :: String -> Int -> [Syntax.Type] -> t0 -> t1 -> Either Errors.Error [Syntax.TypeArgument]-takeTypeArgs label n tyapps cx g =- Logic.ifElse (Ordering.lt (Lists.length tyapps) n) (Left (Errors.ErrorOther (Errors.OtherError (Strings.concat [- "needed type arguments for ",- label,- ", found too few"])))) (Eithers.mapList (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt))) (Lists.take n tyapps))--toClassDecl :: Bool -> Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> Core.Type -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration-toClassDecl isInner isSer aliases tparams elName t cx g =-- let wrap =- \t_ -> declarationForRecordType isInner isSer aliases tparams elName [- Core.FieldType {- Core.fieldTypeName = (Core.Name "value"),- Core.fieldTypeType = (Strip.deannotateType t_)}] cx g- in case (Strip.deannotateType t) of- Core.TypeRecord v0 -> declarationForRecordType isInner isSer aliases tparams elName v0 cx g- Core.TypeUnion v0 -> declarationForUnionType isSer aliases tparams elName v0 cx g- Core.TypeForall v0 ->- let v = Core.forallTypeParameter v0- body = Core.forallTypeBody v0- param = Utils.javaTypeParameter (Formatting.capitalize (Core.unName v))- in (toClassDecl False isSer aliases (Lists.concat2 tparams [- param]) elName body cx g)- Core.TypeWrap v0 -> declarationForRecordType isInner isSer aliases tparams elName [- Core.FieldType {- Core.fieldTypeName = (Core.Name "value"),- Core.fieldTypeType = v0}] cx g- _ -> wrap t--toDeclInit :: JavaEnvironment.Aliases -> Graph.Graph -> S.Set Core.Name -> [Core.Binding] -> Core.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (Maybe Syntax.BlockStatement)-toDeclInit aliasesExt gExt recursiveVars flatBindings name cx g =- Logic.ifElse (Sets.member name recursiveVars) (- let binding =- Optionals.withDefault (Core.Binding {- Core.bindingName = name,- Core.bindingTerm = Core.TermUnit,- Core.bindingTypeScheme = Nothing}) (Lists.head (Lists.filter (\b -> Equality.equal (Core.bindingName b) name) flatBindings))- value = Core.bindingTerm binding- in (Eithers.bind (Optionals.match (Core.bindingTypeScheme binding) (Checking.typeOfTerm cx gExt value) (\ts -> Right (Core.typeSchemeBody ts))) (\typ -> Eithers.bind (encodeType aliasesExt Sets.empty typ cx g) (\jtype ->- let id = Utils.variableToJavaIdentifier name- arid = Syntax.Identifier "java.util.concurrent.atomic.AtomicReference"- aid =- Syntax.AnnotatedIdentifier {- Syntax.annotatedIdentifierAnnotations = [],- Syntax.annotatedIdentifierIdentifier = arid}- in (Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt ->- let targs = typeArgsOrDiamond [- Syntax.TypeArgumentReference rt]- ci =- Syntax.ClassOrInterfaceTypeToInstantiate {- Syntax.classOrInterfaceTypeToInstantiateIdentifiers = [- aid],- Syntax.classOrInterfaceTypeToInstantiateTypeArguments = (Just targs)}- body = Utils.javaConstructorCall ci [] Nothing- pkg =- JavaNames.javaPackageName [- "java",- "util",- "concurrent",- "atomic"]- artype = Utils.javaRefType [- rt] (Just pkg) "AtomicReference"- in (Right (Just (Utils.variableDeclarationStatement aliasesExt artype id body))))))))) (Right Nothing)--toDeclStatement :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Graph.Graph -> S.Set Core.Name -> S.Set Core.Name -> [Core.Binding] -> Core.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.BlockStatement-toDeclStatement envExt aliasesExt gExt recursiveVars thunkedVars flatBindings name cx g =-- let binding =- Optionals.withDefault (Core.Binding {- Core.bindingName = name,- Core.bindingTerm = Core.TermUnit,- Core.bindingTypeScheme = Nothing}) (Lists.head (Lists.filter (\b -> Equality.equal (Core.bindingName b) name) flatBindings))- value = Core.bindingTerm binding- in (Eithers.bind (Optionals.match (Core.bindingTypeScheme binding) (Checking.typeOfTerm cx gExt value) (\ts -> Right (Core.typeSchemeBody ts))) (\typ -> Eithers.bind (encodeType aliasesExt Sets.empty typ cx g) (\jtype ->- let id = Utils.variableToJavaIdentifier name- annotatedValue = Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ typ)) value- in (Eithers.bind (encodeTerm envExt annotatedValue cx g) (\rhs -> Logic.ifElse (Sets.member name recursiveVars) (Right (Syntax.BlockStatementStatement (Utils.javaMethodInvocationToJavaStatement (Utils.methodInvocation (Just (Left (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = id}))) (Syntax.Identifier JavaNames.setMethodName) [- rhs])))) (Logic.ifElse (Sets.member name thunkedVars) (Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt ->- let lazyType = Utils.javaRefType [- rt] JavaNames.hydraUtilPackageName "Lazy"- lambdaBody = Syntax.LambdaBodyExpression rhs- supplierLambda =- Syntax.ExpressionLambda (Syntax.LambdaExpression {- Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersTuple []),- Syntax.lambdaExpressionBody = lambdaBody})- targs = typeArgsOrDiamond [- Syntax.TypeArgumentReference rt]- lazyExpr =- Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "hydra.overlay.java.util.Lazy") (Just targs)) [- supplierLambda] Nothing- in (Right (Utils.variableDeclarationStatement aliasesExt lazyType id lazyExpr)))) (Right (Utils.variableDeclarationStatement aliasesExt jtype id rhs))))))))--tryInferFunctionType :: Core.Term -> Maybe Core.Type-tryInferFunctionType funTerm =- case (Strip.deannotateTerm funTerm) of- Core.TermLambda v0 -> Optionals.bind (Core.lambdaDomain v0) (\dom ->- let mCod =- case (Core.lambdaBody v0) of- Core.TermAnnotated v1 -> Optionals.bind (Maps.lookup Constants.keyType (Annotations.getAnnotationMap (Core.annotatedTermAnnotation v1))) (\typeTerm -> decodeTypeFromTerm typeTerm)- Core.TermLambda _ -> tryInferFunctionType (Core.lambdaBody v0)- _ -> Nothing- in (Optionals.map (\cod -> Core.TypeFunction (Core.FunctionType {- Core.functionTypeDomain = dom,- Core.functionTypeCodomain = cod})) mCod))- _ -> Nothing--typeAppFallbackCast :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> [M.Map Core.Name Core.Term] -> [Syntax.Type] -> Syntax.Type -> Core.Term -> Core.Type -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-typeAppFallbackCast env aliases anns tyapps jatyp body typ cx g =-- let annotatedBody = Annotations.setTermAnnotation Constants.keyType (Just (EncodeCore.type_ typ)) body- in (Eithers.bind (encodeTermInternal env anns (Lists.cons jatyp tyapps) annotatedBody cx g) (\jbody -> Eithers.bind (encodeType aliases Sets.empty typ cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression jbody)))))))--typeAppNullaryOrHoisted :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> [M.Map Core.Name Core.Term] -> [Syntax.Type] -> Syntax.Type -> Core.Term -> Core.Type -> Core.Name -> JavaEnvironment.JavaSymbolClass -> [Core.Type] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression-typeAppNullaryOrHoisted env aliases anns tyapps jatyp body correctedTyp varName cls allTypeArgs cx g =-- let qn = Names.qualifyName varName- mns = Util.qualifiedNameModuleName qn- localName = Util.qualifiedNameLocal qn- in case cls of- JavaEnvironment.JavaSymbolClassNullaryFunction -> Optionals.match mns (typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g) (\ns_ ->- let classId = Utils.nameToJavaName aliases (elementsQualifiedName ns_)- methodId = Syntax.Identifier (Utils.sanitizeJavaName localName)- in (Eithers.bind (filterPhantomTypeArgs varName allTypeArgs cx g) (\filteredTypeArgs -> Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) filteredTypeArgs) (\jTypeArgs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs classId methodId jTypeArgs []))))))- JavaEnvironment.JavaSymbolClassHoistedLambda v0 -> Optionals.match mns (typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g) (\ns_ ->- let classId = Utils.nameToJavaName aliases (elementsQualifiedName ns_)- methodId = Syntax.Identifier (Utils.sanitizeJavaName localName)- in (Eithers.bind (filterPhantomTypeArgs varName allTypeArgs cx g) (\filteredTypeArgs -> Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) filteredTypeArgs) (\jTypeArgs ->- let paramNames = Lists.map (\i -> Core.Name (Strings.concat2 "p" (Literals.printInt32 i))) (Math.range 0 v0)- paramExprs = Lists.map (\p -> Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier p)) paramNames- call =- Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs classId methodId jTypeArgs paramExprs)- in (Right (buildCurriedLambda paramNames call))))))- _ -> typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g--typeArgsOrDiamond :: [Syntax.TypeArgument] -> Syntax.TypeArgumentsOrDiamond-typeArgsOrDiamond args =- Logic.ifElse (JavaEnvironment.javaFeaturesSupportsDiamondOperator javaFeatures) Syntax.TypeArgumentsOrDiamondDiamond (Syntax.TypeArgumentsOrDiamondArguments args)--typesMatch :: Core.Type -> Core.Type -> Bool-typesMatch a b =- case a of- Core.TypeVariable v0 -> case b of- Core.TypeVariable v1 -> Equality.equal v0 v1- _ -> True- Core.TypeWrap v0 -> case b of- Core.TypeWrap v1 -> Equality.equal v0 v1- _ -> True- _ -> True--unwrapReturnType :: Core.Type -> Core.Type-unwrapReturnType t =- case (Strip.deannotateType t) of- Core.TypeFunction v0 -> unwrapReturnType (Core.functionTypeCodomain v0)- Core.TypeApplication v0 -> unwrapReturnType (Core.applicationTypeArgument v0)- _ -> t--variantCompareToMethod :: JavaEnvironment.Aliases -> t0 -> Core.Name -> Core.Name -> Int -> [Core.FieldType] -> [Syntax.ClassBodyDeclaration]-variantCompareToMethod aliases tparams parentName variantName ordinal fields =-- let anns =- [- Utils.overrideAnnotation,- Utils.suppressWarningsUncheckedAnnotation]- mods = [- Syntax.MethodModifierPublic]- param =- Utils.javaTypeToJavaFormalParameter (Utils.javaTypeFromTypeName aliases parentName) (Core.Name JavaNames.otherInstanceName)- result = Utils.javaTypeToJavaResult Utils.javaIntType- varTmpName = "o"- tagDeclStmt = Utils.variableDeclarationStatement aliases Utils.javaIntType (Utils.javaIdentifier "tagCmp") tagCompareExpr- tagReturnStmt =- Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {- Syntax.ifThenStatementExpression = tagCmpNotZeroExpr,- Syntax.ifThenStatementStatement = (Utils.javaReturnStatement (Just (Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {- Syntax.expressionNameQualifier = Nothing,- Syntax.expressionNameIdentifier = (Utils.javaIdentifier "tagCmp")}))))}))- variantJavaType = Utils.javaTypeFromTypeName aliases variantName- castOtherExpr =- Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression (Utils.nameToJavaReferenceType aliases False [] variantName Nothing) (Utils.javaIdentifierToJavaUnaryExpression (Syntax.Identifier JavaNames.otherInstanceName)))- castDeclStmt = Utils.variableDeclarationStatement aliases variantJavaType (Utils.javaIdentifier varTmpName) castOtherExpr- emptyReturn = [- Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaIntExpression 0)))]- valueCompareStmt =- Logic.ifElse (Lists.isEmpty fields) emptyReturn (Lists.concat2 [- castDeclStmt] (compareToBody aliases varTmpName fields))- body =- Lists.concat2 [- tagDeclStmt,- tagReturnStmt] valueCompareStmt- in [- Utils.methodDeclaration mods [] anns JavaNames.compareToMethodName [- param] result (Just body),- (hydraOrdinalMethod (Just ordinal))]--visitBranch :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Core.Type -> Core.Name -> Syntax.Type -> [Syntax.TypeArgument] -> Core.CaseAlternative -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments-visitBranch env aliases dom tname jcod targs field cx g =-- let jdom =- Syntax.TypeReference (Utils.nameToJavaReferenceType aliases True targs tname (Just (Formatting.capitalize (Core.unName (Core.caseAlternativeName field)))))- mods = [- Syntax.MethodModifierPublic]- anns = [- Utils.overrideAnnotation]- result = Syntax.ResultType (Syntax.UnannType jcod)- in case (Strip.deannotateTerm (Core.caseAlternativeHandler field)) of- Core.TermLambda v0 -> withLambda env v0 (\env2 ->- let lambdaParam = Core.lambdaParameter v0- body = Core.lambdaBody v0- env3 = insertBranchVar lambdaParam env2- in (Eithers.bind (analyzeJavaFunction env3 body cx g) (\fs ->- let bindings = Typing.functionStructureBindings fs- innerBody = Typing.functionStructureBody fs- env4 = Typing.functionStructureEnvironment fs- in (Eithers.bind (bindingsToStatements env4 bindings cx g) (\bindResult ->- let bindingStmts = Pairs.first bindResult- env5 = Pairs.second bindResult- in (Eithers.bind (encodeTerm env5 innerBody cx g) (\jret ->- let param = Utils.javaTypeToJavaFormalParameter jdom lambdaParam- returnStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jret))- allStmts = Lists.concat2 bindingStmts [- returnStmt]- in (Right (noComment (Utils.methodDeclaration mods [] anns JavaNames.visitMethodName [- param] result (Just allStmts)))))))))))- _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "visitBranch: field term is not a lambda: " (PrintCore.term (Core.caseAlternativeHandler field)))))--withCommentString :: String -> Syntax.ClassBodyDeclaration -> Syntax.ClassBodyDeclarationWithComments-withCommentString comment decl =- Syntax.ClassBodyDeclarationWithComments {- Syntax.classBodyDeclarationWithCommentsValue = decl,- Syntax.classBodyDeclarationWithCommentsComments = (Just comment)}--withInterfaceCommentString :: String -> Syntax.InterfaceMemberDeclaration -> Syntax.InterfaceMemberDeclarationWithComments-withInterfaceCommentString comment decl =- Syntax.InterfaceMemberDeclarationWithComments {- Syntax.interfaceMemberDeclarationWithCommentsValue = decl,- Syntax.interfaceMemberDeclarationWithCommentsComments = (Just comment)}--withLambda :: JavaEnvironment.JavaEnvironment -> Core.Lambda -> (JavaEnvironment.JavaEnvironment -> t0) -> t0-withLambda env lam k =- Environment.withLambdaContext javaEnvGetGraph javaEnvSetGraph env lam (\env1 ->- let aliases = JavaEnvironment.javaEnvironmentAliases env1- aliases2 =- JavaEnvironment.Aliases {- JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases),- JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases),- JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases),- JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases),- JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases),- JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases),- JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases),- JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases),- JavaEnvironment.aliasesLambdaVars = (Sets.insert (Core.lambdaParameter lam) (JavaEnvironment.aliasesLambdaVars aliases)),- JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases),- JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases),- JavaEnvironment.aliasesMethodCodomain = (JavaEnvironment.aliasesMethodCodomain aliases),- JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases)}- env2 =- JavaEnvironment.JavaEnvironment {- JavaEnvironment.javaEnvironmentAliases = aliases2,- JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env1)}- in (k env2))--withTypeLambda :: JavaEnvironment.JavaEnvironment -> Core.TypeLambda -> (JavaEnvironment.JavaEnvironment -> t0) -> t0-withTypeLambda = Environment.withTypeLambdaContext javaEnvGetGraph javaEnvSetGraph--wrapInSupplierLambda :: Syntax.Expression -> Syntax.Expression-wrapInSupplierLambda expr =- Syntax.ExpressionLambda (Syntax.LambdaExpression {- Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersTuple []),- Syntax.lambdaExpressionBody = (Syntax.LambdaBodyExpression expr)})--wrapLazyArguments :: Graph.Graph -> Core.Name -> [Syntax.Expression] -> ([Syntax.Expression], (Maybe String))-wrapLazyArguments g name args =-- let lazyFlags = lazyFlagsForPrimitive g name- anyLazy = Lists.foldl (\b -> \f -> Logic.or b f) False lazyFlags- in (Logic.ifElse (Logic.and anyLazy (Equality.equal (Lists.length args) (Lists.length lazyFlags))) (- Lists.map (\pair -> Logic.ifElse (Pairs.second pair) (wrapInSupplierLambda (Pairs.first pair)) (Pairs.first pair)) (Lists.zip args lazyFlags),- (Just (Logic.ifElse (Equality.equal name (Core.Name "hydra.lib.logic.ifElse")) "lazy" "applyLazy"))) (args, Nothing))+import qualified Hydra.Core.Analysis as Analysis+import qualified Hydra.Core.Annotations as Annotations+import qualified Hydra.Core.Arity as Arity+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Checking as Checking+import qualified Hydra.Core.Classes as Classes+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Constants as Constants+import qualified Hydra.Core.Decode.Model as DecodeModel+import qualified Hydra.Core.Dependencies as Dependencies+import qualified Hydra.Core.Encode.Model as EncodeModel+import qualified Hydra.Core.Environment as CoreEnvironment+import qualified Hydra.Core.Error.Checking as ErrorChecking+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.File as File+import qualified Hydra.Core.Formatting as Formatting+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Inference as Inference+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Lexical as Lexical+import qualified Hydra.Core.Overlay.Haskell.Lib.Eithers as Eithers+import qualified Hydra.Core.Overlay.Haskell.Lib.Equality as Equality+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Literals as Literals+import qualified Hydra.Core.Overlay.Haskell.Lib.Logic as Logic+import qualified Hydra.Core.Overlay.Haskell.Lib.Maps as Maps+import qualified Hydra.Core.Overlay.Haskell.Lib.Math as Math+import qualified Hydra.Core.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Core.Overlay.Haskell.Lib.Ordering as Ordering+import qualified Hydra.Core.Overlay.Haskell.Lib.Pairs as Pairs+import qualified Hydra.Core.Overlay.Haskell.Lib.Sets as Sets+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Names as CoreNames+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Predicates as Predicates+import qualified Hydra.Core.Print.Model as PrintModel+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Refs as Refs+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Resolution as Resolution+import qualified Hydra.Core.Rewriting as Rewriting+import qualified Hydra.Core.Scoping as Scoping+import qualified Hydra.Core.Serialization as Serialization+import qualified Hydra.Core.Sorting as Sorting+import qualified Hydra.Core.Strip as Strip+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variables as Variables+import qualified Hydra.Core.Variants as Variants+import qualified Hydra.Java.Environment as JavaEnvironment+import qualified Hydra.Java.Language as Language+import qualified Hydra.Java.Names as JavaNames+import qualified Hydra.Java.Serde as Serde+import qualified Hydra.Java.Syntax as Syntax+import qualified Hydra.Java.Utils as Utils+import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void+import qualified Data.Map as M+import qualified Data.Set as S++-- | Attach comments derived from a field's annotations to a class body declaration+addComment :: Syntax.ClassBodyDeclaration -> Model.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments+addComment decl field cx g =+ Eithers.map (\c -> Syntax.ClassBodyDeclarationWithComments {+ Syntax.classBodyDeclarationWithCommentsValue = decl,+ Syntax.classBodyDeclarationWithCommentsComments = c}) (Annotations.commentsFromFieldType cx g field)++analyzeJavaFunction :: JavaEnvironment.JavaEnvironment -> Model.Term -> Typing.InferenceContext -> t0 -> Either t1 (Typing.FunctionStructure JavaEnvironment.JavaEnvironment)+analyzeJavaFunction env term cx g = Analysis.analyzeFunctionTerm cx javaEnvGetGraph javaEnvSetGraph env term++annotateBodyWithCod :: Model.Type -> Model.Term -> Model.Term+annotateBodyWithCod typ term =++ let setAnn = \t -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ typ)) t+ in case (Strip.deannotateTerm term) of+ Model.TermTypeApplication _ -> setAnn term+ Model.TermApplication v0 ->+ let lhs = Model.applicationFunction v0+ rhs = Model.applicationArgument v0+ annotatedRhs =+ case (Strip.deannotateTerm rhs) of+ Model.TermTypeApplication _ -> annotateBodyWithCod (extractArgType lhs typ) rhs+ _ -> rhs+ in (setAnn (Model.TermApplication (Model.Application {+ Model.applicationFunction = lhs,+ Model.applicationArgument = annotatedRhs})))+ _ -> setAnn term++annotateLambdaArgs :: Model.Name -> [Model.Type] -> [Model.Term] -> t0 -> Graph.Graph -> Either t1 [Model.Term]+annotateLambdaArgs cname tApps argTerms cx g =+ Logic.ifElse (Lists.isEmpty tApps) (Right argTerms) (Eithers.bind (Eithers.bind (Right (Lexical.lookupBinding g cname)) (\mel -> Optionals.match mel (Right (Optionals.map (\prim -> Scoping.termSignatureToTypeScheme (Packaging.primitiveDefinitionSignature (Graph.primitiveDefinition prim))) (Maps.lookup cname (Graph.graphPrimitives g)))) (\el -> Right (Model.bindingTypeScheme el)))) (\mts -> Optionals.match mts (Right argTerms) (\ts ->+ let schemeType = Model.typeSchemeBody ts+ schemeTypeVars = collectTypeVars schemeType+ schemeVars = Lists.filter (\v -> Sets.member v schemeTypeVars) (Model.typeSchemeVariables ts)+ in (Logic.ifElse (Logic.or (Lists.isEmpty schemeVars) (Logic.not (Equality.equal (Lists.length schemeVars) (Lists.length tApps)))) (Right argTerms) (+ let subst = Maps.fromList (Lists.zip schemeVars tApps)+ expectedTypes = peelExpectedTypes subst (Lists.length argTerms) schemeType+ in (Right (Lists.zipWith (\arg -> \mExpected -> propagateType mExpected arg) argTerms (Lists.concat2 expectedTypes (Lists.replicate (Lists.length argTerms) (Model.TypeVariable (Model.Name "unused")))))))))))++applyCastIfSafe :: JavaEnvironment.Aliases -> Model.Type -> Syntax.Expression -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression+applyCastIfSafe aliases castType expr cx g =++ let trusted = JavaEnvironment.aliasesTrustedTypeVars aliases+ inScope = JavaEnvironment.aliasesInScopeTypeParams aliases+ castVars = collectTypeVars castType+ javaTypeVars =+ Sets.fromList (Lists.filter (\v -> Logic.or (Sets.member v inScope) (isLambdaBoundVariable v)) (Sets.toList castVars))+ isSafe =+ Logic.or (Sets.isEmpty trusted) (Logic.or (Sets.isEmpty javaTypeVars) (Sets.isEmpty (Sets.difference javaTypeVars trusted)))+ in (Logic.ifElse isSafe (Eithers.bind (encodeType aliases Sets.empty castType cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression expr)))))) (Right expr))++applyJavaArg :: Syntax.Expression -> Syntax.Expression -> Syntax.Expression+applyJavaArg expr jarg =+ Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Right (Utils.javaExpressionToJavaPrimary expr))) (Syntax.Identifier JavaNames.applyMethodName) [+ jarg])++applyOvergenSubstToTermAnnotations :: M.Map Model.Name Model.Type -> Model.Term -> t0 -> Graph.Graph -> Either t1 Model.Term+applyOvergenSubstToTermAnnotations subst term0 cx g = Right (applyOvergenSubstToTermAnnotationsGo subst g term0)++applyOvergenSubstToTermAnnotationsGo :: M.Map Model.Name Model.Type -> Graph.Graph -> Model.Term -> Model.Term+applyOvergenSubstToTermAnnotationsGo subst cx term =+ case term of+ Model.TermAnnotated v0 ->+ let inner = Model.annotatedTermBody v0+ ann = Annotations.getAnnotationMap (Model.annotatedTermAnnotation v0)+ ann_ =+ Optionals.match (Maps.lookup Constants.keyType ann) ann (\typeTerm -> Eithers.either (\_ -> ann) (\t ->+ let t_ = substituteTypeVarsWithTypes subst t+ in (Maps.insert Constants.keyType (EncodeModel.type_ t_) ann)) (DecodeModel.type_ cx typeTerm))+ in (Model.TermAnnotated (Model.AnnotatedTerm {+ Model.annotatedTermBody = (applyOvergenSubstToTermAnnotationsGo subst cx inner),+ Model.annotatedTermAnnotation = (Annotations.wrapAnnotationMap ann_)}))+ Model.TermApplication v0 -> Model.TermApplication (Model.Application {+ Model.applicationFunction = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.applicationFunction v0)),+ Model.applicationArgument = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.applicationArgument v0))})+ Model.TermLambda v0 -> Model.TermLambda (Model.Lambda {+ Model.lambdaParameter = (Model.lambdaParameter v0),+ Model.lambdaDomain = (Optionals.map (\d -> substituteTypeVarsWithTypes subst d) (Model.lambdaDomain v0)),+ Model.lambdaBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.lambdaBody v0))})+ Model.TermCases v0 -> Model.TermCases (Model.CaseStatement {+ Model.caseStatementTypeName = (Model.caseStatementTypeName v0),+ Model.caseStatementDefault = (Optionals.map (\d -> applyOvergenSubstToTermAnnotationsGo subst cx d) (Model.caseStatementDefault v0)),+ Model.caseStatementCases = (Lists.map (\fld -> Model.CaseAlternative {+ Model.caseAlternativeName = (Model.caseAlternativeName fld),+ Model.caseAlternativeHandler = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.caseAlternativeHandler fld))}) (Model.caseStatementCases v0))})+ Model.TermLet v0 -> Model.TermLet (Model.Let {+ Model.letBindings = (Lists.map (\b -> Model.Binding {+ Model.bindingName = (Model.bindingName b),+ Model.bindingTerm = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.bindingTerm b)),+ Model.bindingTypeScheme = (Model.bindingTypeScheme b)}) (Model.letBindings v0)),+ Model.letBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.letBody v0))})+ Model.TermTypeApplication v0 -> Model.TermTypeApplication (Model.TypeApplicationTerm {+ Model.typeApplicationTermBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.typeApplicationTermBody v0)),+ Model.typeApplicationTermType = (substituteTypeVarsWithTypes subst (Model.typeApplicationTermType v0))})+ Model.TermTypeLambda v0 -> Model.TermTypeLambda (Model.TypeLambda {+ Model.typeLambdaParameter = (Model.typeLambdaParameter v0),+ Model.typeLambdaBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Model.typeLambdaBody v0))})+ _ -> term++applySubstFull :: M.Map Model.Name Model.Type -> Model.Type -> Model.Type+applySubstFull s t =+ case (Strip.deannotateType t) of+ Model.TypeVariable v0 -> Maps.findWithDefault t v0 s+ Model.TypeFunction v0 -> Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = (applySubstFull s (Model.functionTypeDomain v0)),+ Model.functionTypeCodomain = (applySubstFull s (Model.functionTypeCodomain v0))})+ Model.TypeApplication v0 -> Model.TypeApplication (Model.ApplicationType {+ Model.applicationTypeFunction = (applySubstFull s (Model.applicationTypeFunction v0)),+ Model.applicationTypeArgument = (applySubstFull s (Model.applicationTypeArgument v0))})+ Model.TypeList v0 -> Model.TypeList (applySubstFull s v0)+ Model.TypeSet v0 -> Model.TypeSet (applySubstFull s v0)+ Model.TypeOptional v0 -> Model.TypeOptional (applySubstFull s v0)+ Model.TypeEffect v0 -> Model.TypeEffect (applySubstFull s v0)+ Model.TypeMap v0 -> Model.TypeMap (Model.MapType {+ Model.mapTypeKeys = (applySubstFull s (Model.mapTypeKeys v0)),+ Model.mapTypeValues = (applySubstFull s (Model.mapTypeValues v0))})+ Model.TypePair v0 -> Model.TypePair (Model.PairType {+ Model.pairTypeFirst = (applySubstFull s (Model.pairTypeFirst v0)),+ Model.pairTypeSecond = (applySubstFull s (Model.pairTypeSecond v0))})+ Model.TypeEither v0 -> Model.TypeEither (Model.EitherType {+ Model.eitherTypeLeft = (applySubstFull s (Model.eitherTypeLeft v0)),+ Model.eitherTypeRight = (applySubstFull s (Model.eitherTypeRight v0))})+ Model.TypeForall v0 -> Model.TypeForall (Model.ForallType {+ Model.forallTypeParameter = (Model.forallTypeParameter v0),+ Model.forallTypeBody = (applySubstFull (Maps.delete (Model.forallTypeParameter v0) s) (Model.forallTypeBody v0))})+ _ -> t++applySubstSimple :: M.Map Model.Name Model.Type -> Model.Type -> Model.Type+applySubstSimple subst t =+ case (Strip.deannotateType t) of+ Model.TypeVariable v0 -> Maps.findWithDefault t v0 subst+ _ -> t++arraysCompareExpr :: String -> String -> Syntax.Expression+arraysCompareExpr otherVar fname =++ let header =+ Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Arrays"))),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier "compare")})+ arg1 =+ Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Syntax.Identifier (Utils.sanitizeJavaName fname))})+ arg2 =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier otherVar) (Utils.javaIdentifier fname))+ in (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = header,+ Syntax.methodInvocationArguments = [+ arg1,+ arg2]}))++arraysEqualsClause :: String -> String -> Syntax.InclusiveOrExpression+arraysEqualsClause tmpName fname =++ let thisArg =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))+ otherArg =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier tmpName) (Utils.javaIdentifier fname))+ header =+ Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Arrays"))),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.equalsMethodName)})+ in (Utils.javaPostfixExpressionToJavaInclusiveOrExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = header,+ Syntax.methodInvocationArguments = [+ thisArg,+ otherArg]})))++augmentVariantClass :: JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> Syntax.ClassDeclaration -> Syntax.ClassDeclaration+augmentVariantClass aliases tparams elName cd =+ case cd of+ Syntax.ClassDeclarationNormal v0 ->+ let args = Lists.map (\tp -> Utils.typeParameterToTypeArgument tp) tparams+ extendsPart = Utils.nameToJavaClassType aliases True args elName Nothing+ newMods =+ [+ Syntax.ClassModifierPublic,+ Syntax.ClassModifierStatic,+ Syntax.ClassModifierFinal]+ oldBody = Syntax.normalClassDeclarationBody v0+ oldDecls = Syntax.unClassBody oldBody+ acceptDecl = withCommentString "Dispatch to {@code visitor}." (Utils.toAcceptMethod False tparams)+ newBody = Syntax.ClassBody (Lists.concat2 oldDecls [+ acceptDecl])+ in (Syntax.ClassDeclarationNormal (Syntax.NormalClassDeclaration {+ Syntax.normalClassDeclarationModifiers = newMods,+ Syntax.normalClassDeclarationIdentifier = (Syntax.normalClassDeclarationIdentifier v0),+ Syntax.normalClassDeclarationParameters = tparams,+ Syntax.normalClassDeclarationExtends = (Just extendsPart),+ Syntax.normalClassDeclarationImplements = (Syntax.normalClassDeclarationImplements v0),+ Syntax.normalClassDeclarationPermits = (Syntax.normalClassDeclarationPermits v0),+ Syntax.normalClassDeclarationBody = newBody}))+ _ -> cd++bindingIsFunctionType :: Model.Binding -> Bool+bindingIsFunctionType b =+ Optionals.match (Model.bindingTypeScheme b) (case (Strip.deannotateTerm (Model.bindingTerm b)) of+ Model.TermLambda _ -> True+ Model.TermProject _ -> True+ Model.TermCases _ -> True+ Model.TermUnwrap _ -> True+ _ -> False) (\ts -> case (Strip.deannotateType (Model.typeSchemeBody ts)) of+ Model.TypeFunction _ -> True+ Model.TypeForall v0 -> case (Strip.deannotateType (Model.forallTypeBody v0)) of+ Model.TypeFunction _ -> True+ _ -> False+ _ -> False)++bindingNameToFilePath :: Model.Name -> String+bindingNameToFilePath name =++ let qn = CoreNames.qualifyName name+ ns_ = Util.qualifiedNameModuleName qn+ local = Util.qualifiedNameLocal qn+ sanitized = Formatting.sanitizeWithUnderscores Language.reservedWords local+ unq =+ CoreNames.unqualifyName (Util.QualifiedName {+ Util.qualifiedNameModuleName = ns_,+ Util.qualifiedNameLocal = sanitized})+ in (CoreNames.nameToFilePath Util.CaseConventionCamel Util.CaseConventionPascal (File.FileExtension "java") unq)++bindingsToStatements :: JavaEnvironment.JavaEnvironment -> [Model.Binding] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error ([Syntax.BlockStatement], JavaEnvironment.JavaEnvironment)+bindingsToStatements env bindings cx g0 =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ g = JavaEnvironment.javaEnvironmentGraph env+ flatBindings = dedupBindings (JavaEnvironment.aliasesInScopeJavaVars aliases) (flattenBindings bindings)+ gExtended =+ Scoping.extendGraphForLet (\g1 -> \b -> Logic.ifElse (Predicates.isComplexBinding g1 b) (Just (Model.TermLiteral (Model.LiteralBoolean True))) Nothing) g (Model.Let {+ Model.letBindings = flatBindings,+ Model.letBody = (Model.TermVariable (Model.Name "dummy"))})+ bindingVars = Sets.fromList (Lists.map (\b -> Model.bindingName b) flatBindings)+ allDeps =+ Maps.fromList (Lists.map (\b ->+ let key = Model.bindingName b+ deps = Sets.intersection bindingVars (Variables.freeVariablesInTerm (Model.bindingTerm b))+ in (key, deps)) flatBindings)+ sorted =+ Sorting.topologicalSortComponents (Lists.map (\entry ->+ let key = Pairs.first entry+ deps = Pairs.second entry+ in (key, (Sets.toList deps))) (Maps.toList allDeps))+ recursiveVars =+ Sets.fromList (Lists.concat (Lists.map (\names -> Logic.ifElse (Equality.equal (Lists.length names) 1) (Optionals.match (Lists.head names) [] (\singleName -> Optionals.match (Maps.lookup singleName allDeps) [] (\deps -> Logic.ifElse (Sets.member singleName deps) [+ singleName] []))) names) sorted))+ thunkedVars =+ Sets.fromList (Lists.concat (Lists.map (\b ->+ let bname = Model.bindingName b+ in (Logic.ifElse (Logic.and (Logic.not (Sets.member bname recursiveVars)) (Logic.and (Logic.and (Predicates.isComplexBinding g b) (Logic.not (Predicates.isTrivialTerm (Model.bindingTerm b)))) (Logic.not (bindingIsFunctionType b)))) [+ bname] [])) flatBindings))+ aliasesExtended =+ JavaEnvironment.Aliases {+ JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases),+ JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases),+ JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases),+ JavaEnvironment.aliasesRecursiveVars = (Sets.union (JavaEnvironment.aliasesRecursiveVars aliases) recursiveVars),+ JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases),+ JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases),+ JavaEnvironment.aliasesInScopeJavaVars = (Sets.union (JavaEnvironment.aliasesInScopeJavaVars aliases) bindingVars),+ JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases),+ JavaEnvironment.aliasesLambdaVars = (JavaEnvironment.aliasesLambdaVars aliases),+ JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases),+ JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases),+ JavaEnvironment.aliasesMethodCodomain = (JavaEnvironment.aliasesMethodCodomain aliases),+ JavaEnvironment.aliasesThunkedVars = (Sets.union (JavaEnvironment.aliasesThunkedVars aliases) thunkedVars)}+ envExtended =+ JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = aliasesExtended,+ JavaEnvironment.javaEnvironmentGraph = gExtended}+ in (Logic.ifElse (Lists.isEmpty bindings) (Right ([], envExtended)) (Eithers.bind (Eithers.mapList (\names -> Eithers.bind (Eithers.mapList (\n -> toDeclInit aliasesExtended gExtended recursiveVars flatBindings n cx g) names) (\inits -> Eithers.bind (Eithers.mapList (\n -> toDeclStatement envExtended aliasesExtended gExtended recursiveVars thunkedVars flatBindings n cx g) names) (\decls -> Right (Lists.concat2 (Optionals.givens inits) decls)))) sorted) (\groups -> Right (Lists.concat groups, envExtended))))++boundTypeVariables :: Model.Type -> [Model.Name]+boundTypeVariables typ =+ case typ of+ Model.TypeAnnotated v0 -> boundTypeVariables (Model.annotatedTypeBody v0)+ Model.TypeForall v0 -> Lists.cons (Model.forallTypeParameter v0) (boundTypeVariables (Model.forallTypeBody v0))+ _ -> []++buildArgSubst :: S.Set Model.Name -> [Model.Type] -> [t0] -> M.Map Model.Name t0+buildArgSubst schemeVarSet schemeDoms argTypes =+ Maps.fromList (Lists.bind (Lists.zip schemeDoms argTypes) (\p ->+ let sdom = Pairs.first p+ argType = Pairs.second p+ in case (Strip.deannotateType sdom) of+ Model.TypeVariable v0 -> Logic.ifElse (Sets.member v0 schemeVarSet) [+ (v0, argType)] []+ _ -> []))++buildCurriedLambda :: [Model.Name] -> Syntax.Expression -> Syntax.Expression+buildCurriedLambda params inner = Lists.foldl (\acc -> \p -> Utils.javaLambda p acc) inner (Lists.reverse params)++buildSubstFromAnnotations :: S.Set Model.Name -> Model.Term -> t0 -> Graph.Graph -> Either t1 (M.Map Model.Name Model.Name)+buildSubstFromAnnotations schemeVarSet term cx g = Right (buildSubstFromAnnotations_go schemeVarSet g term)++buildSubstFromAnnotations_go :: S.Set Model.Name -> Graph.Graph -> Model.Term -> M.Map Model.Name Model.Name+buildSubstFromAnnotations_go schemeVarSet g term =+ case term of+ Model.TermAnnotated v0 ->+ let body = Model.annotatedTermBody v0+ anns = Annotations.getAnnotationMap (Model.annotatedTermAnnotation v0)+ bodySubst = buildSubstFromAnnotations_go schemeVarSet g body+ annSubst =+ Optionals.match (Maps.lookup Constants.keyType anns) Maps.empty (\typeTerm -> Eithers.either (\_ -> Maps.empty) (\annType -> case (Strip.deannotateTerm body) of+ Model.TermLambda v1 -> Optionals.match (Model.lambdaDomain v1) Maps.empty (\dom -> case (Strip.deannotateType annType) of+ Model.TypeFunction v2 -> buildTypeVarSubst schemeVarSet (Model.functionTypeDomain v2) dom+ _ -> Maps.empty)+ _ -> Maps.empty) (DecodeModel.type_ g typeTerm))+ in (Maps.union annSubst bodySubst)+ Model.TermApplication v0 -> Maps.union (buildSubstFromAnnotations_go schemeVarSet g (Model.applicationFunction v0)) (buildSubstFromAnnotations_go schemeVarSet g (Model.applicationArgument v0))+ Model.TermLambda v0 -> buildSubstFromAnnotations_go schemeVarSet g (Model.lambdaBody v0)+ Model.TermCases v0 ->+ let defSubst = Optionals.match (Model.caseStatementDefault v0) Maps.empty (\d -> buildSubstFromAnnotations_go schemeVarSet g d)+ caseSubsts =+ Lists.foldl (\acc -> \fld -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g (Model.caseAlternativeHandler fld))) Maps.empty (Model.caseStatementCases v0)+ in (Maps.union defSubst caseSubsts)+ Model.TermLet v0 ->+ let bindingSubst =+ Lists.foldl (\acc -> \b -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g (Model.bindingTerm b))) Maps.empty (Model.letBindings v0)+ in (Maps.union bindingSubst (buildSubstFromAnnotations_go schemeVarSet g (Model.letBody v0)))+ Model.TermList v0 -> Lists.foldl (\acc -> \t -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g t)) Maps.empty v0+ Model.TermOptional v0 -> Optionals.match v0 Maps.empty (\t -> buildSubstFromAnnotations_go schemeVarSet g t)+ Model.TermPair v0 -> Maps.union (buildSubstFromAnnotations_go schemeVarSet g (Pairs.first v0)) (buildSubstFromAnnotations_go schemeVarSet g (Pairs.second v0))+ Model.TermRecord v0 -> Lists.foldl (\acc -> \fld -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g (Model.fieldTerm fld))) Maps.empty (Model.recordFields v0)+ Model.TermSet v0 -> Lists.foldl (\acc -> \t -> Maps.union acc (buildSubstFromAnnotations_go schemeVarSet g t)) Maps.empty (Sets.toList v0)+ Model.TermTypeApplication v0 -> buildSubstFromAnnotations_go schemeVarSet g (Model.typeApplicationTermBody v0)+ Model.TermTypeLambda v0 -> buildSubstFromAnnotations_go schemeVarSet g (Model.typeLambdaBody v0)+ Model.TermEither v0 -> Eithers.either (\t -> buildSubstFromAnnotations_go schemeVarSet g t) (\t -> buildSubstFromAnnotations_go schemeVarSet g t) v0+ _ -> Maps.empty++buildTypeSubst :: S.Set Model.Name -> Model.Type -> Model.Type -> M.Map Model.Name Model.Type+buildTypeSubst schemeVarSet schemeType actualType =+ buildTypeSubst_go schemeVarSet (Strip.deannotateType schemeType) (Strip.deannotateType actualType)++buildTypeSubst_go :: S.Set Model.Name -> Model.Type -> Model.Type -> M.Map Model.Name Model.Type+buildTypeSubst_go svs st at =++ let goSub = \a -> \b -> buildTypeSubst_go svs (Strip.deannotateType a) (Strip.deannotateType b)+ in case st of+ Model.TypeVariable v0 -> Logic.ifElse (Sets.member v0 svs) (Maps.singleton v0 at) Maps.empty+ Model.TypeFunction v0 -> case at of+ Model.TypeFunction v1 -> Maps.union (goSub (Model.functionTypeDomain v0) (Model.functionTypeDomain v1)) (goSub (Model.functionTypeCodomain v0) (Model.functionTypeCodomain v1))+ _ -> Maps.empty+ Model.TypeApplication v0 -> case at of+ Model.TypeApplication v1 -> Maps.union (goSub (Model.applicationTypeFunction v0) (Model.applicationTypeFunction v1)) (goSub (Model.applicationTypeArgument v0) (Model.applicationTypeArgument v1))+ _ -> Maps.empty+ Model.TypeList v0 -> case at of+ Model.TypeList v1 -> goSub v0 v1+ _ -> Maps.empty+ Model.TypeSet v0 -> case at of+ Model.TypeSet v1 -> goSub v0 v1+ _ -> Maps.empty+ Model.TypeOptional v0 -> case at of+ Model.TypeOptional v1 -> goSub v0 v1+ _ -> Maps.empty+ Model.TypeMap v0 -> case at of+ Model.TypeMap v1 -> Maps.union (goSub (Model.mapTypeKeys v0) (Model.mapTypeKeys v1)) (goSub (Model.mapTypeValues v0) (Model.mapTypeValues v1))+ _ -> Maps.empty+ Model.TypePair v0 -> case at of+ Model.TypePair v1 -> Maps.union (goSub (Model.pairTypeFirst v0) (Model.pairTypeFirst v1)) (goSub (Model.pairTypeSecond v0) (Model.pairTypeSecond v1))+ _ -> Maps.empty+ Model.TypeEither v0 -> case at of+ Model.TypeEither v1 -> Maps.union (goSub (Model.eitherTypeLeft v0) (Model.eitherTypeLeft v1)) (goSub (Model.eitherTypeRight v0) (Model.eitherTypeRight v1))+ _ -> Maps.empty+ Model.TypeForall v0 -> case at of+ Model.TypeForall v1 -> goSub (Model.forallTypeBody v0) (Model.forallTypeBody v1)+ _ -> goSub (Model.forallTypeBody v0) at+ _ -> Maps.empty++buildTypeVarSubst :: S.Set Model.Name -> Model.Type -> Model.Type -> M.Map Model.Name Model.Name+buildTypeVarSubst schemeVarSet freshTyp canonTyp =+ buildTypeVarSubst_go schemeVarSet (Strip.deannotateType freshTyp) (Strip.deannotateType canonTyp)++buildTypeVarSubst_go :: S.Set Model.Name -> Model.Type -> Model.Type -> M.Map Model.Name Model.Name+buildTypeVarSubst_go svs ft ct =++ let goSub = \a -> \b -> buildTypeVarSubst_go svs (Strip.deannotateType a) (Strip.deannotateType b)+ in case ft of+ Model.TypeVariable v0 -> case ct of+ Model.TypeVariable v1 -> Logic.ifElse (Logic.and (Logic.not (Equality.equal v0 v1)) (Sets.member v1 svs)) (Maps.singleton v0 v1) Maps.empty+ _ -> Maps.empty+ Model.TypeFunction v0 -> case ct of+ Model.TypeFunction v1 -> Maps.union (goSub (Model.functionTypeDomain v0) (Model.functionTypeDomain v1)) (goSub (Model.functionTypeCodomain v0) (Model.functionTypeCodomain v1))+ _ -> Maps.empty+ Model.TypeApplication v0 -> case ct of+ Model.TypeApplication v1 -> Maps.union (goSub (Model.applicationTypeFunction v0) (Model.applicationTypeFunction v1)) (goSub (Model.applicationTypeArgument v0) (Model.applicationTypeArgument v1))+ _ -> Maps.empty+ Model.TypeList v0 -> case ct of+ Model.TypeList v1 -> goSub v0 v1+ _ -> Maps.empty+ Model.TypeSet v0 -> case ct of+ Model.TypeSet v1 -> goSub v0 v1+ _ -> Maps.empty+ Model.TypeOptional v0 -> case ct of+ Model.TypeOptional v1 -> goSub v0 v1+ _ -> Maps.empty+ Model.TypeMap v0 -> case ct of+ Model.TypeMap v1 -> Maps.union (goSub (Model.mapTypeKeys v0) (Model.mapTypeKeys v1)) (goSub (Model.mapTypeValues v0) (Model.mapTypeValues v1))+ _ -> Maps.empty+ Model.TypePair v0 -> case ct of+ Model.TypePair v1 -> Maps.union (goSub (Model.pairTypeFirst v0) (Model.pairTypeFirst v1)) (goSub (Model.pairTypeSecond v0) (Model.pairTypeSecond v1))+ _ -> Maps.empty+ Model.TypeEither v0 -> case ct of+ Model.TypeEither v1 -> Maps.union (goSub (Model.eitherTypeLeft v0) (Model.eitherTypeLeft v1)) (goSub (Model.eitherTypeRight v0) (Model.eitherTypeRight v1))+ _ -> Maps.empty+ Model.TypeForall v0 -> case ct of+ Model.TypeForall v1 -> goSub (Model.forallTypeBody v0) (Model.forallTypeBody v1)+ _ -> buildTypeVarSubst_go svs (Strip.deannotateType (Model.forallTypeBody v0)) ct+ _ -> case ct of+ Model.TypeForall v0 -> buildTypeVarSubst_go svs ft (Strip.deannotateType (Model.forallTypeBody v0))+ _ -> Maps.empty++builderSetterName :: Model.Name -> String+builderSetterName fname =++ let base = Utils.sanitizeJavaName (Model.unName fname)+ in (Logic.ifElse (Logic.or (Equality.equal base "build") (Equality.equal base "builder")) (Strings.concat2 base "_") base)++classModsPublic :: [Syntax.ClassModifier]+classModsPublic = [+ Syntax.ClassModifierPublic]++classifyDataReference :: Model.Name -> t0 -> Graph.Graph -> Either Errors.Error JavaEnvironment.JavaSymbolClass+classifyDataReference name cx g =+ Eithers.bind (Right (Lexical.lookupBinding g name)) (\mel -> Optionals.match mel (Right JavaEnvironment.JavaSymbolClassLocalVariable) (\el -> Optionals.match (Model.bindingTypeScheme el) (Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "no type scheme for element " (Model.unName (Model.bindingName el)))))) (\ts -> Right (classifyDataTerm ts (Model.bindingTerm el)))))++classifyDataTerm :: Model.TypeScheme -> Model.Term -> JavaEnvironment.JavaSymbolClass+classifyDataTerm ts term =+ Logic.ifElse (Dependencies.isLambda term) (+ let n = classifyDataTerm_countLambdaParams term+ in (Logic.ifElse (Ordering.gt n 1) (JavaEnvironment.JavaSymbolClassHoistedLambda n) JavaEnvironment.JavaSymbolClassUnaryFunction)) (+ let hasTypeParams = Logic.not (Lists.isEmpty (Model.typeSchemeVariables ts))+ in (Logic.ifElse hasTypeParams (+ let n2 = classifyDataTerm_countLambdaParams (classifyDataTerm_stripTypeLambdas term)+ in (Logic.ifElse (Ordering.gt n2 0) (JavaEnvironment.JavaSymbolClassHoistedLambda n2) JavaEnvironment.JavaSymbolClassNullaryFunction)) JavaEnvironment.JavaSymbolClassNullaryFunction))++classifyDataTerm_countLambdaParams :: Model.Term -> Int+classifyDataTerm_countLambdaParams t =+ case (Strip.deannotateTerm t) of+ Model.TermLambda v0 -> Math.add 1 (classifyDataTerm_countLambdaParams (Model.lambdaBody v0))+ Model.TermLet v0 -> classifyDataTerm_countLambdaParams (Model.letBody v0)+ _ -> 0++classifyDataTerm_stripTypeLambdas :: Model.Term -> Model.Term+classifyDataTerm_stripTypeLambdas t =+ case (Strip.deannotateTerm t) of+ Model.TermTypeLambda v0 -> classifyDataTerm_stripTypeLambdas (Model.typeLambdaBody v0)+ _ -> t++cmpDeclStatement :: t0 -> Syntax.BlockStatement+cmpDeclStatement aliases =+ Utils.variableDeclarationStatement aliases Utils.javaIntType (Utils.javaIdentifier "cmp") (Utils.javaIntExpression 0)++cmpNotZeroExpr :: Syntax.Expression+cmpNotZeroExpr =+ Utils.javaEqualityExpressionToJavaExpression (Syntax.EqualityExpressionNotEqual (Syntax.EqualityExpression_Binary {+ Syntax.equalityExpression_BinaryLhs = lhs,+ Syntax.equalityExpression_BinaryRhs = rhs}))+ where+ lhs =+ Utils.javaRelationalExpressionToJavaEqualityExpression (Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionName (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Utils.javaIdentifier "cmp")})))+ rhs =+ Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionPrimary (Utils.javaLiteralToJavaPrimary (Utils.javaInt 0)))++collectForallParams :: Model.Type -> [Model.Name]+collectForallParams t =+ case (Strip.deannotateType t) of+ Model.TypeForall v0 -> Lists.cons (Model.forallTypeParameter v0) (collectForallParams (Model.forallTypeBody v0))+ _ -> []++collectLambdaDomains :: Model.Term -> ([Model.Type], Model.Term)+collectLambdaDomains t =+ case (Strip.deannotateTerm t) of+ Model.TermLambda v0 -> Optionals.match (Model.lambdaDomain v0) ([], t) (\dom ->+ let rest = collectLambdaDomains (Model.lambdaBody v0)+ in (Lists.cons dom (Pairs.first rest), (Pairs.second rest)))+ _ -> ([], t)++collectTypeApps :: Model.Term -> [Model.Type] -> (Model.Term, [Model.Type])+collectTypeApps t acc =+ case (Strip.deannotateTerm t) of+ Model.TermTypeApplication v0 -> collectTypeApps (Model.typeApplicationTermBody v0) (Lists.cons (Model.typeApplicationTermType v0) acc)+ _ -> (Strip.deannotateTerm t, acc)++collectTypeApps0 :: Model.Term -> [Model.Type] -> (Model.Term, [Model.Type])+collectTypeApps0 t acc =+ case (Strip.deannotateTerm t) of+ Model.TermTypeApplication v0 -> collectTypeApps0 (Model.typeApplicationTermBody v0) (Lists.cons (Model.typeApplicationTermType v0) acc)+ _ -> (t, acc)++collectTypeVars :: Model.Type -> S.Set Model.Name+collectTypeVars typ = collectTypeVars_go (Strip.deannotateType typ)++collectTypeVars_go :: Model.Type -> S.Set Model.Name+collectTypeVars_go t =+ case t of+ Model.TypeVariable v0 -> Sets.singleton v0+ Model.TypeFunction v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Model.functionTypeDomain v0))) (collectTypeVars_go (Strip.deannotateType (Model.functionTypeCodomain v0)))+ Model.TypeApplication v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Model.applicationTypeFunction v0))) (collectTypeVars_go (Strip.deannotateType (Model.applicationTypeArgument v0)))+ Model.TypeList v0 -> collectTypeVars_go (Strip.deannotateType v0)+ Model.TypeSet v0 -> collectTypeVars_go (Strip.deannotateType v0)+ Model.TypeOptional v0 -> collectTypeVars_go (Strip.deannotateType v0)+ Model.TypeEffect v0 -> collectTypeVars_go (Strip.deannotateType v0)+ Model.TypeMap v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Model.mapTypeKeys v0))) (collectTypeVars_go (Strip.deannotateType (Model.mapTypeValues v0)))+ Model.TypePair v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Model.pairTypeFirst v0))) (collectTypeVars_go (Strip.deannotateType (Model.pairTypeSecond v0)))+ Model.TypeEither v0 -> Sets.union (collectTypeVars_go (Strip.deannotateType (Model.eitherTypeLeft v0))) (collectTypeVars_go (Strip.deannotateType (Model.eitherTypeRight v0)))+ Model.TypeForall v0 -> collectTypeVars_go (Strip.deannotateType (Model.forallTypeBody v0))+ _ -> Sets.empty++collectionTypeArgs :: String -> Int -> JavaEnvironment.Aliases -> [M.Map Model.Name Model.Term] -> [Syntax.Type] -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]+collectionTypeArgs label n aliases anns tyapps cx g =+ Logic.ifElse (Logic.not (Lists.isEmpty tyapps)) (takeTypeArgs label n tyapps cx g) (+ let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp -> Eithers.bind (Optionals.match mtyp (Right []) (\typ -> case (Strip.deannotateType typ) of+ Model.TypeList v0 -> Right [+ v0]+ Model.TypeSet v0 -> Right [+ v0]+ Model.TypeOptional v0 -> Right [+ v0]+ Model.TypeMap v0 -> Right [+ Model.mapTypeKeys v0,+ (Model.mapTypeValues v0)]+ _ -> Right [])) (\compTypes -> Eithers.mapList (\ct -> Eithers.bind (encodeType aliases Sets.empty ct cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) compTypes))))++comparableCompareExpr :: String -> String -> Syntax.Expression+comparableCompareExpr otherVar fname =++ let thisField = Utils.javaIdentifierToJavaExpression (Syntax.Identifier (Utils.sanitizeJavaName fname))+ otherField =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier otherVar) (Utils.javaIdentifier fname))+ in (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.core.overlay.java.util.Comparing") (Syntax.Identifier "compare") [+ thisField,+ otherField]))++compareAndReturnStmts :: String -> Model.FieldType -> [Syntax.BlockStatement]+compareAndReturnStmts otherVar f =+ [+ Syntax.BlockStatementStatement (Utils.javaAssignmentStatement (Syntax.LeftHandSideExpressionName (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Utils.javaIdentifier "cmp")})) (compareFieldExpr otherVar f)),+ (Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {+ Syntax.ifThenStatementExpression = cmpNotZeroExpr,+ Syntax.ifThenStatementStatement = (Utils.javaReturnStatement (Just (Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Utils.javaIdentifier "cmp")}))))})))]++compareFieldExpr :: String -> Model.FieldType -> Syntax.Expression+compareFieldExpr otherVar ft =++ let fname = Model.unName (Model.fieldTypeName ft)+ ftype = Model.fieldTypeType ft+ in (Logic.ifElse (isBinaryType ftype) (arraysCompareExpr otherVar fname) (Logic.ifElse (isNonComparableType ftype) (hashCodeCompareExpr otherVar fname) (comparableCompareExpr otherVar fname)))++compareToBody :: t0 -> String -> [Model.FieldType] -> [Syntax.BlockStatement]+compareToBody aliases otherVar fields =++ let zeroStmts = [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaIntExpression 0)))]+ in (Optionals.withDefault zeroStmts (Optionals.map (\p ->+ let firstField = Pairs.first p+ restFields = Pairs.second p+ in (Logic.ifElse (Lists.isEmpty restFields) [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (compareFieldExpr otherVar firstField)))] (Lists.concat2 [+ cmpDeclStatement aliases] (Lists.concat2 (Lists.concat (Lists.map (\f -> compareAndReturnStmts otherVar f) (Lists.cons firstField (Optionals.withDefault [] (Lists.init restFields))))) [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (compareFieldExpr otherVar (Optionals.withDefault firstField (Lists.last restFields)))))])))) (Lists.uncons fields)))++compareToZeroClause :: String -> String -> Syntax.InclusiveOrExpression+compareToZeroClause tmpName fname =++ let compareToArg =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier tmpName) (Utils.javaIdentifier fname))+ compareToVar =+ Syntax.MethodInvocation_VariantExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))+ compareToHeader =+ Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = compareToVar,+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.compareToMethodName)})+ lhs =+ Utils.javaRelationalExpressionToJavaEqualityExpression (Utils.javaPostfixExpressionToJavaRelationalExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = compareToHeader,+ Syntax.methodInvocationArguments = [+ compareToArg]})))+ rhs =+ Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionPrimary (Utils.javaLiteralToJavaPrimary (Utils.javaInt 0)))+ in (Utils.javaEqualityExpressionToJavaInclusiveOrExpression (Syntax.EqualityExpressionEqual (Syntax.EqualityExpression_Binary {+ Syntax.equalityExpression_BinaryLhs = lhs,+ Syntax.equalityExpression_BinaryRhs = rhs})))++constantDecl :: String -> String -> JavaEnvironment.Aliases -> Model.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments+constantDecl comment javaName aliases name cx g =++ let mods =+ [+ Syntax.FieldModifierPublic,+ Syntax.FieldModifierStatic,+ Syntax.FieldModifierFinal]+ nameName = Utils.nameToJavaName aliases (Model.Name "hydra.core.model.Name")+ env =+ JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = aliases,+ JavaEnvironment.javaEnvironmentGraph = g}+ in (Eithers.bind (encodeType aliases Sets.empty (Model.TypeVariable (Model.Name "hydra.core.model.Name")) cx g) (\jt -> Eithers.bind (encodeTerm env (Model.TermLiteral (Model.LiteralString (Model.unName name))) cx g) (\arg ->+ let init =+ Syntax.VariableInitializerExpression (Utils.javaConstructorCall (Utils.javaConstructorName nameName Nothing) [+ arg] Nothing)+ var = Utils.javaVariableDeclarator (Syntax.Identifier javaName) (Just init)+ in (Right (withCommentString comment (Utils.javaMemberField mods jt var))))))++constantDeclForFieldType :: Model.Name -> JavaEnvironment.Aliases -> Model.FieldType -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments+constantDeclForFieldType parentName aliases ftyp cx g =++ let name = Model.fieldTypeName ftyp+ javaName =+ Formatting.nonAlnumToUnderscores (Formatting.convertCase Util.CaseConventionCamel Util.CaseConventionUpperSnake (Model.unName name))+ comment =+ Strings.concat [+ "Name of the {@code ",+ (Model.unName parentName),+ ".",+ (Model.unName name),+ "} field."]+ in (constantDecl comment javaName aliases name cx g)++constantDeclForTypeName :: JavaEnvironment.Aliases -> Model.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments+constantDeclForTypeName aliases name cx g =++ let comment =+ Strings.concat [+ "Name of the {@code ",+ (Model.unName name),+ "} type."]+ in (constantDecl comment "TYPE_" aliases name cx g)++constructElementsInterface :: Packaging.Module -> [Syntax.InterfaceMemberDeclarationWithComments] -> (Model.Name, Syntax.CompilationUnit)+constructElementsInterface mod members =++ let ns = Packaging.moduleName mod+ parentNs = namespaceParent ns+ pkg = Optionals.match parentNs (Utils.javaPackageDeclaration ns) (\pns -> Utils.javaPackageDeclaration pns)+ mods = [+ Syntax.InterfaceModifierPublic]+ className = elementsClassName ns+ elName = elementsQualifiedName ns+ body = Syntax.InterfaceBody members+ itf =+ Syntax.TopLevelClassOrInterfaceDeclarationInterface (Syntax.InterfaceDeclarationNormalInterface (Syntax.NormalInterfaceDeclaration {+ Syntax.normalInterfaceDeclarationModifiers = mods,+ Syntax.normalInterfaceDeclarationIdentifier = (Utils.javaTypeIdentifier className),+ Syntax.normalInterfaceDeclarationParameters = [],+ Syntax.normalInterfaceDeclarationExtends = [],+ Syntax.normalInterfaceDeclarationPermits = [],+ Syntax.normalInterfaceDeclarationBody = body}))+ decl =+ Syntax.TopLevelClassOrInterfaceDeclarationWithComments {+ Syntax.topLevelClassOrInterfaceDeclarationWithCommentsValue = itf,+ Syntax.topLevelClassOrInterfaceDeclarationWithCommentsComments = (Optionals.bind (Packaging.moduleMetadata mod) (\em -> Packaging.entityMetadataDescription em))}+ in (+ elName,+ (Syntax.CompilationUnitOrdinary (Syntax.OrdinaryCompilationUnit {+ Syntax.ordinaryCompilationUnitPackage = (Just pkg),+ Syntax.ordinaryCompilationUnitImports = [],+ Syntax.ordinaryCompilationUnitTypes = [+ decl]})))++correctCastType :: Model.Term -> [Model.Type] -> Model.Type -> t0 -> t1 -> Either t2 Model.Type+correctCastType innerBody typeArgs fallback cx g =+ case (Strip.deannotateTerm innerBody) of+ Model.TermPair _ -> Logic.ifElse (Equality.equal (Lists.length typeArgs) 2) (Right (Model.TypePair (Model.PairType {+ Model.pairTypeFirst = (Optionals.withDefault fallback (Lists.at 0 typeArgs)),+ Model.pairTypeSecond = (Optionals.withDefault fallback (Lists.at 1 typeArgs))}))) (Right fallback)+ _ -> Right fallback++correctTypeApps :: t0 -> Model.Name -> [Model.Term] -> [Model.Type] -> t1 -> Graph.Graph -> Either Errors.Error [Model.Type]+correctTypeApps gr name args fallbackTypeApps cx g =+ Eithers.bind (Right (Lexical.lookupBinding g name)) (\mel -> Optionals.match mel (Right fallbackTypeApps) (\el -> Optionals.match (Model.bindingTypeScheme el) (Right fallbackTypeApps) (\ts ->+ let schemeType = Model.typeSchemeBody ts+ allSchemeVars = Lists.filter (\v -> isSimpleName v) (Model.typeSchemeVariables ts)+ schemeTypeVars = collectTypeVars schemeType+ usedFlags = Lists.map (\v -> Sets.member v schemeTypeVars) allSchemeVars+ usedSchemeVars = filterByFlags allSchemeVars usedFlags+ nParams = countFunctionParams schemeType+ peeled = peelDomainTypes nParams schemeType+ calleeDoms = Pairs.first peeled+ calleeCod = Pairs.second peeled+ overgenSubst = detectAccumulatorUnification calleeDoms calleeCod usedSchemeVars+ keepFlags =+ Lists.map (\v -> Logic.and (Sets.member v schemeTypeVars) (Logic.not (Maps.member v overgenSubst))) allSchemeVars+ schemeVars = filterByFlags allSchemeVars keepFlags+ filteredFallback0 =+ Logic.ifElse (Equality.equal (Lists.length allSchemeVars) (Lists.length fallbackTypeApps)) (filterByFlags fallbackTypeApps keepFlags) fallbackTypeApps+ filteredFallback =+ Logic.ifElse (Maps.isEmpty overgenSubst) filteredFallback0 (Lists.map (\t -> substituteTypeVarsWithTypes overgenSubst t) filteredFallback0)+ in (Logic.ifElse (Logic.or (Lists.isEmpty schemeVars) (Logic.not (Equality.equal (Lists.length schemeVars) (Lists.length filteredFallback)))) (Right filteredFallback) (correctTypeAppsWithArgs schemeVars filteredFallback schemeType args cx g)))))++correctTypeAppsWithArgs :: [Model.Name] -> [Model.Type] -> Model.Type -> [Model.Term] -> t0 -> Graph.Graph -> Either Errors.Error [Model.Type]+correctTypeAppsWithArgs schemeVars fallbackTypeApps schemeType args cx g =++ let schemeVarSet = Sets.fromList schemeVars+ irSubst = Maps.fromList (Lists.zip schemeVars fallbackTypeApps)+ peeled = peelDomainTypes (Lists.length args) schemeType+ schemeDoms = Pairs.first peeled+ in (Eithers.bind (Eithers.mapList (\arg -> Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal arg))) args) (\mArgTypes -> Logic.ifElse (Logic.not (Lists.isEmpty (Lists.filter (\m -> Optionals.isNone m) mArgTypes))) (Right fallbackTypeApps) (+ let argTypes = Lists.bind mArgTypes (\m -> Optionals.match m [] (\x -> Lists.singleton x))+ irDoms = Lists.map (\d -> applySubstSimple irSubst d) schemeDoms+ domsMatch =+ Lists.isEmpty (Lists.filter (\p -> Logic.not (typesMatch (Strip.deannotateType (Pairs.first p)) (Strip.deannotateType (Pairs.second p)))) (Lists.zip irDoms argTypes))+ in (Logic.ifElse domsMatch (Right fallbackTypeApps) (Right (resolveTypeApps schemeVars fallbackTypeApps (buildArgSubst schemeVarSet schemeDoms argTypes)))))))++countFunctionParams :: Model.Type -> Int+countFunctionParams t =+ case (Strip.deannotateType t) of+ Model.TypeFunction v0 -> Math.add 1 (countFunctionParams (Model.functionTypeCodomain v0))+ _ -> 0++declarationForRecordType :: Bool -> Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> [Model.FieldType] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration+declarationForRecordType isInner isSer aliases tparams elName fields cx g =+ declarationForRecordType_ isInner isSer aliases tparams elName Nothing Nothing fields cx g++declarationForRecordType_ :: Bool -> Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> Maybe Model.Name -> Maybe Int -> [Model.FieldType] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration+declarationForRecordType_ isInner isSer aliases tparams elName parentName ordinal fields cx g =+ Eithers.bind (Eithers.mapList (\f -> recordMemberVar aliases f cx g) fields) (\memberVars -> Eithers.bind (Eithers.mapList (\p -> addComment (Pairs.first p) (Pairs.second p) cx g) (Lists.zip memberVars fields)) (\memberVars_ ->+ let elNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases elName)+ linkTargetStr =+ Optionals.match parentName elNameStr (\pn -> Strings.concat2 (Strings.concat2 (Syntax.unIdentifier (Utils.nameToJavaName aliases pn)) ".") (Utils.sanitizeJavaName (Util.qualifiedNameLocal (CoreNames.qualifyName elName))))+ in (Eithers.bind (Logic.ifElse (Ordering.gt (Lists.length fields) 1) (Eithers.mapList (\f -> Eithers.bind (recordWithMethod aliases elName fields f cx g) (\decl ->+ let fname = Model.unName (Model.fieldTypeName f)+ comment =+ Strings.concat [+ "Returns a copy of this {@link ",+ linkTargetStr,+ "} with {@code ",+ fname,+ "} replaced."]+ in (Right (withCommentString comment decl)))) fields) (Right [])) (\withMethods -> Eithers.bind (recordConstructor aliases elName fields cx g) (\cons -> Eithers.bind (Eithers.mapList (\f ->+ let fname = Utils.sanitizeJavaName (Model.unName (Model.fieldTypeName f))+ in (Eithers.bind (Annotations.commentsFromFieldType cx g f) (\mDoc -> Right (Optionals.match mDoc "" (\d -> Strings.concat [+ "@param ",+ fname,+ " ",+ d]))))) fields) (\paramLines ->+ let nonEmptyParamLines = Lists.filter (\l -> Logic.not (Equality.equal l "")) paramLines+ consBaseComment =+ Strings.concat [+ "Constructs an immutable {@link ",+ linkTargetStr,+ "}."]+ consComment =+ Logic.ifElse (Lists.isEmpty nonEmptyParamLines) consBaseComment (Strings.concat [+ consBaseComment,+ "\n\n",+ (Strings.join "\n" nonEmptyParamLines)])+ consWithComment = withCommentString consComment cons+ in (Eithers.bind (Logic.ifElse isInner (Right []) (Eithers.bind (constantDeclForTypeName aliases elName cx g) (\d -> Eithers.bind (Eithers.mapList (\f -> constantDeclForFieldType elName aliases f cx g) fields) (\dfields -> Right (Lists.cons d dfields))))) (\tn -> Eithers.bind (Logic.ifElse isInner (Right []) (recordBuilderClass aliases tparams elName fields cx g)) (\builderDecls ->+ let comparableMethods =+ Optionals.match parentName (Logic.ifElse (Logic.and (Logic.not isInner) isSer) [+ recordCompareToMethod aliases tparams elName fields] []) (\pn -> Logic.ifElse isSer (variantCompareToMethod aliases tparams pn elName (Optionals.withDefault 0 ordinal) fields) [])+ noCommentMethods =+ Lists.map (\x -> noComment x) (Lists.concat2 [+ recordEqualsMethod aliases elName fields,+ (recordHashCodeMethod fields),+ (recordToStringMethod elName fields)] comparableMethods)+ bodyDecls =+ Lists.concat [+ tn,+ memberVars_,+ [+ consWithComment],+ noCommentMethods,+ withMethods,+ builderDecls]+ ifaces = Logic.ifElse isInner (serializableTypes isSer) (interfaceTypes isSer aliases tparams elName)+ in (Right (Utils.javaClassDeclaration aliases tparams elName classModsPublic Nothing ifaces bodyDecls)))))))))))++declarationForUnionType :: Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> [Model.FieldType] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration+declarationForUnionType isSer aliases tparams elName fields cx g =+ Eithers.bind (Eithers.mapList (\ftord ->+ let ft = Pairs.first ftord+ ordinal = Pairs.second ftord+ fname = Model.fieldTypeName ft+ ftype = Model.fieldTypeType ft+ rfields =+ Logic.ifElse (Predicates.isUnitType (Strip.deannotateType ftype)) [] [+ Model.FieldType {+ Model.fieldTypeName = (Model.Name "value"),+ Model.fieldTypeType = (Strip.deannotateType ftype)}]+ varName = Utils.variantClassName False elName fname+ in (Eithers.bind (declarationForRecordType_ True isSer aliases [] varName (Logic.ifElse isSer (Just elName) Nothing) (Logic.ifElse isSer (Just ordinal) Nothing) rfields cx g) (\innerDecl -> Right (augmentVariantClass aliases tparams elName innerDecl)))) (Lists.zip fields (Math.range 0 (Lists.length fields)))) (\variantClasses ->+ let variantDecls =+ Lists.map (\vc -> Syntax.ClassBodyDeclarationClassMember (Syntax.ClassMemberDeclarationClass vc)) variantClasses+ in (Eithers.bind (Eithers.mapList (\pair -> addComment (Pairs.first pair) (Pairs.second pair) cx g) (Lists.zip variantDecls fields)) (\variantDecls_ ->+ let privateConst = Utils.makeConstructor aliases elName True [] []+ acceptDecl = Utils.toAcceptMethod True tparams+ vtparams = Lists.concat2 tparams [+ Utils.javaTypeParameter JavaNames.visitorReturnParameter]+ elNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases elName)+ visitorMethods =+ Lists.map (\ft ->+ let fname = Model.fieldTypeName ft+ fnameStr = Model.unName fname+ typeArgs = Lists.map (\tp -> Utils.typeParameterToTypeArgument tp) tparams+ varName = Utils.variantClassName False elName fname+ varNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases varName)+ varLocalStr = Utils.sanitizeJavaName (Util.qualifiedNameLocal (CoreNames.qualifyName varName))+ linkVarNameStr = Strings.concat2 (Strings.concat2 elNameStr ".") varLocalStr+ varRef = Utils.javaClassTypeToJavaType (Utils.nameToJavaClassType aliases False typeArgs varName Nothing)+ param = Utils.javaTypeToJavaFormalParameter varRef (Model.Name "instance")+ resultR = Utils.javaTypeToJavaResult (Syntax.TypeReference Utils.visitorTypeVariable)+ comment =+ Strings.concat [+ "Visit the {@link ",+ linkVarNameStr,+ "} case."]+ in (comment, (Utils.interfaceMethodDeclaration [] [] JavaNames.visitMethodName [+ param] resultR Nothing))) fields+ visitorBody =+ Syntax.InterfaceBody (Lists.map (\p -> withInterfaceCommentString (Pairs.first p) (Pairs.second p)) visitorMethods)+ visitor =+ Utils.javaInterfaceDeclarationToJavaClassBodyDeclaration (Syntax.NormalInterfaceDeclaration {+ Syntax.normalInterfaceDeclarationModifiers = [+ Syntax.InterfaceModifierPublic],+ Syntax.normalInterfaceDeclarationIdentifier = (Syntax.TypeIdentifier (Syntax.Identifier JavaNames.visitorName)),+ Syntax.normalInterfaceDeclarationParameters = vtparams,+ Syntax.normalInterfaceDeclarationExtends = [],+ Syntax.normalInterfaceDeclarationPermits = [],+ Syntax.normalInterfaceDeclarationBody = visitorBody})+ typeArgs = Lists.map (\tp -> Utils.typeParameterToTypeArgument tp) tparams+ visitorClassType =+ Utils.javaClassType (Lists.concat2 (Lists.map (\tp -> Utils.typeParameterToReferenceType tp) tparams) [+ Utils.visitorTypeVariable]) Nothing JavaNames.visitorName+ mainInstanceParam =+ Utils.javaTypeToJavaFormalParameter (Utils.javaClassTypeToJavaType (Utils.nameToJavaClassType aliases False typeArgs elName Nothing)) (Model.Name "instance")+ resultR = Utils.javaTypeToJavaResult (Syntax.TypeReference Utils.visitorTypeVariable)+ throwStmt =+ Syntax.BlockStatementStatement (Utils.javaThrowIllegalStateException [+ Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions [+ Utils.javaStringMultiplicativeExpression "Non-exhaustive patterns when matching: ",+ (Syntax.MultiplicativeExpressionUnary (Utils.javaIdentifierToJavaUnaryExpression (Syntax.Identifier "instance")))])])+ defaultMod = [+ Syntax.InterfaceMethodModifierDefault]+ otherwiseDecl =+ Utils.interfaceMethodDeclaration defaultMod [] JavaNames.otherwiseMethodName [+ mainInstanceParam] resultR (Just [+ throwStmt])+ otherwiseComment = "Default branch for unhandled cases."+ pvVisitMethods =+ Lists.map (\ft ->+ let fname = Model.fieldTypeName ft+ varName = Utils.variantClassName False elName fname+ varNameStr = Syntax.unIdentifier (Utils.nameToJavaName aliases varName)+ varLocalStr = Utils.sanitizeJavaName (Util.qualifiedNameLocal (CoreNames.qualifyName varName))+ linkVarNameStr = Strings.concat2 (Strings.concat2 elNameStr ".") varLocalStr+ varRef = Utils.javaClassTypeToJavaType (Utils.nameToJavaClassType aliases False typeArgs varName Nothing)+ param = Utils.javaTypeToJavaFormalParameter varRef (Model.Name "instance")+ mi =+ Utils.methodInvocation Nothing (Syntax.Identifier JavaNames.otherwiseMethodName) [+ Utils.javaIdentifierToJavaExpression (Syntax.Identifier "instance")]+ returnOtherwise =+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaPrimaryToJavaExpression (Utils.javaMethodInvocationToJavaPrimary mi))))+ comment =+ Strings.concat [+ "Visit the {@link ",+ linkVarNameStr,+ "} case."]+ in (+ comment,+ (Utils.interfaceMethodDeclaration defaultMod [] JavaNames.visitMethodName [+ param] resultR (Just [+ returnOtherwise])))) fields+ pvBody =+ Syntax.InterfaceBody (Lists.cons (withInterfaceCommentString otherwiseComment otherwiseDecl) (Lists.map (\p -> withInterfaceCommentString (Pairs.first p) (Pairs.second p)) pvVisitMethods))+ partialVisitor =+ Utils.javaInterfaceDeclarationToJavaClassBodyDeclaration (Syntax.NormalInterfaceDeclaration {+ Syntax.normalInterfaceDeclarationModifiers = [+ Syntax.InterfaceModifierPublic],+ Syntax.normalInterfaceDeclarationIdentifier = (Syntax.TypeIdentifier (Syntax.Identifier JavaNames.partialVisitorName)),+ Syntax.normalInterfaceDeclarationParameters = vtparams,+ Syntax.normalInterfaceDeclarationExtends = [+ Syntax.InterfaceType visitorClassType],+ Syntax.normalInterfaceDeclarationPermits = [],+ Syntax.normalInterfaceDeclarationBody = pvBody})+ in (Eithers.bind (constantDeclForTypeName aliases elName cx g) (\tn0 -> Eithers.bind (Eithers.mapList (\ft -> constantDeclForFieldType elName aliases ft cx g) fields) (\tn1 ->+ let tn = Lists.concat2 [+ tn0] tn1+ privateConstComment =+ Strings.concat [+ "Constructs an immutable {@link ",+ elNameStr,+ "}."]+ acceptComment = "Dispatch to {@code visitor}."+ visitorIfaceComment =+ Strings.concat [+ "Visitor over {@link ",+ elNameStr,+ "}."]+ partialVisitorIfaceComment =+ Strings.concat [+ "Partial visitor over {@link ",+ elNameStr,+ "} with a default {@link #otherwise} branch."]+ hydraOrdinalAbstractDecls = Logic.ifElse isSer [+ noComment (hydraOrdinalMethod Nothing)] []+ otherDecls =+ Lists.concat2 [+ withCommentString privateConstComment privateConst,+ (withCommentString acceptComment acceptDecl),+ (withCommentString visitorIfaceComment visitor),+ (withCommentString partialVisitorIfaceComment partialVisitor)] hydraOrdinalAbstractDecls+ bodyDecls =+ Lists.concat [+ tn,+ otherDecls,+ variantDecls_]+ mods = Lists.concat2 classModsPublic [+ Syntax.ClassModifierAbstract]+ in (Right (Utils.javaClassDeclaration aliases tparams elName mods Nothing (interfaceTypes isSer aliases tparams elName) bodyDecls))))))))++decodeTypeFromTerm :: Model.Term -> Maybe Model.Type+decodeTypeFromTerm term =+ case (Strip.deannotateTerm term) of+ Model.TermInject v0 -> Logic.ifElse (Equality.equal (Model.injectionTypeName v0) (Model.Name "hydra.core.model.Type")) (+ let fname = Model.unName (Model.fieldName (Model.injectionField v0))+ fterm = Model.fieldTerm (Model.injectionField v0)+ in (Logic.ifElse (Equality.equal fname "variable") (case fterm of+ Model.TermWrap v1 -> case (Model.wrappedTermBody v1) of+ Model.TermLiteral v2 -> case v2 of+ Model.LiteralString v3 -> Just (Model.TypeVariable (Model.Name v3))+ _ -> Nothing+ _ -> Nothing+ _ -> Nothing) (Logic.ifElse (Equality.equal fname "annotated") (case fterm of+ Model.TermRecord v1 -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Model.fieldName f) (Model.Name "body")) (Model.recordFields v1))) (\bodyField -> decodeTypeFromTerm (Model.fieldTerm bodyField))+ _ -> Nothing) (Logic.ifElse (Equality.equal fname "application") (case fterm of+ Model.TermRecord v1 -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Model.fieldName f) (Model.Name "function")) (Model.recordFields v1))) (\funcField -> Optionals.bind (decodeTypeFromTerm (Model.fieldTerm funcField)) (\func -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Model.fieldName f) (Model.Name "argument")) (Model.recordFields v1))) (\argField -> Optionals.map (\arg -> Model.TypeApplication (Model.ApplicationType {+ Model.applicationTypeFunction = func,+ Model.applicationTypeArgument = arg})) (decodeTypeFromTerm (Model.fieldTerm argField)))))+ _ -> Nothing) (Logic.ifElse (Equality.equal fname "function") (case fterm of+ Model.TermRecord v1 -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Model.fieldName f) (Model.Name "domain")) (Model.recordFields v1))) (\domField -> Optionals.bind (decodeTypeFromTerm (Model.fieldTerm domField)) (\dom -> Optionals.bind (Lists.head (Lists.filter (\f -> Equality.equal (Model.fieldName f) (Model.Name "codomain")) (Model.recordFields v1))) (\codField -> Optionals.map (\cod -> Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = cod})) (decodeTypeFromTerm (Model.fieldTerm codField)))))+ _ -> Nothing) (Logic.ifElse (Equality.equal fname "literal") (case fterm of+ Model.TermInject v1 -> Logic.ifElse (Equality.equal (Model.unName (Model.fieldName (Model.injectionField v1))) "string") (Just (Model.TypeLiteral Model.LiteralTypeString)) Nothing+ _ -> Nothing) Nothing)))))) Nothing+ _ -> Nothing++dedupBindings :: S.Set Model.Name -> [Model.Binding] -> [Model.Binding]+dedupBindings inScope bs =+ Optionals.withDefault [] (Optionals.map (\p ->+ let b = Pairs.first p+ rest = Pairs.second p+ name = Model.bindingName b+ in (Logic.ifElse (Sets.member name inScope) (+ let newName = freshJavaName name inScope+ subst = Maps.singleton name newName+ rest2 =+ Lists.map (\b2 -> Model.Binding {+ Model.bindingName = (Model.bindingName b2),+ Model.bindingTerm = (Variables.substituteVariables subst (Model.bindingTerm b2)),+ Model.bindingTypeScheme = (Model.bindingTypeScheme b2)}) rest+ in (Lists.cons (Model.Binding {+ Model.bindingName = newName,+ Model.bindingTerm = (Model.bindingTerm b),+ Model.bindingTypeScheme = (Model.bindingTypeScheme b)}) (dedupBindings (Sets.insert newName inScope) rest2))) (Lists.cons b (dedupBindings (Sets.insert name inScope) rest)))) (Lists.uncons bs))++detectAccumulatorUnification :: [Model.Type] -> Model.Type -> [Model.Name] -> M.Map Model.Name Model.Type+detectAccumulatorUnification doms cod tparams =++ let tparamSet = Sets.fromList tparams+ allPairs = Lists.bind doms (\d -> extractInOutPair d)+ groupedByInput = groupPairsByFirst allPairs+ selfRefSubst = selfRefSubstitution groupedByInput+ directPairs = Lists.bind doms (\d -> extractDirectReturn tparamSet d)+ groupedDirect = groupPairsByFirst directPairs+ directInputVars = Sets.fromList (Lists.map (\p -> Pairs.first p) directPairs)+ codVar =+ case (Strip.deannotateType cod) of+ Model.TypeVariable v0 -> Just v0+ _ -> Nothing+ directRefSubst = directRefSubstitution directInputVars codVar groupedDirect+ codSubst =+ Optionals.match (findPairFirst cod) Maps.empty (\cv -> Logic.ifElse (Maps.member cv selfRefSubst) Maps.empty (Optionals.match (findSelfRefVar groupedByInput) Maps.empty (\refVar -> Logic.ifElse (Equality.equal cv refVar) Maps.empty (Maps.singleton cv refVar))))+ domVars = Sets.fromList (Lists.bind doms (\d -> Sets.toList (collectTypeVars d)))+ danglingSubst =+ Optionals.match (findPairFirst cod) Maps.empty (\cv -> Logic.ifElse (Sets.member cv domVars) Maps.empty (Optionals.match (findSelfRefVar groupedByInput) Maps.empty (\refVar -> Maps.singleton cv (Model.TypeVariable refVar))))+ in (Maps.union (Maps.union (Maps.union (nameMapToTypeMap selfRefSubst) (nameMapToTypeMap codSubst)) danglingSubst) (nameMapToTypeMap directRefSubst))++directRefSubstitution :: (Eq t0, Ord t0) => (S.Set t0 -> Maybe t0 -> M.Map t0 [t0] -> M.Map t0 t0)+directRefSubstitution directInputVars codVar grouped =+ Lists.foldl (\subst -> \entry -> directRefSubstitution_processGroup directInputVars codVar subst (Pairs.first entry) (Pairs.second entry)) Maps.empty (Maps.toList grouped)++directRefSubstitution_processGroup :: (Eq t0, Ord t0) => (S.Set t0 -> Maybe t0 -> M.Map t0 t0 -> t0 -> [t0] -> M.Map t0 t0)+directRefSubstitution_processGroup directInputVars codVar subst inVar outVars =++ let selfRefCount = Lists.length (Lists.filter (\v -> Equality.equal v inVar) outVars)+ nonSelfVars = Lists.filter (\v -> Logic.not (Equality.equal v inVar)) outVars+ safeNonSelfVars =+ Lists.filter (\v -> Logic.and (Logic.not (Sets.member v directInputVars)) (Logic.not (Equality.equal (Just v) codVar))) nonSelfVars+ in (Logic.ifElse (Logic.and (Ordering.gte selfRefCount 2) (Logic.not (Lists.isEmpty safeNonSelfVars))) (Lists.foldl (\s -> \v -> Maps.insert v inVar s) subst safeNonSelfVars) subst)++domTypeArgs :: JavaEnvironment.Aliases -> Model.Type -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]+domTypeArgs aliases d cx g =++ let args = extractTypeApplicationArgs (Strip.deannotateType d)+ in (Logic.ifElse (Logic.not (Lists.isEmpty args)) (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) args) (Right (javaTypeArgumentsForType d)))++elementJavaIdentifier :: Bool -> Bool -> JavaEnvironment.Aliases -> Model.Name -> Syntax.Identifier+elementJavaIdentifier isPrim isMethod aliases name =++ let qn = CoreNames.qualifyName name+ ns_ = Util.qualifiedNameModuleName qn+ local = Util.qualifiedNameLocal qn+ sep = Logic.ifElse isMethod "::" "."+ in (Logic.ifElse isPrim (Syntax.Identifier (Strings.concat2 (Strings.concat2 (elementJavaIdentifier_qualify aliases ns_ (Formatting.capitalize local)) ".") JavaNames.applyMethodName)) (Optionals.match ns_ (Syntax.Identifier (Utils.sanitizeJavaName local)) (\n -> Syntax.Identifier (Strings.concat2 (Strings.concat2 (elementJavaIdentifier_qualify aliases (namespaceParent n) (elementsClassName n)) sep) (Utils.sanitizeJavaName local)))))++elementJavaIdentifier_qualify :: JavaEnvironment.Aliases -> Maybe Packaging.ModuleName -> String -> String+elementJavaIdentifier_qualify aliases mns s =+ Syntax.unIdentifier (Utils.nameToJavaName aliases (CoreNames.unqualifyName (Util.QualifiedName {+ Util.qualifiedNameModuleName = mns,+ Util.qualifiedNameLocal = s})))++elementsClassName :: Packaging.ModuleName -> String+elementsClassName ns =++ let nsStr = Packaging.unModuleName ns+ parts = Strings.splitOn "." nsStr+ in (Formatting.sanitizeWithUnderscores Language.reservedWords (Formatting.capitalize (Optionals.withDefault nsStr (Lists.last parts))))++elementsQualifiedName :: Packaging.ModuleName -> Model.Name+elementsQualifiedName ns =+ CoreNames.unqualifyName (Util.QualifiedName {+ Util.qualifiedNameModuleName = (namespaceParent ns),+ Util.qualifiedNameLocal = (elementsClassName ns)})++encodeApplication :: JavaEnvironment.JavaEnvironment -> Model.Application -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeApplication env app cx g0 =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ g = JavaEnvironment.javaEnvironmentGraph env+ gathered = Analysis.gatherArgsWithTypeApps (Model.TermApplication app) [] []+ fun = Pairs.first gathered+ args = Pairs.first (Pairs.second gathered)+ typeApps = Pairs.second (Pairs.second gathered)+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal fun))) (\mfunTyp -> Eithers.bind (Optionals.match mfunTyp (Checking.typeOfTerm cx g fun) (\t -> Right t)) (\funTyp ->+ let arity = Arity.typeArity funTyp+ deannotatedFun = Strip.deannotateTerm fun+ calleeName =+ case deannotatedFun of+ Model.TermVariable v0 -> Just v0+ _ -> Nothing+ in (Eithers.bind (Optionals.match calleeName (Right args) (\cname -> annotateLambdaArgs cname typeApps args cx g)) (\annotatedArgs -> case deannotatedFun of+ Model.TermVariable v0 -> Logic.ifElse (Optionals.isGiven (Maps.lookup v0 (Graph.graphPrimitives g))) (+ let hargs = Lists.take arity annotatedArgs+ rargs = Lists.drop arity annotatedArgs+ in (Eithers.bind (functionCall env True v0 hargs [] cx g) (\initialCall -> Eithers.foldList (\acc -> \h -> Eithers.bind (encodeTerm env h cx g) (\jarg -> Right (applyJavaArg acc jarg))) initialCall rargs))) (Logic.ifElse (Logic.and (isRecursiveVariable aliases v0) (Logic.not (isLambdaBoundIn v0 (JavaEnvironment.aliasesLambdaVars aliases)))) (encodeApplication_fallback env aliases g typeApps (Model.applicationFunction app) (Model.applicationArgument app) cx g) (Eithers.bind (classifyDataReference v0 cx g) (\symClass ->+ let methodArity =+ case symClass of+ JavaEnvironment.JavaSymbolClassHoistedLambda v1 -> v1+ _ -> arity+ hargs = Lists.take methodArity annotatedArgs+ rargs = Lists.drop methodArity annotatedArgs+ trusted = JavaEnvironment.aliasesTrustedTypeVars aliases+ inScope = JavaEnvironment.aliasesInScopeTypeParams aliases+ filteredTypeApps =+ Logic.ifElse (Logic.or (Sets.isEmpty trusted) (Sets.isEmpty inScope)) [] (+ let allVars = Sets.unions (Lists.map (\t -> collectTypeVars t) typeApps)+ in (Logic.ifElse (Logic.not (Sets.isEmpty (Sets.difference allVars inScope))) [] (Logic.ifElse (Sets.isEmpty (Sets.difference allVars trusted)) typeApps [])))+ in (Eithers.bind (Logic.ifElse (Lists.isEmpty filteredTypeApps) (Right []) (correctTypeApps g v0 hargs filteredTypeApps cx g)) (\safeTypeApps -> Eithers.bind (filterPhantomTypeArgs v0 safeTypeApps cx g) (\finalTypeApps -> Eithers.bind (functionCall env False v0 hargs finalTypeApps cx g) (\initialCall -> Eithers.foldList (\acc -> \h -> Eithers.bind (encodeTerm env h cx g) (\jarg -> Right (applyJavaArg acc jarg))) initialCall rargs)))))))+ _ -> encodeApplication_fallback env aliases g typeApps (Model.applicationFunction app) (Model.applicationArgument app) cx g)))))++encodeApplication_fallback :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Graph.Graph -> [Model.Type] -> Model.Term -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeApplication_fallback env aliases gr typeApps lhs rhs cx g =+ Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal lhs))) (\mt -> Eithers.bind (Optionals.match mt (Checking.typeOfTerm cx g lhs) (\typ -> Right typ)) (\t -> case (Strip.deannotateTypeParameters (Strip.deannotateType t)) of+ Model.TypeFunction v0 ->+ let dom = Model.functionTypeDomain v0+ cod = Model.functionTypeCodomain v0+ defaultExpr =+ \_bug438_dflt -> Eithers.bind (encodeTerm env lhs cx g) (\jfun -> Eithers.bind (encodeTerm env rhs cx g) (\jarg -> Right (applyJavaArg jfun jarg)))+ elimBranch =+ \_bug438_elim -> Eithers.bind (encodeTerm env rhs cx g) (\jarg -> Eithers.bind (Logic.ifElse (Logic.not (Lists.isEmpty (javaTypeArgumentsForType dom))) (Right dom) (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g (Annotations.termAnnotationInternal rhs))) (\mrt -> Optionals.match mrt (Eithers.bind (Checking.typeOfTerm cx g rhs) (\rt -> Right (Logic.ifElse (Logic.not (Lists.isEmpty (javaTypeArgumentsForType rt))) rt dom))) (\rt -> Right (Logic.ifElse (Logic.not (Lists.isEmpty (javaTypeArgumentsForType rt))) rt dom))))) (\enrichedDom -> encodeElimination env (Just jarg) enrichedDom cod (Strip.deannotateTerm lhs) cx g))+ in case (Strip.deannotateAndDetypeTerm lhs) of+ Model.TermProject _ -> elimBranch ()+ Model.TermCases _ -> elimBranch ()+ Model.TermUnwrap _ -> elimBranch ()+ _ -> defaultExpr ()+ _ -> Eithers.bind (encodeTerm env lhs cx g) (\jfun -> Eithers.bind (encodeTerm env rhs cx g) (\jarg -> Right (applyJavaArg jfun jarg)))))++encodeDefinitions :: S.Set String -> Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map Model.Name Syntax.CompilationUnit)+encodeDefinitions overlaySubs mod defs cx g =++ let aliases = Utils.importAliasesForModule overlaySubs mod+ env =+ JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = aliases,+ JavaEnvironment.javaEnvironmentGraph = g}+ pkg = Utils.javaPackageDeclaration (Packaging.moduleName mod)+ partitioned = CoreEnvironment.partitionDefinitions defs+ typeDefs = Pairs.first partitioned+ termDefs = Pairs.second partitioned+ nonTypedefDefs =+ Lists.filter (\td ->+ let typ = Model.typeSchemeBody (Packaging.typeDefinitionBody td)+ in (isSerializableJavaType typ)) typeDefs+ in (Eithers.bind (Eithers.mapList (\td -> encodeTypeDefinition pkg aliases td cx g) nonTypedefDefs) (\typeUnits -> Eithers.bind (Logic.ifElse (Lists.isEmpty termDefs) (Right []) (Eithers.bind (Eithers.mapList (\td -> encodeTermDefinition env td cx g) termDefs) (\dataMembers -> Right [+ constructElementsInterface mod dataMembers]))) (\termUnits -> Right (Maps.fromList (Lists.concat2 typeUnits termUnits)))))++encodeElimination :: JavaEnvironment.JavaEnvironment -> Maybe Syntax.Expression -> Model.Type -> Model.Type -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeElimination env marg dom cod elimTerm cx g =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ in case (Strip.deannotateAndDetypeTerm elimTerm) of+ Model.TermProject v0 ->+ let fname = Model.projectionFieldName v0+ in (Eithers.bind (encodeType aliases Sets.empty dom cx g) (\jdom0 -> Eithers.bind (Utils.javaTypeToJavaReferenceType jdom0 cx) (\_ -> Optionals.match marg (+ let projVar = Model.Name "projected"+ jbody =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.variableToJavaIdentifier projVar) (Utils.javaIdentifier (Model.unName fname)))+ in (Right (Utils.javaLambda projVar jbody))) (\jarg ->+ let qual = Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary jarg)+ in (Right (Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {+ Syntax.fieldAccessQualifier = qual,+ Syntax.fieldAccessIdentifier = (Utils.javaIdentifier (Model.unName fname))})))))))+ Model.TermCases v0 ->+ let tname = Model.caseStatementTypeName v0+ def_ = Model.caseStatementDefault v0+ fields = Model.caseStatementCases v0+ in (Optionals.match marg (+ let uVar = Model.Name "u"+ domTypeArgs0 =+ \ty -> \acc -> case (Strip.deannotateType ty) of+ Model.TypeApplication v1 -> domTypeArgs0 (Model.applicationTypeFunction v1) (Lists.cons (Model.applicationTypeArgument v1) acc)+ _ -> acc+ domTypeArgs = domTypeArgs0 dom []+ bareElim = Strip.deannotateAndDetypeTerm elimTerm+ wrappedElimTerm =+ Lists.foldl (\trm -> \t -> Model.TermTypeApplication (Model.TypeApplicationTerm {+ Model.typeApplicationTermBody = trm,+ Model.typeApplicationTermType = t})) bareElim domTypeArgs+ typedLambda =+ Model.TermLambda (Model.Lambda {+ Model.lambdaParameter = uVar,+ Model.lambdaDomain = (Just dom),+ Model.lambdaBody = (Model.TermApplication (Model.Application {+ Model.applicationFunction = wrappedElimTerm,+ Model.applicationArgument = (Model.TermVariable uVar)}))})+ in (encodeTerm env typedLambda cx g)) (\jarg ->+ let prim = Utils.javaExpressionToJavaPrimary jarg+ consId = innerClassRef aliases tname JavaNames.partialVisitorName+ effectiveCod = cod+ in (Eithers.bind (encodeType aliases Sets.empty effectiveCod cx g) (\jcod -> Eithers.bind (Utils.javaTypeToJavaReferenceType jcod cx) (\rt -> Eithers.bind (domTypeArgs aliases dom cx g) (\domArgs -> Eithers.bind (Logic.ifElse (Lists.isEmpty domArgs) (javaTypeArgumentsForNamedType tname cx g) (Right domArgs)) (\targArgs ->+ let targs = explicitTypeArguments (Lists.concat2 targArgs [+ Syntax.TypeArgumentReference rt])+ in (Eithers.bind (Logic.ifElse (Lists.isEmpty domArgs) (javaTypeArgumentsForNamedType tname cx g) (Right domArgs)) (\unionArgs -> Eithers.bind (Optionals.match def_ (Right []) (\d -> Eithers.bind (otherwiseBranch env aliases dom cod tname jcod unionArgs d cx g) (\b -> Right [+ b]))) (\otherwiseBranches -> Eithers.bind (Eithers.mapList (\f -> visitBranch env aliases dom tname jcod unionArgs f cx g) fields) (\visitBranches ->+ let body = Syntax.ClassBody (Lists.concat2 otherwiseBranches visitBranches)+ visitor = Utils.javaConstructorCall (Utils.javaConstructorName consId (Just targs)) [] (Just body)+ in (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Right prim)) (Syntax.Identifier JavaNames.acceptMethodName) [+ visitor]))))))))))))))+ Model.TermUnwrap _ ->+ let withArg =+ \ja -> Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {+ Syntax.fieldAccessQualifier = (Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary ja)),+ Syntax.fieldAccessIdentifier = (Utils.javaIdentifier JavaNames.valueFieldName)})+ in (Right (Optionals.match marg (+ let wVar = Model.Name "wrapped"+ wArg = Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier wVar)+ in (Utils.javaLambda wVar (withArg wArg))) (\jarg -> withArg jarg)))+ _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "unexpected " (Strings.concat2 "elimination case" (Strings.concat2 " in " "encodeElimination")))))++encodeFunction :: JavaEnvironment.JavaEnvironment -> Model.Type -> Model.Type -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeFunction env dom cod funTerm cx g =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ encodeLambdaFallback =+ \env2 -> \lam ->+ let lambdaVar = Model.lambdaParameter lam+ body = Model.lambdaBody lam+ in (Eithers.bind (analyzeJavaFunction env2 body cx g) (\fs ->+ let bindings = Typing.functionStructureBindings fs+ innerBody = Typing.functionStructureBody fs+ env3 = Typing.functionStructureEnvironment fs+ in (Eithers.bind (bindingsToStatements env3 bindings cx g) (\bindResult ->+ let bindingStmts = Pairs.first bindResult+ env4 = Pairs.second bindResult+ in (Eithers.bind (encodeTerm env4 innerBody cx g) (\jbody ->+ let lam1 =+ Logic.ifElse (Lists.isEmpty bindings) (Utils.javaLambda lambdaVar jbody) (+ let returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jbody))+ in (Utils.javaLambdaFromBlock lambdaVar (Syntax.Block (Lists.concat2 bindingStmts [+ returnSt]))))+ in (applyCastIfSafe aliases (Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = cod})) lam1 cx g)))))))+ in case (Strip.deannotateTerm funTerm) of+ Model.TermProject _ -> encodeElimination env Nothing dom cod (Strip.deannotateTerm funTerm) cx g+ Model.TermCases _ -> encodeElimination env Nothing dom cod (Strip.deannotateTerm funTerm) cx g+ Model.TermUnwrap _ -> encodeElimination env Nothing dom cod (Strip.deannotateTerm funTerm) cx g+ Model.TermLambda v0 -> withLambda env v0 (\env2 ->+ let lambdaVar = Model.lambdaParameter v0+ body = Model.lambdaBody v0+ in case (Strip.deannotateTerm body) of+ Model.TermLambda v1 -> case (Strip.deannotateType cod) of+ Model.TypeFunction v2 ->+ let dom2 = Model.functionTypeDomain v2+ cod2 = Model.functionTypeCodomain v2+ in (Eithers.bind (encodeFunction env2 dom2 cod2 (Model.TermLambda v1) cx g) (\innerJavaLambda ->+ let lam1 = Utils.javaLambda lambdaVar innerJavaLambda+ in (applyCastIfSafe aliases (Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = cod})) lam1 cx g)))+ _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "expected function type for lambda body, but got: " (PrintModel.type_ cod))))+ _ -> encodeLambdaFallback env2 v0)+ _ -> Right (encodeLiteral (Model.LiteralString (Strings.concat2 "Unimplemented function variant: " (PrintModel.term funTerm))))++encodeFunctionFormTerm :: JavaEnvironment.JavaEnvironment -> [M.Map Model.Name Model.Term] -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeFunctionFormTerm env anns term cx g =++ let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mt -> Eithers.bind (Optionals.match mt (Optionals.match (tryInferFunctionType term) (Checking.typeOfTerm cx g term) (\inferredType -> Right inferredType)) (\t -> Right t)) (\typ -> case (Strip.deannotateType typ) of+ Model.TypeFunction v0 -> encodeFunction env (Model.functionTypeDomain v0) (Model.functionTypeCodomain v0) term cx g+ _ -> encodeNullaryConstant env typ term cx g)))++encodeFunctionPrimitiveByName :: JavaEnvironment.JavaEnvironment -> Model.Type -> Model.Type -> Model.Name -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeFunctionPrimitiveByName env dom cod name cx g =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ classWithApply = Syntax.unIdentifier (elementJavaIdentifier True False aliases name)+ suffix = Strings.concat2 "." JavaNames.applyMethodName+ className =+ Strings.fromList (Lists.take (Math.sub (Strings.length classWithApply) (Strings.length suffix)) (Strings.toList classWithApply))+ arity =+ Arity.typeArity (Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = cod}))+ in (Logic.ifElse (Ordering.lte arity 1) (Right (Utils.javaIdentifierToJavaExpression (Syntax.Identifier (Strings.concat [+ className,+ "::",+ JavaNames.applyMethodName])))) (+ let paramNames = Lists.map (\i -> Model.Name (Strings.concat2 "p" (Literals.printInt32 i))) (Math.range 0 arity)+ paramExprs = Lists.map (\p -> Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier p)) paramNames+ classId = Syntax.Identifier className+ call =+ Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic classId (Syntax.Identifier JavaNames.applyMethodName) paramExprs)+ curried = buildCurriedLambda paramNames call+ in (Eithers.bind (encodeType aliases Sets.empty (Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = cod})) cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression curried))))))))++encodeLiteral :: Model.Literal -> Syntax.Expression+encodeLiteral lit =+ case lit of+ Model.LiteralBinary v0 ->+ let byteValues = Literals.binaryToBytes v0+ in (Utils.javaArrayCreation Utils.javaBytePrimitiveType (Just (Utils.javaArrayInitializer (Lists.map (\w -> Utils.javaLiteralToJavaExpression (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int32ToBigint (Logic.ifElse (Ordering.gt w 127) (Math.sub w 256) w))))) byteValues))))+ Model.LiteralBoolean v0 -> encodeLiteral_litExp (Utils.javaBoolean v0)+ Model.LiteralDecimal v0 -> Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "java.math.BigDecimal") Nothing) [+ encodeLiteral (Model.LiteralString (Literals.printDecimal v0))] Nothing+ Model.LiteralFloat v0 -> encodeLiteral_encodeFloat v0+ Model.LiteralInteger v0 -> encodeLiteral_encodeInteger v0+ Model.LiteralString v0 -> encodeLiteral_litExp (Utils.javaString v0)++encodeLiteralType :: Model.LiteralType -> t0 -> t1 -> Either t2 Syntax.Type+encodeLiteralType lt cx g =+ case lt of+ Model.LiteralTypeBinary -> Right (Syntax.TypeReference (Syntax.ReferenceTypeArray (Syntax.ArrayType {+ Syntax.arrayTypeDims = (Syntax.Dims [+ []]),+ Syntax.arrayTypeVariant = (Syntax.ArrayType_VariantPrimitive (Syntax.PrimitiveTypeWithAnnotations {+ Syntax.primitiveTypeWithAnnotationsType = (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeByte)),+ Syntax.primitiveTypeWithAnnotationsAnnotations = []}))})))+ Model.LiteralTypeBoolean -> encodeLiteralType_simple "Boolean" cx g+ Model.LiteralTypeDecimal -> Right (Utils.javaRefType [] (Just (JavaNames.javaPackageName [+ "java",+ "math"])) "BigDecimal")+ Model.LiteralTypeFloat v0 -> case v0 of+ Model.FloatTypeFloat32 -> encodeLiteralType_simple "Float" cx g+ Model.FloatTypeFloat64 -> encodeLiteralType_simple "Double" cx g+ Model.LiteralTypeInteger v0 -> case v0 of+ Model.IntegerTypeBigint -> Right (Utils.javaRefType [] (Just (JavaNames.javaPackageName [+ "java",+ "math"])) "BigInteger")+ Model.IntegerTypeInt8 -> encodeLiteralType_simple "Byte" cx g+ Model.IntegerTypeInt16 -> encodeLiteralType_simple "Short" cx g+ Model.IntegerTypeInt32 -> encodeLiteralType_simple "Integer" cx g+ Model.IntegerTypeInt64 -> encodeLiteralType_simple "Long" cx g+ Model.IntegerTypeUint8 -> encodeLiteralType_simple "Short" cx g+ Model.IntegerTypeUint16 -> encodeLiteralType_simple "Character" cx g+ Model.IntegerTypeUint32 -> encodeLiteralType_simple "Long" cx g+ Model.IntegerTypeUint64 -> Right (Utils.javaRefType [] (Just (JavaNames.javaPackageName [+ "java",+ "math"])) "BigInteger")+ Model.LiteralTypeString -> encodeLiteralType_simple "String" cx g++encodeLiteralType_simple :: String -> t0 -> t1 -> Either t2 Syntax.Type+encodeLiteralType_simple n cx g = Right (Utils.javaRefType [] Nothing n)++encodeLiteral_encodeFloat :: Model.FloatValue -> Syntax.Expression+encodeLiteral_encodeFloat f =+ case f of+ Model.FloatValueFloat32 v0 -> encodeLiteral_encodeFloat32 v0+ Model.FloatValueFloat64 v0 -> encodeLiteral_encodeFloat64 v0++encodeLiteral_encodeFloat32 :: Float -> Syntax.Expression+encodeLiteral_encodeFloat32 v =++ let s = Literals.printFloat32 v+ in (Logic.ifElse (Equality.equal s "NaN") (encodeLiteral_javaSpecialFloatExpr "Float" "NaN") (Logic.ifElse (Equality.equal s "Infinity") (encodeLiteral_javaSpecialFloatExpr "Float" "POSITIVE_INFINITY") (Logic.ifElse (Equality.equal s "-Infinity") (encodeLiteral_javaSpecialFloatExpr "Float" "NEGATIVE_INFINITY") (encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeFloatingPoint Syntax.FloatingPointTypeFloat)) (encodeLiteral_litExp (Syntax.LiteralFloatingPoint (Syntax.FloatingPointLiteral (Literals.float32ToFloat64 v))))))))++encodeLiteral_encodeFloat64 :: Double -> Syntax.Expression+encodeLiteral_encodeFloat64 v =++ let s = Literals.printFloat64 v+ in (Logic.ifElse (Equality.equal s "NaN") (encodeLiteral_javaSpecialFloatExpr "Double" "NaN") (Logic.ifElse (Equality.equal s "Infinity") (encodeLiteral_javaSpecialFloatExpr "Double" "POSITIVE_INFINITY") (Logic.ifElse (Equality.equal s "-Infinity") (encodeLiteral_javaSpecialFloatExpr "Double" "NEGATIVE_INFINITY") (Logic.ifElse (Equality.equal s "-0.0") (encodeLiteral_javaParseDouble "-0.0") (encodeLiteral_litExp (Syntax.LiteralFloatingPoint (Syntax.FloatingPointLiteral v)))))))++encodeLiteral_encodeInteger :: Model.IntegerValue -> Syntax.Expression+encodeLiteral_encodeInteger i =+ case i of+ Model.IntegerValueBigint v0 -> Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "java.math.BigInteger") Nothing) [+ encodeLiteral (Model.LiteralString (Literals.printBigint v0))] Nothing+ Model.IntegerValueInt8 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeByte)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int8ToBigint v0))))+ Model.IntegerValueInt16 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeShort)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int16ToBigint v0))))+ Model.IntegerValueInt32 v0 -> encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int32ToBigint v0)))+ Model.IntegerValueInt64 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeLong)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int64ToBigint v0))))+ Model.IntegerValueUint8 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeShort)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.uint8ToBigint v0))))+ Model.IntegerValueUint16 v0 -> encodeLiteral_litExp (Syntax.LiteralCharacter v0)+ Model.IntegerValueUint32 v0 -> encodeLiteral_primCast (Syntax.PrimitiveTypeNumeric (Syntax.NumericTypeIntegral Syntax.IntegralTypeLong)) (encodeLiteral_litExp (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.uint32ToBigint v0))))+ Model.IntegerValueUint64 v0 -> Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "java.math.BigInteger") Nothing) [+ encodeLiteral (Model.LiteralString (Literals.printBigint (Literals.uint64ToBigint v0)))] Nothing++encodeLiteral_javaParseDouble :: String -> Syntax.Expression+encodeLiteral_javaParseDouble value =+ Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "Double") (Syntax.Identifier "parseDouble") [+ encodeLiteral (Model.LiteralString value)])++encodeLiteral_javaSpecialFloatExpr :: String -> String -> Syntax.Expression+encodeLiteral_javaSpecialFloatExpr className fieldName =+ Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = (Just (Syntax.AmbiguousName [+ Syntax.Identifier className])),+ Syntax.expressionNameIdentifier = (Syntax.Identifier fieldName)})++encodeLiteral_litExp :: Syntax.Literal -> Syntax.Expression+encodeLiteral_litExp l = Utils.javaLiteralToJavaExpression l++encodeLiteral_primCast :: Syntax.PrimitiveType -> Syntax.Expression -> Syntax.Expression+encodeLiteral_primCast pt expr =+ Utils.javaCastExpressionToJavaExpression (Utils.javaCastPrimitive pt (Utils.javaExpressionToJavaUnaryExpression expr))++encodeNullaryConstant :: t0 -> t1 -> Model.Term -> t2 -> t3 -> Either Errors.Error t4+encodeNullaryConstant env typ funTerm cx g =+ Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "unexpected " (Strings.concat2 "nullary function" (Strings.concat2 " in " (PrintModel.term funTerm))))))++encodeNullaryConstant_typeArgsFromReturnType :: JavaEnvironment.Aliases -> Model.Type -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]+encodeNullaryConstant_typeArgsFromReturnType aliases t cx g =+ case (Strip.deannotateType t) of+ Model.TypeSet v0 -> Eithers.bind (encodeType aliases Sets.empty v0 cx g) (\jst -> Eithers.bind (Utils.javaTypeToJavaReferenceType jst cx) (\rt -> Right [+ Syntax.TypeArgumentReference rt]))+ Model.TypeList v0 -> Eithers.bind (encodeType aliases Sets.empty v0 cx g) (\jlt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jlt cx) (\rt -> Right [+ Syntax.TypeArgumentReference rt]))+ Model.TypeOptional v0 -> Eithers.bind (encodeType aliases Sets.empty v0 cx g) (\jmt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jmt cx) (\rt -> Right [+ Syntax.TypeArgumentReference rt]))+ Model.TypeMap v0 -> Eithers.bind (encodeType aliases Sets.empty (Model.mapTypeKeys v0) cx g) (\jkt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jkt cx) (\rk -> Eithers.bind (encodeType aliases Sets.empty (Model.mapTypeValues v0) cx g) (\jvt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jvt cx) (\rv -> Right [+ Syntax.TypeArgumentReference rk,+ (Syntax.TypeArgumentReference rv)]))))+ _ -> Right []++encodeNullaryPrimitiveByName :: JavaEnvironment.JavaEnvironment -> Model.Type -> Model.Name -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeNullaryPrimitiveByName env typ name cx g =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ in (Eithers.bind (encodeNullaryConstant_typeArgsFromReturnType aliases typ cx g) (\targs -> Logic.ifElse (Lists.isEmpty targs) (+ let header = Syntax.MethodInvocation_HeaderSimple (Syntax.MethodName (elementJavaIdentifier True False aliases name))+ in (Right (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = header,+ Syntax.methodInvocationArguments = []})))) (+ let fullName = Syntax.unIdentifier (elementJavaIdentifier True False aliases name)+ parts = Strings.splitOn "." fullName+ className = Syntax.Identifier (Strings.join "." (Optionals.withDefault [] (Lists.init parts)))+ methodName = Syntax.Identifier (Optionals.withDefault fullName (Lists.last parts))+ in (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs className methodName targs []))))))++encodeTerm :: JavaEnvironment.JavaEnvironment -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeTerm env term cx g = encodeTermInternal env [] [] term cx g++encodeTermDefinition :: JavaEnvironment.JavaEnvironment -> Packaging.TermDefinition -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.InterfaceMemberDeclarationWithComments+encodeTermDefinition env tdef cx g =++ let name = Packaging.termDefinitionName tdef+ term0 = Packaging.termDefinitionBody tdef+ in (Eithers.bind (Annotations.getTermDescription cx g term0) (\mDoc ->+ let ts =+ Optionals.match (Packaging.termDefinitionSignature tdef) (Model.TypeScheme {+ Model.typeSchemeVariables = [],+ Model.typeSchemeBody = (Model.TypeVariable (Model.Name "hydra.core.model.Unit")),+ Model.typeSchemeConstraints = Maps.empty}) (\sig -> Scoping.termSignatureToTypeScheme sig)+ term = Variables.unshadowVariables term0+ in (Eithers.bind (analyzeJavaFunction env term cx g) (\fs ->+ let schemeVars = Lists.filter (\v -> isSimpleName v) (Model.typeSchemeVariables ts)+ termVars = Typing.functionStructureTypeParams fs+ schemeTypeVars = collectTypeVars (Model.typeSchemeBody ts)+ usedSchemeVars = Lists.filter (\v -> Sets.member v schemeTypeVars) schemeVars+ tparams = Logic.ifElse (Lists.isEmpty usedSchemeVars) termVars usedSchemeVars+ params = Typing.functionStructureParams fs+ bindings = Typing.functionStructureBindings fs+ body = Typing.functionStructureBody fs+ doms = Typing.functionStructureDomains fs+ env2 = Typing.functionStructureEnvironment fs+ schemeType = Model.typeSchemeBody ts+ numParams = Lists.length params+ peelResult = peelDomainsAndCod numParams schemeType+ schemeDoms = Pairs.first peelResult+ cod = Pairs.second peelResult+ schemeVarSet = Sets.fromList tparams+ in (Eithers.bind (Logic.ifElse (Lists.isEmpty tparams) (Right Maps.empty) (buildSubstFromAnnotations schemeVarSet term cx g)) (\typeVarSubst ->+ let overgenSubst = detectAccumulatorUnification schemeDoms cod tparams+ overgenVarSubst =+ Maps.fromList (Optionals.givens (Lists.map (\entry ->+ let k = Pairs.first entry+ v = Pairs.second entry+ in case v of+ Model.TypeVariable v0 -> Just (k, v0)+ _ -> Nothing) (Maps.toList overgenSubst)))+ fixedCod = Logic.ifElse (Maps.isEmpty overgenSubst) cod (substituteTypeVarsWithTypes overgenSubst cod)+ fixedDoms =+ Logic.ifElse (Maps.isEmpty overgenSubst) schemeDoms (Lists.map (\d -> substituteTypeVarsWithTypes overgenSubst d) schemeDoms)+ fixedTparams =+ Logic.ifElse (Maps.isEmpty overgenSubst) tparams (Lists.filter (\v -> Logic.not (Maps.member v overgenSubst)) tparams)+ constraints = Model.typeSchemeConstraints ts+ jparams = Lists.map (\v -> Utils.javaTypeParameter (Formatting.capitalize (Model.unName v))) fixedTparams+ aliases2base = JavaEnvironment.javaEnvironmentAliases env2+ trustedVars = Sets.unions (Lists.map (\d -> collectTypeVars d) (Lists.concat2 fixedDoms [+ fixedCod]))+ fixedSchemeVarSet = Sets.fromList fixedTparams+ aliases2 =+ JavaEnvironment.Aliases {+ JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases2base),+ JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases2base),+ JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases2base),+ JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases2base),+ JavaEnvironment.aliasesInScopeTypeParams = fixedSchemeVarSet,+ JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases2base),+ JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases2base),+ JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases2base),+ JavaEnvironment.aliasesLambdaVars = (Sets.union (JavaEnvironment.aliasesLambdaVars aliases2base) (Sets.fromList params)),+ JavaEnvironment.aliasesTypeVarSubst = (Maps.union overgenVarSubst typeVarSubst),+ JavaEnvironment.aliasesTrustedTypeVars = (Sets.intersection trustedVars fixedSchemeVarSet),+ JavaEnvironment.aliasesMethodCodomain = (Just fixedCod),+ JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases2base)}+ env2WithTypeParams =+ JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = aliases2,+ JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env2)}+ in (Eithers.bind (bindingsToStatements env2WithTypeParams bindings cx g) (\bindResult ->+ let bindingStmts = Pairs.first bindResult+ env3 = Pairs.second bindResult+ in (Eithers.bind (Logic.ifElse (Maps.isEmpty overgenSubst) (Right body) (applyOvergenSubstToTermAnnotations overgenSubst body cx g)) (\body_ ->+ let annotatedBody = propagateTypesInAppChain fixedCod fixedCod body_+ in (Eithers.bind (Eithers.mapList (\pair -> Eithers.bind (encodeType aliases2 Sets.empty (Pairs.first pair) cx g) (\jdom -> Right (Utils.javaTypeToJavaFormalParameter jdom (Pairs.second pair)))) (Lists.zip fixedDoms params)) (\jformalParams -> Eithers.bind (encodeType aliases2 Sets.empty fixedCod cx g) (\jcod ->+ let result = Utils.javaTypeToJavaResult jcod+ mods = [+ Syntax.InterfaceMethodModifierStatic]+ jname = Utils.sanitizeJavaName (Formatting.decapitalize (CoreNames.localNameOf name))+ isTCO = Logic.and (Logic.not (Lists.isEmpty params)) (Analysis.isSelfTailRecursive name body)+ in (Eithers.bind (Logic.ifElse isTCO (+ let tcoSuffix = "_tco"+ snapshotNames = Lists.map (\p -> Model.Name (Strings.concat2 (Model.unName p) tcoSuffix)) params+ tcoVarRenames = Maps.fromList (Lists.zip params snapshotNames)+ snapshotDecls =+ Lists.map (\pair -> Utils.finalVarDeclarationStatement (Utils.variableToJavaIdentifier (Pairs.second pair)) (Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier (Pairs.first pair)))) (Lists.zip params snapshotNames)+ tcoBody =+ Logic.ifElse (Lists.isEmpty bindings) annotatedBody (Model.TermLet (Model.Let {+ Model.letBindings = bindings,+ Model.letBody = annotatedBody}))+ in (Eithers.bind (encodeTermTCO env2WithTypeParams name params tparams tcoVarRenames 0 tcoBody cx g) (\tcoStmts ->+ let whileBodyStmts = Lists.concat2 snapshotDecls tcoStmts+ whileBodyBlock =+ Syntax.StatementWithoutTrailing (Syntax.StatementWithoutTrailingSubstatementBlock (Syntax.Block whileBodyStmts))+ noCond = Nothing+ whileStmt =+ Syntax.BlockStatementStatement (Syntax.StatementWhile (Syntax.WhileStatement {+ Syntax.whileStatementCond = noCond,+ Syntax.whileStatementBody = whileBodyBlock}))+ in (Right [+ whileStmt])))) (Eithers.bind (encodeTerm env3 annotatedBody cx g) (\jbody ->+ let returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jbody))+ in (Right (Lists.concat2 bindingStmts [+ returnSt]))))) (\methodBody ->+ let imdMember = Utils.interfaceMethodDeclaration mods jparams jname jformalParams result (Just methodBody)+ in (Right (Optionals.match mDoc (noInterfaceComment imdMember) (\doc -> withInterfaceCommentString doc imdMember))))))))))))))))))++encodeTermInternal :: JavaEnvironment.JavaEnvironment -> [M.Map Model.Name Model.Term] -> [Syntax.Type] -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeTermInternal env anns tyapps term cx g0 =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ g = JavaEnvironment.javaEnvironmentGraph env+ encode = \t -> encodeTerm env t cx g+ in case term of+ Model.TermAnnotated v0 -> encodeTermInternal env (Lists.cons (Annotations.getAnnotationMap (Model.annotatedTermAnnotation v0)) anns) tyapps (Model.annotatedTermBody v0) cx g+ Model.TermApplication v0 -> encodeApplication env v0 cx g+ Model.TermEither v0 -> Eithers.bind (Logic.ifElse (Lists.isEmpty tyapps) (Right Nothing) (Eithers.bind (takeTypeArgs "either" 2 tyapps cx g) (\ta -> Right (Just ta)))) (\mtargs ->+ let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mEitherType ->+ let branchTypes =+ Optionals.bind mEitherType (\etyp -> case (Strip.deannotateType etyp) of+ Model.TypeEither v1 -> Just (Model.eitherTypeLeft v1, (Model.eitherTypeRight v1))+ _ -> Nothing)+ encodeWithType =+ \branchType -> \t1 ->+ let annotated = Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ branchType)) t1+ in (encodeTermInternal env anns [] annotated cx g)+ eitherCall =+ \methodName -> \expr -> Optionals.match mtargs (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.core.overlay.java.util.Either") (Syntax.Identifier methodName) [+ expr])) (\targs -> Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.Either") (Syntax.Identifier methodName) targs [+ expr]))+ in (Eithers.either (\term1 -> Eithers.bind (Optionals.match branchTypes (encode term1) (\bt -> encodeWithType (Pairs.first bt) term1)) (\expr -> Right (eitherCall "left" expr))) (\term1 -> Eithers.bind (Optionals.match branchTypes (encode term1) (\bt -> encodeWithType (Pairs.second bt) term1)) (\expr -> Right (eitherCall "right" expr))) v0))))+ Model.TermLambda _ -> encodeFunctionFormTerm env anns term cx g+ Model.TermProject _ -> encodeFunctionFormTerm env anns term cx g+ Model.TermCases _ -> encodeFunctionFormTerm env anns term cx g+ Model.TermUnwrap _ -> encodeFunctionFormTerm env anns term cx g+ Model.TermLet v0 ->+ let bindings = Model.letBindings v0+ body = Model.letBody v0+ in (Logic.ifElse (Lists.isEmpty bindings) (encodeTermInternal env anns [] body cx g) (Eithers.bind (bindingsToStatements env bindings cx g) (\bindResult ->+ let bindingStmts = Pairs.first bindResult+ env2 = Pairs.second bindResult+ in (Eithers.bind (encodeTermInternal env2 anns [] body cx g) (\jbody ->+ let returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jbody))+ block = Syntax.Block (Lists.concat2 bindingStmts [+ returnSt])+ nullaryLambda =+ Syntax.ExpressionLambda (Syntax.LambdaExpression {+ Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersTuple []),+ Syntax.lambdaExpressionBody = (Syntax.LambdaBodyBlock block)})+ combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ g2 = JavaEnvironment.javaEnvironmentGraph env2+ aliases2 = JavaEnvironment.javaEnvironmentAliases env2+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mt -> Eithers.bind (Optionals.match mt (Checking.typeOfTerm cx g2 body) (\t -> Right t)) (\letType -> Eithers.bind (encodeType aliases2 Sets.empty letType cx g) (\jLetType -> Eithers.bind (Utils.javaTypeToJavaReferenceType jLetType cx) (\rt ->+ let supplierRt =+ Syntax.ReferenceTypeClassOrInterface (Syntax.ClassOrInterfaceTypeClass (Utils.javaClassType [+ rt] JavaNames.javaUtilFunctionPackageName "Supplier"))+ castExpr =+ Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression supplierRt (Utils.javaExpressionToJavaUnaryExpression nullaryLambda))+ in (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Right (Utils.javaExpressionToJavaPrimary castExpr))) (Syntax.Identifier "get") [])))))))))))))+ Model.TermList v0 -> Logic.ifElse (Lists.isEmpty v0) (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.core.overlay.java.util.ConsList") (Syntax.Identifier "empty") []))) (Eithers.bind (takeTypeArgs "list" 1 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.ConsList") (Syntax.Identifier "empty") targs []))))) (Eithers.bind (Eithers.mapList encode v0) (\jels -> Eithers.bind (collectionTypeArgs "list" 1 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.ConsList") (Syntax.Identifier "of") targs jels)))))+ Model.TermLiteral v0 -> Right (encodeLiteral v0)+ Model.TermMap v0 -> Logic.ifElse (Maps.isEmpty v0) (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.core.overlay.java.util.PersistentMap") (Syntax.Identifier "empty") []))) (Eithers.bind (takeTypeArgs "map" 2 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.PersistentMap") (Syntax.Identifier "empty") targs []))))) (Eithers.bind (Eithers.mapList encode (Maps.keys v0)) (\jkeys -> Eithers.bind (Eithers.mapList encode (Maps.elems v0)) (\jvals ->+ let pairExprs =+ Lists.map (\kv -> Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "java.util.Map") (Syntax.Identifier "entry") [+ Pairs.first kv,+ (Pairs.second kv)])) (Lists.zip jkeys jvals)+ in (Eithers.bind (collectionTypeArgs "map" 2 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.PersistentMap") (Syntax.Identifier "ofEntries") targs pairExprs)))))))+ Model.TermOptional v0 -> Optionals.match v0 (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.core.overlay.java.util.Optional") (Syntax.Identifier "none") []))) (Eithers.bind (takeTypeArgs "optional" 1 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.Optional") (Syntax.Identifier "none") targs []))))) (\term1 -> Eithers.bind (encode term1) (\expr -> Eithers.bind (collectionTypeArgs "optional" 1 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.Optional") (Syntax.Identifier "given") targs [+ expr])))))+ Model.TermPair v0 -> Eithers.bind (encode (Pairs.first v0)) (\jterm1 -> Eithers.bind (encode (Pairs.second v0)) (\jterm2 -> Eithers.bind (Logic.ifElse (Lists.isEmpty tyapps) (Right Nothing) (Eithers.bind (Eithers.mapList (\jt -> Utils.javaTypeToJavaReferenceType jt cx) tyapps) (\rts -> Right (Just (Syntax.TypeArgumentsOrDiamondArguments (Lists.map (\rt -> Syntax.TypeArgumentReference rt) rts)))))) (\mtargs -> Right (Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "hydra.core.overlay.java.util.Pair") mtargs) [+ jterm1,+ jterm2] Nothing))))+ Model.TermRecord v0 ->+ let recName = Model.recordTypeName v0+ mRecordType = Eithers.either (\_ -> Nothing) (\t -> Just t) (Resolution.requireType cx g recName)+ strippedRecTyp = Optionals.map (\recTyp -> stripForalls (Strip.deannotateType recTyp)) mRecordType+ mFieldTypeMap =+ Optionals.bind strippedRecTyp (\bodyTyp -> case bodyTyp of+ Model.TypeRecord v1 -> Just (Maps.fromList (Lists.map (\ft -> (Model.fieldTypeName ft, (Model.fieldTypeType ft))) v1))+ _ -> Nothing)+ combinedAnnsRec = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnnsRec)) (\mAnnotType ->+ let mTypeSubst =+ Optionals.bind mAnnotType (\annTyp -> Optionals.bind mRecordType (\recTyp ->+ let args = extractTypeApplicationArgs (Strip.deannotateType annTyp)+ params = collectForallParams (Strip.deannotateType recTyp)+ in (Logic.ifElse (Logic.or (Lists.isEmpty args) (Logic.not (Equality.equal (Lists.length args) (Lists.length params)))) Nothing (Just (Maps.fromList (Lists.zip params args))))))+ encodeField =+ \fld -> Optionals.match mFieldTypeMap (encode (Model.fieldTerm fld)) (\ftmap ->+ let mftyp = Maps.lookup (Model.fieldName fld) ftmap+ in (Optionals.match mftyp (encode (Model.fieldTerm fld)) (\ftyp ->+ let resolvedType = Optionals.match mTypeSubst ftyp (\subst -> applySubstFull subst ftyp)+ annotatedFieldTerm =+ Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ resolvedType)) (Model.fieldTerm fld)+ in (encodeTermInternal env anns [] annotatedFieldTerm cx g))))+ in (Eithers.bind (Eithers.mapList encodeField (Model.recordFields v0)) (\fieldExprs ->+ let consId = Utils.nameToJavaName aliases recName+ in (Eithers.bind (Logic.ifElse (Logic.not (Lists.isEmpty tyapps)) (Eithers.bind (Eithers.mapList (\jt -> Utils.javaTypeToJavaReferenceType jt cx) tyapps) (\rts -> Right (Just (Syntax.TypeArgumentsOrDiamondArguments (Lists.map (\rt -> Syntax.TypeArgumentReference rt) rts))))) (+ let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp -> Optionals.match mtyp (Right Nothing) (\annTyp ->+ let typeArgs = extractTypeApplicationArgs (Strip.deannotateType annTyp)+ in (Logic.ifElse (Lists.isEmpty typeArgs) (Right Nothing) (Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Utils.javaTypeToJavaReferenceType jt cx)) typeArgs) (\jTypeArgs -> Right (Just (Syntax.TypeArgumentsOrDiamondArguments (Lists.map (\rt -> Syntax.TypeArgumentReference rt) jTypeArgs))))))))))) (\mtargs -> Right (Utils.javaConstructorCall (Utils.javaConstructorName consId mtargs) fieldExprs Nothing)))))))+ Model.TermSet v0 -> Logic.ifElse (Sets.isEmpty v0) (Logic.ifElse (Lists.isEmpty tyapps) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStatic (Syntax.Identifier "hydra.core.overlay.java.util.PersistentSet") (Syntax.Identifier "empty") []))) (Eithers.bind (takeTypeArgs "set" 1 tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.PersistentSet") (Syntax.Identifier "empty") targs []))))) (+ let slist = Sets.toList v0+ in (Eithers.bind (Eithers.mapList encode slist) (\jels -> Eithers.bind (collectionTypeArgs "set" 1 aliases anns tyapps cx g) (\targs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.PersistentSet") (Syntax.Identifier "of") targs jels))))))+ Model.TermTypeLambda v0 -> withTypeLambda env v0 (\env2 ->+ let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp ->+ let annotatedBody =+ Optionals.match mtyp (Model.typeLambdaBody v0) (\t -> case t of+ Model.TypeForall v1 -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ (Model.forallTypeBody v1))) (Model.typeLambdaBody v0)+ _ -> Model.typeLambdaBody v0)+ in (encodeTerm env2 annotatedBody cx g))))+ Model.TermInject v0 ->+ let injTypeName = Model.injectionTypeName v0+ injField = Model.injectionField v0+ injFieldName = Model.fieldName injField+ injFieldTerm = Model.fieldTerm injField+ typeId = Syntax.unIdentifier (Utils.nameToJavaName aliases injTypeName)+ consId =+ Syntax.Identifier (Strings.concat [+ typeId,+ ".",+ (Utils.sanitizeJavaName (Formatting.capitalize (Model.unName injFieldName)))])+ in (Eithers.bind (isFieldUnitType injTypeName injFieldName cx g) (\fieldIsUnit -> Eithers.bind (Logic.ifElse (Logic.or (Predicates.isUnitTerm (Strip.deannotateTerm injFieldTerm)) fieldIsUnit) (Right []) (Eithers.bind (encode injFieldTerm) (\ex -> Right [+ ex]))) (\args -> Right (Utils.javaConstructorCall (Utils.javaConstructorName consId Nothing) args Nothing))))+ Model.TermVariable v0 -> Optionals.match (Maps.lookup v0 (Graph.graphPrimitives g)) (encodeVariable env v0 cx g) (\_ ->+ let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mt -> Eithers.bind (Optionals.match mt (Checking.typeOfTerm cx g term) (\t -> Right t)) (\typ -> case (Strip.deannotateType typ) of+ Model.TypeFunction v1 -> encodeFunctionPrimitiveByName env (Model.functionTypeDomain v1) (Model.functionTypeCodomain v1) v0 cx g+ _ -> encodeNullaryPrimitiveByName env typ v0 cx g))))+ Model.TermUnit -> Right (Utils.javaLiteralToJavaExpression Syntax.LiteralNull)+ Model.TermWrap v0 -> Eithers.bind (encode (Model.wrappedTermBody v0)) (\jarg -> Right (Utils.javaConstructorCall (Utils.javaConstructorName (Utils.nameToJavaName aliases (Model.wrappedTermTypeName v0)) Nothing) [+ jarg] Nothing))+ Model.TermTypeApplication v0 ->+ let atyp = Model.typeApplicationTermType v0+ body = Model.typeApplicationTermBody v0+ in (Eithers.bind (encodeType aliases Sets.empty atyp cx g) (\jatyp ->+ let combinedAnns = Lists.foldl (\acc -> \m -> Maps.union acc m) Maps.empty anns+ in (Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g combinedAnns)) (\mtyp -> Eithers.bind (Optionals.match mtyp (Checking.typeOfTerm cx g term) (\t -> Right t)) (\typ ->+ let collected0 = collectTypeApps0 body [+ atyp]+ innermostBody0 = Pairs.first collected0+ allTypeArgs0 = Pairs.second collected0+ in (Eithers.bind (correctCastType innermostBody0 allTypeArgs0 typ cx g) (\correctedTyp ->+ let collected = collectTypeApps body [+ atyp]+ innermostBody = Pairs.first collected+ allTypeArgs = Pairs.second collected+ in case innermostBody of+ Model.TermVariable v1 -> Eithers.bind (classifyDataReference v1 cx g) (\cls -> typeAppNullaryOrHoisted env aliases anns tyapps jatyp body correctedTyp v1 cls allTypeArgs cx g)+ Model.TermEither v1 -> Logic.ifElse (Equality.equal (Lists.length allTypeArgs) 2) (+ let eitherBranchTypes =+ (Optionals.withDefault correctedTyp (Lists.at 0 allTypeArgs), (Optionals.withDefault correctedTyp (Lists.at 1 allTypeArgs)))+ in (Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Utils.javaTypeToJavaReferenceType jt cx)) allTypeArgs) (\jTypeArgs ->+ let eitherTargs = Lists.map (\rt -> Syntax.TypeArgumentReference rt) jTypeArgs+ encodeEitherBranch =+ \branchType -> \t1 ->+ let annotated = Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ branchType)) t1+ in (encodeTermInternal env anns [] annotated cx g)+ in (Eithers.either (\term1 -> Eithers.bind (encodeEitherBranch (Pairs.first eitherBranchTypes) term1) (\expr -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.Either") (Syntax.Identifier "left") eitherTargs [+ expr])))) (\term1 -> Eithers.bind (encodeEitherBranch (Pairs.second eitherBranchTypes) term1) (\expr -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs (Syntax.Identifier "hydra.core.overlay.java.util.Either") (Syntax.Identifier "right") eitherTargs [+ expr])))) v1)))) (typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g)+ _ -> typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g)))))))+ _ -> Right (encodeLiteral (Model.LiteralString "Unimplemented term variant"))++encodeTermTCO :: JavaEnvironment.JavaEnvironment -> Model.Name -> [Model.Name] -> [Model.Name] -> M.Map Model.Name Model.Name -> Int -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error [Syntax.BlockStatement]+encodeTermTCO env0 funcName paramNames tparams tcoVarRenames tcoDepth term cx g =++ let aliases0 = JavaEnvironment.javaEnvironmentAliases env0+ env =+ JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = JavaEnvironment.Aliases {+ JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases0),+ JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases0),+ JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases0),+ JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases0),+ JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases0),+ JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases0),+ JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases0),+ JavaEnvironment.aliasesVarRenames = (Maps.union tcoVarRenames (JavaEnvironment.aliasesVarRenames aliases0)),+ JavaEnvironment.aliasesLambdaVars = (JavaEnvironment.aliasesLambdaVars aliases0),+ JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases0),+ JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases0),+ JavaEnvironment.aliasesMethodCodomain = (JavaEnvironment.aliasesMethodCodomain aliases0),+ JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases0)},+ JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env0)}+ stripped = Strip.deannotateAndDetypeTerm term+ gathered = Analysis.gatherApplications stripped+ gatherArgs = Pairs.first gathered+ gatherFun = Pairs.second gathered+ strippedFun = Strip.deannotateAndDetypeTerm gatherFun+ isSelfCall =+ case strippedFun of+ Model.TermVariable v0 -> Equality.equal v0 funcName+ _ -> False+ in (Logic.ifElse (Logic.and isSelfCall (Equality.equal (Lists.length gatherArgs) (Lists.length paramNames))) (+ let changePairs =+ Lists.filter (\pair -> Logic.not (case (Strip.deannotateAndDetypeTerm (Pairs.second pair)) of+ Model.TermVariable v0 -> Equality.equal v0 (Pairs.first pair)+ _ -> False)) (Lists.zip paramNames gatherArgs)+ changedParams = Lists.map Pairs.first changePairs+ in (Eithers.bind (Eithers.mapList (\pair -> encodeTerm env (Pairs.second pair) cx g) changePairs) (\jChangedArgs ->+ let assignments =+ Lists.map (\pair ->+ let paramName = Pairs.first pair+ jArg = Pairs.second pair+ in (Syntax.BlockStatementStatement (Utils.javaAssignmentStatement (Syntax.LeftHandSideExpressionName (Utils.javaIdentifierToJavaExpressionName (Utils.variableToJavaIdentifier paramName))) jArg))) (Lists.zip changedParams jChangedArgs)+ continueStmt =+ Syntax.BlockStatementStatement (Syntax.StatementWithoutTrailing (Syntax.StatementWithoutTrailingSubstatementContinue (Syntax.ContinueStatement Nothing)))+ in (Right (Lists.concat2 assignments [+ continueStmt]))))) (case stripped of+ Model.TermLet v0 ->+ let letBindings = Model.letBindings v0+ letBody = Model.letBody v0+ in (Eithers.bind (bindingsToStatements env letBindings cx g) (\bindResult ->+ let letStmts = Pairs.first bindResult+ envAfterLet = Pairs.second bindResult+ in (Eithers.bind (encodeTermTCO envAfterLet funcName paramNames tparams tcoVarRenames tcoDepth letBody cx g) (\tcoBodyStmts -> Right (Lists.concat2 letStmts tcoBodyStmts)))))+ _ ->+ let gathered2 = Analysis.gatherApplications term+ args2 = Pairs.first gathered2+ body2 = Pairs.second gathered2+ in (Logic.ifElse (Equality.equal (Lists.length args2) 1) (+ let arg = Optionals.withDefault Model.TermUnit (Lists.head args2)+ in case (Strip.deannotateAndDetypeTerm body2) of+ Model.TermCases v0 ->+ let aliases = JavaEnvironment.javaEnvironmentAliases env+ tname = Model.caseStatementTypeName v0+ dflt = Model.caseStatementDefault v0+ cases_ = Model.caseStatementCases v0+ tnameIsGeneric =+ Optionals.match (Maps.lookup tname (Graph.graphSchemaTypes g)) False (\ts -> Logic.not (Lists.isEmpty (Model.typeSchemeVariables ts)))+ domArgs =+ Logic.ifElse tnameIsGeneric (Lists.map (\tp -> Utils.typeParameterToTypeArgument (Utils.javaTypeParameter (Formatting.capitalize (Model.unName tp)))) tparams) []+ in (Eithers.bind (encodeTerm env arg cx g) (\jArgRaw ->+ let depthSuffix = Logic.ifElse (Equality.equal tcoDepth 0) "" (Literals.printInt32 tcoDepth)+ matchVarId =+ Utils.javaIdentifier (Strings.concat [+ "_tco_match_",+ (Formatting.decapitalize (CoreNames.localNameOf tname)),+ depthSuffix])+ matchDecl = Utils.varDeclarationStatement matchVarId jArgRaw+ jArg = Utils.javaIdentifierToJavaExpression matchVarId+ in (Eithers.bind (Eithers.mapList (\field ->+ let fieldName = Model.caseAlternativeName field+ variantRefType =+ Utils.nameToJavaReferenceType aliases True domArgs tname (Just (Formatting.capitalize (Model.unName fieldName)))+ variantRawType = Utils.nameToJavaReferenceType aliases True [] tname (Just (Formatting.capitalize (Model.unName fieldName)))+ in case (Strip.deannotateTerm (Model.caseAlternativeHandler field)) of+ Model.TermLambda v1 -> withLambda env v1 (\env2 ->+ let lambdaParam = Model.lambdaParameter v1+ branchBody = Model.lambdaBody v1+ env3 = insertBranchVar lambdaParam env2+ varId = Utils.variableToJavaIdentifier lambdaParam+ castExpr =+ Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression variantRefType (Utils.javaExpressionToJavaUnaryExpression jArg))+ localDecl = Utils.varDeclarationStatement varId castExpr+ isBranchTailCall = Analysis.isTailRecursiveInTailPosition funcName branchBody+ in (Eithers.bind (Logic.ifElse isBranchTailCall (encodeTermTCO env3 funcName paramNames tparams tcoVarRenames (Math.add tcoDepth 1) branchBody cx g) (Eithers.bind (analyzeJavaFunction env3 branchBody cx g) (\fs ->+ let bindings = Typing.functionStructureBindings fs+ innerBody = Typing.functionStructureBody fs+ env4 = Typing.functionStructureEnvironment fs+ in (Eithers.bind (bindingsToStatements env4 bindings cx g) (\bindResult ->+ let bindingStmts = Pairs.first bindResult+ env5 = Pairs.second bindResult+ in (Eithers.bind (encodeTerm env5 innerBody cx g) (\jret ->+ let returnStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jret))+ in (Right (Lists.concat2 bindingStmts [+ returnStmt]))))))))) (\bodyStmts ->+ let relExpr =+ Utils.javaInstanceOf (Utils.javaUnaryExpressionToJavaRelationalExpression (Utils.javaExpressionToJavaUnaryExpression jArg)) variantRawType+ condExpr = Utils.javaRelationalExpressionToJavaExpression relExpr+ blockStmts = Lists.cons localDecl bodyStmts+ ifBody = Syntax.StatementWithoutTrailing (Syntax.StatementWithoutTrailingSubstatementBlock (Syntax.Block blockStmts))+ in (Right (Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {+ Syntax.ifThenStatementExpression = condExpr,+ Syntax.ifThenStatementStatement = ifBody})))))))+ _ -> Left (Errors.ErrorOther (Errors.OtherError "TCO: case branch is not a lambda"))) cases_) (\ifBlocks -> Eithers.bind (Optionals.match dflt (Right [+ Syntax.BlockStatementStatement (Utils.javaThrowIllegalStateException [+ Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions [+ Utils.javaStringMultiplicativeExpression "Non-exhaustive patterns when matching"])])]) (\d -> Eithers.bind (encodeTerm env d cx g) (\dExpr -> Right [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just dExpr))]))) (\defaultStmt -> Right (Lists.concat [+ [+ matchDecl],+ ifBlocks,+ defaultStmt]))))))+ _ -> Eithers.bind (encodeTerm env term cx g) (\expr -> Right [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just expr))])) (Eithers.bind (encodeTerm env term cx g) (\expr -> Right [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just expr))])))))++encodeType :: JavaEnvironment.Aliases -> S.Set Model.Name -> Model.Type -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Type+encodeType aliases boundVars t cx g =++ let inScopeTypeParams = JavaEnvironment.aliasesInScopeTypeParams aliases+ typeVarSubst = JavaEnvironment.aliasesTypeVarSubst aliases+ in case (Strip.deannotateType t) of+ Model.TypeApplication v0 -> Eithers.bind (encodeType aliases boundVars (Model.applicationTypeFunction v0) cx g) (\jlhs -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.applicationTypeArgument v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jrhs -> Utils.addJavaTypeParameter jrhs jlhs cx))+ Model.TypeFunction v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.functionTypeDomain v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jdom -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.functionTypeCodomain v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jcod -> Right (Utils.javaRefType [+ jdom,+ jcod] JavaNames.javaUtilFunctionPackageName "Function")))+ Model.TypeForall v0 -> Eithers.bind (encodeType aliases (Sets.insert (Model.forallTypeParameter v0) boundVars) (Model.forallTypeBody v0) cx g) (\jbody -> Utils.addJavaTypeParameter (Utils.javaTypeVariable (Model.unName (Model.forallTypeParameter v0))) jbody cx)+ Model.TypeList v0 -> Eithers.bind (encodeType aliases boundVars v0 cx g) (\jet -> Eithers.bind (Eithers.bind (Right jet) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\rt -> Right (Utils.javaRefType [+ rt] JavaNames.javaUtilPackageName "List")))+ Model.TypeEffect v0 -> encodeType aliases boundVars v0 cx g+ Model.TypeLiteral v0 -> encodeLiteralType v0 cx g+ Model.TypeEither v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.eitherTypeLeft v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jlt -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.eitherTypeRight v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jrt -> Right (Utils.javaRefType [+ jlt,+ jrt] JavaNames.hydraUtilPackageName "Either")))+ Model.TypeMap v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.mapTypeKeys v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jkt -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.mapTypeValues v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jvt -> Right (Utils.javaRefType [+ jkt,+ jvt] JavaNames.javaUtilPackageName "Map")))+ Model.TypePair v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.pairTypeFirst v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jfirst -> Eithers.bind (Eithers.bind (encodeType aliases boundVars (Model.pairTypeSecond v0) cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jsecond -> Right (Utils.javaRefType [+ jfirst,+ jsecond] JavaNames.hydraUtilPackageName "Pair")))+ Model.TypeUnit -> Right (Utils.javaRefType [] JavaNames.javaLangPackageName "Void")+ Model.TypeRecord v0 -> Logic.ifElse (Lists.isEmpty v0) (Right (Utils.javaRefType [] JavaNames.javaLangPackageName "Void")) (Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous record type")))+ Model.TypeOptional v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars v0 cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jot -> Right (Utils.javaRefType [+ jot] JavaNames.hydraUtilPackageName "Optional"))+ Model.TypeSet v0 -> Eithers.bind (Eithers.bind (encodeType aliases boundVars v0 cx g) (\jt_ -> Utils.javaTypeToJavaReferenceType jt_ cx)) (\jst -> Right (Utils.javaRefType [+ jst] JavaNames.javaUtilPackageName "Set"))+ Model.TypeUnion _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous union type"))+ Model.TypeVariable v0 ->+ let name = Optionals.withDefault v0 (Maps.lookup v0 typeVarSubst)+ in (Eithers.bind (encodeType_resolveIfTypedef aliases boundVars inScopeTypeParams name cx g) (\resolved -> Optionals.match resolved (Right (Logic.ifElse (Logic.or (Sets.member name boundVars) (Sets.member name inScopeTypeParams)) (Syntax.TypeReference (Utils.javaTypeVariable (Model.unName name))) (Logic.ifElse (isLambdaBoundVariable name) (Syntax.TypeReference (Utils.javaTypeVariable (Model.unName name))) (Logic.ifElse (isUnresolvedInferenceVar name) (Syntax.TypeReference (Syntax.ReferenceTypeClassOrInterface (Syntax.ClassOrInterfaceTypeClass (Utils.javaClassType [] JavaNames.javaLangPackageName "Object")))) (Syntax.TypeReference (Utils.nameToJavaReferenceType aliases True [] name Nothing)))))) (\resolvedType -> encodeType aliases boundVars resolvedType cx g)))+ Model.TypeWrap _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous wrap type"))+ _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "can't encode unsupported type in Java: " (PrintModel.type_ t))))++encodeTypeDefinition :: Syntax.PackageDeclaration -> JavaEnvironment.Aliases -> Packaging.TypeDefinition -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (Model.Name, Syntax.CompilationUnit)+encodeTypeDefinition pkg aliases tdef cx g =++ let name = Packaging.typeDefinitionName tdef+ typ = Model.typeSchemeBody (Packaging.typeDefinitionBody tdef)+ serializable = isSerializableJavaType typ+ imports =+ Logic.ifElse serializable [+ Syntax.ImportDeclarationSingleType (Syntax.SingleTypeImportDeclaration (Utils.javaTypeName (Syntax.Identifier "java.io.Serializable")))] []+ in (Eithers.bind (toClassDecl False serializable aliases [] name typ cx g) (\decl -> Eithers.bind (Annotations.getTypeDescription cx g typ) (\comment ->+ let tdecl =+ Syntax.TopLevelClassOrInterfaceDeclarationWithComments {+ Syntax.topLevelClassOrInterfaceDeclarationWithCommentsValue = (Syntax.TopLevelClassOrInterfaceDeclarationClass decl),+ Syntax.topLevelClassOrInterfaceDeclarationWithCommentsComments = comment}+ in (Right (+ name,+ (Syntax.CompilationUnitOrdinary (Syntax.OrdinaryCompilationUnit {+ Syntax.ordinaryCompilationUnitPackage = (Just pkg),+ Syntax.ordinaryCompilationUnitImports = imports,+ Syntax.ordinaryCompilationUnitTypes = [+ tdecl]})))))))++encodeType_resolveIfTypedef :: t0 -> S.Set Model.Name -> S.Set Model.Name -> Model.Name -> t1 -> Graph.Graph -> Either t2 (Maybe Model.Type)+encodeType_resolveIfTypedef aliases boundVars inScopeTypeParams name cx g =+ Logic.ifElse (Logic.or (Sets.member name boundVars) (Sets.member name inScopeTypeParams)) (Right Nothing) (Logic.ifElse (isLambdaBoundVariable name) (Right Nothing) (+ let schemaTypes = Graph.graphSchemaTypes g+ in (Optionals.match (Maps.lookup name schemaTypes) (Right Nothing) (\ts -> Logic.ifElse (Logic.not (Lists.isEmpty (Model.typeSchemeVariables ts))) (Right Nothing) (case (Strip.deannotateType (Model.typeSchemeBody ts)) of+ Model.TypeRecord _ -> Right Nothing+ Model.TypeUnion _ -> Right Nothing+ Model.TypeWrap _ -> Right Nothing+ _ -> Right (Just (Model.typeSchemeBody ts)))))))++encodeVariable :: JavaEnvironment.JavaEnvironment -> Model.Name -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeVariable env name cx g =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ resolvedName = Utils.lookupJavaVarName aliases name+ jid = Utils.javaIdentifier (Model.unName resolvedName)+ in (Logic.ifElse (Sets.member name (JavaEnvironment.aliasesBranchVars aliases)) (Right (Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {+ Syntax.fieldAccessQualifier = (Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary (Utils.javaIdentifierToJavaExpression jid))),+ Syntax.fieldAccessIdentifier = (Utils.javaIdentifier JavaNames.valueFieldName)}))) (Logic.ifElse (Logic.and (Equality.equal name (Model.Name (Strings.concat [+ JavaNames.instanceName,+ "_",+ JavaNames.valueFieldName]))) (isRecursiveVariable aliases name)) (+ let instanceExpr = Utils.javaIdentifierToJavaExpression (Utils.javaIdentifier JavaNames.instanceName)+ in (Right (Utils.javaFieldAccessToJavaExpression (Syntax.FieldAccess {+ Syntax.fieldAccessQualifier = (Syntax.FieldAccess_QualifierPrimary (Utils.javaExpressionToJavaPrimary instanceExpr)),+ Syntax.fieldAccessIdentifier = (Utils.javaIdentifier JavaNames.valueFieldName)})))) (Logic.ifElse (Logic.and (isRecursiveVariable aliases name) (Logic.not (isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)))) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Left (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = jid}))) (Syntax.Identifier JavaNames.getMethodName) []))) (Logic.ifElse (Logic.and (Sets.member name (JavaEnvironment.aliasesThunkedVars aliases)) (Logic.not (isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)))) (Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation (Just (Left (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = jid}))) (Syntax.Identifier JavaNames.getMethodName) []))) (Logic.ifElse (isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)) (+ let actualName = findMatchingLambdaVar name (JavaEnvironment.aliasesLambdaVars aliases)+ resolvedActual = Utils.lookupJavaVarName aliases actualName+ in (Right (Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier resolvedActual)))) (Logic.ifElse (Sets.member name (JavaEnvironment.aliasesInScopeJavaVars aliases)) (Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False False aliases resolvedName))) (Eithers.bind (classifyDataReference name cx g) (\cls -> case cls of+ JavaEnvironment.JavaSymbolClassHoistedLambda v0 -> encodeVariable_hoistedLambdaCase aliases name v0 cx g+ JavaEnvironment.JavaSymbolClassLocalVariable -> Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False False aliases resolvedName))+ JavaEnvironment.JavaSymbolClassConstant -> Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False False aliases name))+ JavaEnvironment.JavaSymbolClassNullaryFunction -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation Nothing (elementJavaIdentifier False False aliases name) []))+ JavaEnvironment.JavaSymbolClassUnaryFunction -> Right (Utils.javaIdentifierToJavaExpression (elementJavaIdentifier False True aliases name))))))))))++encodeVariable_buildCurried :: [Model.Name] -> Syntax.Expression -> Syntax.Expression+encodeVariable_buildCurried params inner =+ Optionals.withDefault inner (Optionals.map (\p -> Utils.javaLambda (Pairs.first p) (encodeVariable_buildCurried (Pairs.second p) inner)) (Lists.uncons params))++encodeVariable_hoistedLambdaCase :: JavaEnvironment.Aliases -> Model.Name -> Int -> t0 -> Graph.Graph -> Either Errors.Error Syntax.Expression+encodeVariable_hoistedLambdaCase aliases name arity cx g =++ let paramNames = Lists.map (\i -> Model.Name (Strings.concat2 "p" (Literals.printInt32 i))) (Math.range 0 arity)+ paramExprs = Lists.map (\pn -> Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier pn)) paramNames+ call =+ Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation Nothing (elementJavaIdentifier False False aliases name) paramExprs)+ lam = encodeVariable_buildCurried paramNames call+ in (Eithers.bind (Right (Lexical.lookupBinding g name)) (\mel -> Optionals.match mel (Right lam) (\el -> Optionals.match (Model.bindingTypeScheme el) (Right lam) (\ts ->+ let typ = Model.typeSchemeBody ts+ in (Eithers.bind (encodeType aliases Sets.empty typ cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression lam))))))))))++eqClause :: String -> Model.FieldType -> Syntax.InclusiveOrExpression+eqClause tmpName ft =++ let fname = Model.unName (Model.fieldTypeName ft)+ ftype = Model.fieldTypeType ft+ in (Logic.ifElse (isBinaryType ftype) (arraysEqualsClause tmpName fname) (Logic.ifElse (isBigIntegerType ftype) (compareToZeroClause tmpName fname) (equalsClause tmpName fname)))++equalsClause :: String -> String -> Syntax.InclusiveOrExpression+equalsClause tmpName fname =++ let thisArg =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))+ otherArg =+ Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Utils.javaIdentifier tmpName) (Utils.javaIdentifier fname))+ header =+ Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Objects"))),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.equalsMethodName)})+ in (Utils.javaPostfixExpressionToJavaInclusiveOrExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = header,+ Syntax.methodInvocationArguments = [+ thisArg,+ otherArg]})))++explicitTypeArguments :: [Syntax.TypeArgument] -> Syntax.TypeArgumentsOrDiamond+explicitTypeArguments args = Syntax.TypeArgumentsOrDiamondArguments args++extractArgType :: t0 -> Model.Type -> Model.Type+extractArgType _lhs typ =+ case typ of+ Model.TypeApplication v0 -> case (Model.applicationTypeFunction v0) of+ Model.TypeApplication _ -> Model.applicationTypeArgument v0+ _ -> typ+ _ -> typ++extractDirectReturn :: S.Set Model.Name -> Model.Type -> [(Model.Name, Model.Name)]+extractDirectReturn tparamSet t = extractDirectReturn_go tparamSet t++extractDirectReturn_go :: S.Set Model.Name -> Model.Type -> [(Model.Name, Model.Name)]+extractDirectReturn_go tparamSet t =+ case (Strip.deannotateType t) of+ Model.TypeFunction v0 ->+ let dom = Strip.deannotateType (Model.functionTypeDomain v0)+ cod = Model.functionTypeCodomain v0+ in case dom of+ Model.TypeVariable v1 -> Logic.ifElse (Sets.member v1 tparamSet) (case (Strip.deannotateType cod) of+ Model.TypeFunction v2 ->+ let midArg = Strip.deannotateType (Model.functionTypeDomain v2)+ retPart = Strip.deannotateType (Model.functionTypeCodomain v2)+ in case midArg of+ Model.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) [] (case retPart of+ Model.TypeVariable v4 -> Logic.ifElse (Sets.member v4 tparamSet) [+ (v1, v4)] []+ _ -> [])+ _ -> case retPart of+ Model.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) [+ (v1, v3)] []+ _ -> []+ _ -> []) (extractDirectReturn_go tparamSet cod)+ _ -> extractDirectReturn_go tparamSet cod+ _ -> []++extractInOutPair :: Model.Type -> [(Model.Name, Model.Name)]+extractInOutPair t =+ case (Strip.deannotateType t) of+ Model.TypeFunction v0 -> case (Strip.deannotateType (Model.functionTypeDomain v0)) of+ Model.TypeVariable v1 ->+ let retType = unwrapReturnType (Model.functionTypeCodomain v0)+ in case (Strip.deannotateType retType) of+ Model.TypePair v2 -> case (Strip.deannotateType (Model.pairTypeFirst v2)) of+ Model.TypeVariable v3 -> [+ (v1, v3)]+ _ -> []+ _ -> []+ _ -> []+ _ -> []++extractTypeApplicationArgs :: Model.Type -> [Model.Type]+extractTypeApplicationArgs typ = Lists.reverse (extractTypeApplicationArgs_go typ)++extractTypeApplicationArgs_go :: Model.Type -> [Model.Type]+extractTypeApplicationArgs_go t =+ case t of+ Model.TypeApplication v0 -> Lists.cons (Model.applicationTypeArgument v0) (extractTypeApplicationArgs_go (Model.applicationTypeFunction v0))+ _ -> []++fieldToStringPart :: Model.FieldType -> [Syntax.MultiplicativeExpression]+fieldToStringPart f =++ let fname = Model.unName (Model.fieldTypeName f)+ nameLiteral = Utils.javaStringMultiplicativeExpression (Strings.concat2 fname "=")+ valueExpr =+ Syntax.MultiplicativeExpressionUnary (Utils.javaExpressionToJavaUnaryExpression (Utils.javaExpressionNameToJavaExpression (Utils.fieldExpression (Syntax.Identifier "this") (Utils.javaIdentifier fname))))+ in [+ Utils.javaStringMultiplicativeExpression ", ",+ nameLiteral,+ valueExpr]++fieldTypeToFormalParam :: JavaEnvironment.Aliases -> Model.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.FormalParameter+fieldTypeToFormalParam aliases ft cx g =+ Eithers.bind (encodeType aliases Sets.empty (Model.fieldTypeType ft) cx g) (\jt -> Right (Utils.javaTypeToJavaFormalParameter jt (Model.fieldTypeName ft)))++filterByFlags :: [t0] -> [Bool] -> [t0]+filterByFlags xs flags = Lists.map (\p -> Pairs.first p) (Lists.filter (\p -> Pairs.second p) (Lists.zip xs flags))++filterPhantomTypeArgs :: Model.Name -> [Model.Type] -> t0 -> Graph.Graph -> Either t1 [Model.Type]+filterPhantomTypeArgs calleeName allTypeArgs cx g =+ Eithers.bind (Right (Lexical.lookupBinding g calleeName)) (\mel -> Optionals.match mel (Right allTypeArgs) (\el -> Optionals.match (Model.bindingTypeScheme el) (Right allTypeArgs) (\ts ->+ let schemeVars = Lists.filter (\v -> isSimpleName v) (Model.typeSchemeVariables ts)+ schemeTypeVars = collectTypeVars (Model.typeSchemeBody ts)+ schemeType = Model.typeSchemeBody ts+ nParams = countFunctionParams schemeType+ peeled = peelDomainTypes nParams schemeType+ calleeDoms = Pairs.first peeled+ calleeCod = Pairs.second peeled+ overgenSubst = detectAccumulatorUnification calleeDoms calleeCod schemeVars+ keepFlags = Lists.map (\v -> Logic.and (Sets.member v schemeTypeVars) (Logic.not (Maps.member v overgenSubst))) schemeVars+ in (Logic.ifElse (Logic.not (Equality.equal (Lists.length schemeVars) (Lists.length allTypeArgs))) (Right allTypeArgs) (Right (filterPhantomTypeArgs_filterAndApply allTypeArgs keepFlags overgenSubst))))))++filterPhantomTypeArgs_filterAndApply :: [Model.Type] -> [Bool] -> M.Map Model.Name Model.Type -> [Model.Type]+filterPhantomTypeArgs_filterAndApply allTypeArgs keepFlags overgenSubst =++ let filtered = Lists.map (\p -> Pairs.first p) (Lists.filter (\p -> Pairs.second p) (Lists.zip allTypeArgs keepFlags))+ in (Logic.ifElse (Logic.not (Maps.isEmpty overgenSubst)) (Lists.map (\t -> substituteTypeVarsWithTypes overgenSubst t) filtered) filtered)++findMatchingLambdaVar :: Model.Name -> S.Set Model.Name -> Model.Name+findMatchingLambdaVar name lambdaVars =+ Logic.ifElse (Sets.member name lambdaVars) name (Logic.ifElse (isLambdaBoundIn_isQualified name) (Optionals.withDefault name (Lists.find (\lv -> Logic.and (isLambdaBoundIn_isQualified lv) (Equality.equal (CoreNames.localNameOf lv) (CoreNames.localNameOf name))) (Sets.toList lambdaVars))) (Logic.ifElse (Sets.member (Model.Name (CoreNames.localNameOf name)) lambdaVars) (Model.Name (CoreNames.localNameOf name)) name))++findPairFirst :: Model.Type -> Maybe Model.Name+findPairFirst t =+ case (Strip.deannotateType t) of+ Model.TypePair v0 -> case (Strip.deannotateType (Model.pairTypeFirst v0)) of+ Model.TypeVariable v1 -> Just v1+ _ -> Nothing+ _ -> Nothing++findSelfRefVar :: (Eq t0, Ord t0) => (M.Map t0 [t0] -> Maybe t0)+findSelfRefVar grouped =++ let selfRefs = Lists.filter (\entry -> Lists.member (Pairs.first entry) (Pairs.second entry)) (Maps.toList grouped)+ in (Optionals.map (\entry -> Pairs.first entry) (Lists.head selfRefs))++first20Primes :: [Integer]+first20Primes =+ [+ 2,+ 3,+ 5,+ 7,+ 11,+ 13,+ 17,+ 19,+ 23,+ 29,+ 31,+ 37,+ 41,+ 43,+ 47,+ 53,+ 59,+ 61,+ 67,+ 71]++flattenApps :: Model.Term -> [Model.Term] -> ([Model.Term], Model.Term)+flattenApps t acc =+ case (Strip.deannotateTerm t) of+ Model.TermApplication v0 -> flattenApps (Model.applicationFunction v0) (Lists.cons (Model.applicationArgument v0) acc)+ _ -> (acc, t)++flattenBindings :: [Model.Binding] -> [Model.Binding]+flattenBindings bindings =+ Lists.bind bindings (\b -> case (Strip.deannotateTerm (Model.bindingTerm b)) of+ Model.TermLet v0 -> Lists.concat2 (flattenBindings (Model.letBindings v0)) [+ Model.Binding {+ Model.bindingName = (Model.bindingName b),+ Model.bindingTerm = (Model.letBody v0),+ Model.bindingTypeScheme = (Model.bindingTypeScheme b)}]+ _ -> [+ b])++freshJavaName :: Model.Name -> S.Set Model.Name -> Model.Name+freshJavaName base avoid = freshJavaName_go base avoid 2++freshJavaName_go :: Model.Name -> S.Set Model.Name -> Int -> Model.Name+freshJavaName_go base avoid i =++ let candidate = Model.Name (Strings.concat2 (Model.unName base) (Literals.printInt32 i))+ in (Logic.ifElse (Sets.member candidate avoid) (freshJavaName_go base avoid (Math.add i 1)) candidate)++functionCall :: JavaEnvironment.JavaEnvironment -> Bool -> Model.Name -> [Model.Term] -> [Model.Type] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+functionCall env isPrim name args typeApps cx g =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ isLambdaBound = isLambdaBoundIn name (JavaEnvironment.aliasesLambdaVars aliases)+ in (Eithers.bind (Eithers.mapList (\arg -> encodeTerm env arg cx g) args) (\jargs0 ->+ let wrapResult = wrapLazyArguments g name jargs0+ jargs = Pairs.first wrapResult+ mMethodOverride = Pairs.second wrapResult+ in (Logic.ifElse (Logic.or (isLocalVariable name) isLambdaBound) (Eithers.bind (encodeVariable env name cx g) (\baseExpr -> Right (Lists.foldl (\acc -> \jarg -> applyJavaArg acc jarg) baseExpr jargs))) (+ let overrideMethodName =+ \jid -> Optionals.match mMethodOverride jid (\m ->+ let s = Syntax.unIdentifier jid+ in (Syntax.Identifier (Strings.concat2 (Strings.fromList (Lists.take (Math.sub (Strings.length s) (Strings.length JavaNames.applyMethodName)) (Strings.toList s))) m)))+ in (Logic.ifElse (Lists.isEmpty typeApps) (+ let header =+ Syntax.MethodInvocation_HeaderSimple (Syntax.MethodName (overrideMethodName (elementJavaIdentifier isPrim False aliases name)))+ in (Right (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = header,+ Syntax.methodInvocationArguments = jargs})))) (+ let qn = CoreNames.qualifyName name+ mns = Util.qualifiedNameModuleName qn+ localName = Util.qualifiedNameLocal qn+ in (Optionals.match mns (+ let header =+ Syntax.MethodInvocation_HeaderSimple (Syntax.MethodName (overrideMethodName (elementJavaIdentifier isPrim False aliases name)))+ in (Right (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = header,+ Syntax.methodInvocationArguments = jargs})))) (\ns_ ->+ let classId = Utils.nameToJavaName aliases (elementsQualifiedName ns_)+ methodId =+ Logic.ifElse isPrim (overrideMethodName (Syntax.Identifier (Strings.concat2 (Syntax.unIdentifier (Utils.nameToJavaName aliases (CoreNames.unqualifyName (Util.QualifiedName {+ Util.qualifiedNameModuleName = (Just ns_),+ Util.qualifiedNameLocal = (Formatting.capitalize localName)})))) (Strings.concat2 "." JavaNames.applyMethodName)))) (Syntax.Identifier (Utils.sanitizeJavaName localName))+ in (Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) typeApps) (\jTypeArgs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs classId methodId jTypeArgs jargs))))))))))))++getCodomain :: M.Map Model.Name Model.Term -> t0 -> Graph.Graph -> Either Errors.Error Model.Type+getCodomain ann cx g = Eithers.map (\ft -> Model.functionTypeCodomain ft) (getFunctionType ann cx g)++getFunctionType :: M.Map Model.Name Model.Term -> t0 -> Graph.Graph -> Either Errors.Error Model.FunctionType+getFunctionType ann cx g =+ Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g ann)) (\mt -> Optionals.match mt (Left (Errors.ErrorOther (Errors.OtherError "type annotation is required for function and elimination terms in Java"))) (\t -> case t of+ Model.TypeFunction v0 -> Right v0+ _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "expected function type, got: " (PrintModel.type_ t))))))++groupPairsByFirst :: Ord t0 => ([(t0, t1)] -> M.Map t0 [t1])+groupPairsByFirst pairs =+ Lists.foldl (\m -> \p ->+ let k = Pairs.first p+ v = Pairs.second p+ in (Maps.alter (\mv -> Optionals.match mv (Just [+ v]) (\vs -> Just (Lists.concat2 vs [+ v]))) k m)) Maps.empty pairs++hashCodeCompareExpr :: String -> String -> Syntax.Expression+hashCodeCompareExpr otherVar fname =++ let header =+ Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "Integer"))),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier "compare")})+ thisHashCode =+ Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantExpression (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Syntax.Identifier (Utils.sanitizeJavaName fname))})),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hashCodeMethodName)})),+ Syntax.methodInvocationArguments = []})+ otherHashCode =+ Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantExpression (Utils.fieldExpression (Utils.javaIdentifier otherVar) (Utils.javaIdentifier fname))),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hashCodeMethodName)})),+ Syntax.methodInvocationArguments = []})+ in (Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = header,+ Syntax.methodInvocationArguments = [+ thisHashCode,+ otherHashCode]}))++hashCodeMultPair :: Integer -> Model.Name -> Syntax.MultiplicativeExpression+hashCodeMultPair i fname =++ let fnameStr = Model.unName fname+ lhs =+ Syntax.MultiplicativeExpressionUnary (Utils.javaPrimaryToJavaUnaryExpression (Utils.javaLiteralToJavaPrimary (Utils.javaInt i)))+ rhs =+ Utils.javaPostfixExpressionToJavaUnaryExpression (Utils.javaMethodInvocationToJavaPostfixExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "java.util.Objects"))),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hashCodeMethodName)})),+ Syntax.methodInvocationArguments = [+ Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Syntax.Identifier (Utils.sanitizeJavaName fnameStr))})]}))+ in (Syntax.MultiplicativeExpressionTimes (Syntax.MultiplicativeExpression_Binary {+ Syntax.multiplicativeExpression_BinaryLhs = lhs,+ Syntax.multiplicativeExpression_BinaryRhs = rhs}))++hydraOrdinalMethod :: Maybe Int -> Syntax.ClassBodyDeclaration+hydraOrdinalMethod ordinal =++ let mods =+ Logic.ifElse (Optionals.isNone ordinal) [+ Syntax.MethodModifierPublic,+ Syntax.MethodModifierAbstract] [+ Syntax.MethodModifierPublic]+ anns = Logic.ifElse (Optionals.isNone ordinal) [] [+ Utils.overrideAnnotation]+ result = Utils.javaTypeToJavaResult Utils.javaIntType+ body =+ Optionals.map (\n -> [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaIntExpression (Literals.int32ToBigint n))))]) ordinal+ in (Utils.methodDeclaration mods [] anns JavaNames.hydraOrdinalMethodName [] result body)++innerClassRef :: JavaEnvironment.Aliases -> Model.Name -> String -> Syntax.Identifier+innerClassRef aliases name local =++ let id = Syntax.unIdentifier (Utils.nameToJavaName aliases name)+ in (Syntax.Identifier (Strings.concat2 (Strings.concat2 id ".") local))++insertBranchVar :: Model.Name -> JavaEnvironment.JavaEnvironment -> JavaEnvironment.JavaEnvironment+insertBranchVar name env =++ let aliases = JavaEnvironment.javaEnvironmentAliases env+ in JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = JavaEnvironment.Aliases {+ JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases),+ JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases),+ JavaEnvironment.aliasesBranchVars = (Sets.insert name (JavaEnvironment.aliasesBranchVars aliases)),+ JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases),+ JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases),+ JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases),+ JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases),+ JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases),+ JavaEnvironment.aliasesLambdaVars = (JavaEnvironment.aliasesLambdaVars aliases),+ JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases),+ JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases),+ JavaEnvironment.aliasesMethodCodomain = Nothing,+ JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases)},+ JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env)}++interfaceTypes :: Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> [Syntax.InterfaceType]+interfaceTypes isSer aliases tparams elName =++ let javaSerializableType =+ Syntax.InterfaceType (Syntax.ClassType {+ Syntax.classTypeAnnotations = [],+ Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,+ Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Serializable"),+ Syntax.classTypeArguments = []})+ selfTypeArg =+ Syntax.TypeArgumentReference (Utils.nameToJavaReferenceType aliases False (Lists.map (\tp_ -> Utils.typeParameterToTypeArgument tp_) tparams) elName Nothing)+ javaComparableType =+ Syntax.InterfaceType (Syntax.ClassType {+ Syntax.classTypeAnnotations = [],+ Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,+ Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Comparable"),+ Syntax.classTypeArguments = [+ selfTypeArg]})+ in (Logic.ifElse isSer [+ javaSerializableType,+ javaComparableType] [])++isBigIntegerType :: Model.Type -> Bool+isBigIntegerType typ =+ case (Strip.deannotateType typ) of+ Model.TypeLiteral v0 -> case v0 of+ Model.LiteralTypeInteger v1 -> case v1 of+ Model.IntegerTypeBigint -> True+ _ -> False+ _ -> False+ _ -> False++isBinaryType :: Model.Type -> Bool+isBinaryType typ =+ case (Strip.deannotateType typ) of+ Model.TypeLiteral v0 -> case v0 of+ Model.LiteralTypeBinary -> True+ _ -> False+ _ -> False++isFieldUnitType :: Model.Name -> Model.Name -> t0 -> Graph.Graph -> Either t1 Bool+isFieldUnitType typeName fieldName cx g =++ let schemaTypes = Graph.graphSchemaTypes g+ in (Optionals.match (Maps.lookup typeName schemaTypes) (Right False) (\ts -> case (Strip.deannotateType (Model.typeSchemeBody ts)) of+ Model.TypeUnion v0 -> Right (Optionals.match (Lists.find (\ft -> Equality.equal (Model.fieldTypeName ft) fieldName) v0) False (\ft -> Predicates.isUnitType (Strip.deannotateType (Model.fieldTypeType ft))))+ _ -> Right False))++isLambdaBoundIn :: Model.Name -> S.Set Model.Name -> Bool+isLambdaBoundIn name lambdaVars =+ Logic.or (Sets.member name lambdaVars) (Logic.or (Logic.and (isLambdaBoundIn_isQualified name) (Optionals.isGiven (Lists.find (\lv -> Logic.and (isLambdaBoundIn_isQualified lv) (Equality.equal (CoreNames.localNameOf lv) (CoreNames.localNameOf name))) (Sets.toList lambdaVars)))) (Logic.and (Logic.not (isLambdaBoundIn_isQualified name)) (Sets.member (Model.Name (CoreNames.localNameOf name)) lambdaVars)))++isLambdaBoundIn_isQualified :: Model.Name -> Bool+isLambdaBoundIn_isQualified n = Optionals.isGiven (Util.qualifiedNameModuleName (CoreNames.qualifyName n))++isLambdaBoundVariable :: Model.Name -> Bool+isLambdaBoundVariable name =++ let v = Model.unName name+ in (Ordering.lte (Strings.length v) 4)++isLocalVariable :: Model.Name -> Bool+isLocalVariable name = Optionals.isNone (Util.qualifiedNameModuleName (CoreNames.qualifyName name))++isNonComparableType :: Model.Type -> Bool+isNonComparableType typ =+ case (Strip.deannotateType typ) of+ Model.TypeEither _ -> True+ Model.TypeFunction _ -> True+ Model.TypeUnit -> True+ Model.TypeLiteral v0 -> case v0 of+ Model.LiteralTypeBinary -> True+ _ -> False+ Model.TypeForall v0 -> isNonComparableType (Model.forallTypeBody v0)+ _ -> False++isRecursiveVariable :: JavaEnvironment.Aliases -> Model.Name -> Bool+isRecursiveVariable aliases name = Sets.member name (JavaEnvironment.aliasesRecursiveVars aliases)++isSerializableJavaType :: Model.Type -> Bool+isSerializableJavaType typ = Predicates.isNominalType typ++isSimpleName :: Model.Name -> Bool+isSimpleName name = Equality.equal (Lists.length (Strings.splitOn "." (Model.unName name))) 1++isUnresolvedInferenceVar :: Model.Name -> Bool+isUnresolvedInferenceVar name =++ let chars = Strings.toList (Model.unName name)+ in (Optionals.withDefault False (Optionals.map (\p ->+ let firstCh = Pairs.first p+ rest = Pairs.second p+ in (Logic.ifElse (Logic.not (Equality.equal firstCh 116)) False (Logic.and (Logic.not (Lists.isEmpty rest)) (Lists.isEmpty (Lists.filter (\c -> Logic.not (isUnresolvedInferenceVar_isDigit c)) rest))))) (Lists.uncons chars)))++isUnresolvedInferenceVar_isDigit :: Int -> Bool+isUnresolvedInferenceVar_isDigit c = Logic.and (Ordering.gte c 48) (Ordering.lte c 57)++java11Features :: JavaEnvironment.JavaFeatures+java11Features = JavaEnvironment.JavaFeatures {+ JavaEnvironment.javaFeaturesSupportsDiamondOperator = True}++java8Features :: JavaEnvironment.JavaFeatures+java8Features = JavaEnvironment.JavaFeatures {+ JavaEnvironment.javaFeaturesSupportsDiamondOperator = False}++javaComparableRefType :: Syntax.ReferenceType+javaComparableRefType =+ Syntax.ReferenceTypeClassOrInterface (Syntax.ClassOrInterfaceTypeClass (Syntax.ClassType {+ Syntax.classTypeAnnotations = [],+ Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,+ Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Comparable"),+ Syntax.classTypeArguments = []}))++javaEnvGetGraph :: JavaEnvironment.JavaEnvironment -> Graph.Graph+javaEnvGetGraph env = JavaEnvironment.javaEnvironmentGraph env++javaEnvSetGraph :: Graph.Graph -> JavaEnvironment.JavaEnvironment -> JavaEnvironment.JavaEnvironment+javaEnvSetGraph g env =+ JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = (JavaEnvironment.javaEnvironmentAliases env),+ JavaEnvironment.javaEnvironmentGraph = g}++javaFeatures :: JavaEnvironment.JavaFeatures+javaFeatures = java11Features++javaIdentifierToString :: Syntax.Identifier -> String+javaIdentifierToString id = Syntax.unIdentifier id++javaTypeArgumentsForNamedType :: Model.Name -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.TypeArgument]+javaTypeArgumentsForNamedType tname cx g =+ Eithers.bind (Resolution.requireType cx g tname) (\typ -> Right (Lists.map (\tp_ -> Utils.typeParameterToTypeArgument tp_) (javaTypeParametersForType typ)))++javaTypeArgumentsForType :: Model.Type -> [Syntax.TypeArgument]+javaTypeArgumentsForType typ = Lists.reverse (Lists.map Utils.typeParameterToTypeArgument (javaTypeParametersForType typ))++javaTypeParametersForType :: Model.Type -> [Syntax.TypeParameter]+javaTypeParametersForType typ =++ let toParam = \name -> Utils.javaTypeParameter (Formatting.capitalize (Model.unName name))+ boundVars = javaTypeParametersForType_bvars typ+ freeVars = Lists.filter (\v -> isLambdaBoundVariable v) (Sets.toList (Variables.freeVariablesInType typ))+ vars = Lists.distinct (Lists.concat2 boundVars freeVars)+ in (Lists.map toParam vars)++javaTypeParametersForType_bvars :: Model.Type -> [Model.Name]+javaTypeParametersForType_bvars t =+ case t of+ Model.TypeForall v0 -> Lists.cons (Model.forallTypeParameter v0) (javaTypeParametersForType_bvars (Model.forallTypeBody v0))+ _ -> []++lazyFlagsForPrimitive :: Graph.Graph -> Model.Name -> [Bool]+lazyFlagsForPrimitive g name =+ Optionals.match (Maps.lookup name (Graph.graphPrimitives g)) [] (\prim -> Lists.map (\p -> Typing.parameterIsLazy p) (Typing.termSignatureParameters (Packaging.primitiveDefinitionSignature (Graph.primitiveDefinition prim))))++moduleToJava :: S.Set String -> Packaging.Module -> [Packaging.Definition] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (M.Map String String)+moduleToJava overlaySubs mod defs cx g =+ Eithers.bind (encodeDefinitions overlaySubs mod defs cx g) (\units -> Right (Maps.fromList (Lists.map (\entry ->+ let name = Pairs.first entry+ unit = Pairs.second entry+ in (bindingNameToFilePath name, (Serialization.printExpr (Serialization.parenthesize (Serde.compilationUnitToExpr unit))))) (Maps.toList units))))++nameMapToTypeMap :: Ord t0 => (M.Map t0 Model.Name -> M.Map t0 Model.Type)+nameMapToTypeMap m = Maps.map (\v -> Model.TypeVariable v) m++namespaceParent :: Packaging.ModuleName -> Maybe Packaging.ModuleName+namespaceParent ns =++ let parts = Strings.splitOn "." (Packaging.unModuleName ns)+ initParts = Optionals.withDefault [] (Lists.init parts)+ in (Logic.ifElse (Lists.isEmpty initParts) Nothing (Just (Packaging.ModuleName (Strings.join "." initParts))))++noComment :: Syntax.ClassBodyDeclaration -> Syntax.ClassBodyDeclarationWithComments+noComment decl =+ Syntax.ClassBodyDeclarationWithComments {+ Syntax.classBodyDeclarationWithCommentsValue = decl,+ Syntax.classBodyDeclarationWithCommentsComments = Nothing}++noInterfaceComment :: Syntax.InterfaceMemberDeclaration -> Syntax.InterfaceMemberDeclarationWithComments+noInterfaceComment decl =+ Syntax.InterfaceMemberDeclarationWithComments {+ Syntax.interfaceMemberDeclarationWithCommentsValue = decl,+ Syntax.interfaceMemberDeclarationWithCommentsComments = Nothing}++otherwiseBranch :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Model.Type -> Model.Type -> Model.Name -> Syntax.Type -> [Syntax.TypeArgument] -> Model.Term -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments+otherwiseBranch env aliases dom cod tname jcod targs d cx g =++ let jdom = Syntax.TypeReference (Utils.nameToJavaReferenceType aliases True targs tname Nothing)+ mods = [+ Syntax.MethodModifierPublic]+ anns = [+ Utils.overrideAnnotation]+ param = Utils.javaTypeToJavaFormalParameter jdom (Model.Name "instance")+ result = Syntax.ResultType (Syntax.UnannType jcod)+ in (Eithers.bind (analyzeJavaFunction env d cx g) (\fs ->+ let bindings = Typing.functionStructureBindings fs+ rawBody = Typing.functionStructureBody fs+ innerBody = annotateBodyWithCod cod rawBody+ env2 = Typing.functionStructureEnvironment fs+ in (Eithers.bind (bindingsToStatements env2 bindings cx g) (\bindResult ->+ let bindingStmts = Pairs.first bindResult+ env3 = Pairs.second bindResult+ in (Eithers.bind (encodeTerm env3 innerBody cx g) (\jret ->+ let returnStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jret))+ allStmts = Lists.concat2 bindingStmts [+ returnStmt]+ in (Right (noComment (Utils.methodDeclaration mods [] anns JavaNames.otherwiseMethodName [+ param] result (Just allStmts))))))))))++peelDomainTypes :: Int -> Model.Type -> ([Model.Type], Model.Type)+peelDomainTypes n t =+ Logic.ifElse (Ordering.lte n 0) ([], t) (case (Strip.deannotateType t) of+ Model.TypeFunction v0 ->+ let rest = peelDomainTypes (Math.sub n 1) (Model.functionTypeCodomain v0)+ in (Lists.cons (Model.functionTypeDomain v0) (Pairs.first rest), (Pairs.second rest))+ _ -> ([], t))++peelDomainsAndCod :: Int -> Model.Type -> ([Model.Type], Model.Type)+peelDomainsAndCod n t =+ Logic.ifElse (Ordering.lte n 0) ([], t) (case (Strip.deannotateType t) of+ Model.TypeFunction v0 ->+ let rest = peelDomainsAndCod (Math.sub n 1) (Model.functionTypeCodomain v0)+ in (Lists.cons (Model.functionTypeDomain v0) (Pairs.first rest), (Pairs.second rest))+ _ -> ([], t))++peelExpectedTypes :: M.Map Model.Name Model.Type -> Int -> Model.Type -> [Model.Type]+peelExpectedTypes subst n t =+ Logic.ifElse (Equality.equal n 0) [] (case (Strip.deannotateType t) of+ Model.TypeFunction v0 -> Lists.cons (applySubstFull subst (Model.functionTypeDomain v0)) (peelExpectedTypes subst (Math.sub n 1) (Model.functionTypeCodomain v0))+ _ -> [])++propagateType :: Model.Type -> Model.Term -> Model.Term+propagateType typ term =++ let setTypeAnn = \t -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ typ)) t+ in case (Strip.deannotateTerm term) of+ Model.TermLambda _ ->+ let annotated = setTypeAnn term+ in case (Strip.deannotateType typ) of+ Model.TypeFunction v1 -> propagateType_propagateIntoLambda (Model.functionTypeCodomain v1) annotated+ _ -> annotated+ Model.TermLet v0 ->+ let propagatedBindings =+ Lists.map (\b -> Optionals.match (Model.bindingTypeScheme b) b (\ts -> Model.Binding {+ Model.bindingName = (Model.bindingName b),+ Model.bindingTerm = (propagateType (Model.typeSchemeBody ts) (Model.bindingTerm b)),+ Model.bindingTypeScheme = (Model.bindingTypeScheme b)})) (Model.letBindings v0)+ in (setTypeAnn (propagateType_rebuildLet term propagatedBindings (propagateType typ (Model.letBody v0))))+ Model.TermApplication v0 ->+ let fun = Model.applicationFunction v0+ arg = Model.applicationArgument v0+ annotatedFun =+ case (Strip.deannotateTerm fun) of+ Model.TermCases v1 ->+ let dom = Resolution.nominalApplication (Model.caseStatementTypeName v1) []+ ft =+ Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = typ})+ in (Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ ft)) fun)+ _ -> fun+ in (setTypeAnn (Model.TermApplication (Model.Application {+ Model.applicationFunction = annotatedFun,+ Model.applicationArgument = arg})))+ _ -> setTypeAnn term++propagateType_propagateIntoLambda :: Model.Type -> Model.Term -> Model.Term+propagateType_propagateIntoLambda cod t =+ case t of+ Model.TermAnnotated v0 -> Model.TermAnnotated (Model.AnnotatedTerm {+ Model.annotatedTermBody = (propagateType_propagateIntoLambda cod (Model.annotatedTermBody v0)),+ Model.annotatedTermAnnotation = (Model.annotatedTermAnnotation v0)})+ Model.TermLambda v0 -> Model.TermLambda (Model.Lambda {+ Model.lambdaParameter = (Model.lambdaParameter v0),+ Model.lambdaDomain = (Model.lambdaDomain v0),+ Model.lambdaBody = (propagateType cod (Model.lambdaBody v0))})+ _ -> t++propagateType_rebuildLet :: Model.Term -> [Model.Binding] -> Model.Term -> Model.Term+propagateType_rebuildLet t bindings newBody =+ case t of+ Model.TermAnnotated v0 -> Model.TermAnnotated (Model.AnnotatedTerm {+ Model.annotatedTermBody = (propagateType_rebuildLet (Model.annotatedTermBody v0) bindings newBody),+ Model.annotatedTermAnnotation = (Model.annotatedTermAnnotation v0)})+ Model.TermLet _ -> Model.TermLet (Model.Let {+ Model.letBindings = bindings,+ Model.letBody = newBody})+ _ -> t++propagateTypesInAppChain :: Model.Type -> Model.Type -> Model.Term -> Model.Term+propagateTypesInAppChain fixedCod resultType t =++ let flattened = flattenApps t []+ args = Pairs.first flattened+ fun = Pairs.second flattened+ lambdaDomsResult = collectLambdaDomains fun+ lambdaDoms = Pairs.first lambdaDomsResult+ nArgs = Lists.length args+ nLambdaDoms = Lists.length lambdaDoms+ in (Logic.ifElse (Logic.and (Ordering.gt nLambdaDoms 0) (Ordering.gt nArgs 0)) (+ let bodyRetType = Pairs.second (peelDomainsAndCod (Math.sub nLambdaDoms nArgs) resultType)+ funType =+ Lists.foldl (\c -> \d -> Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = d,+ Model.functionTypeCodomain = c})) bodyRetType (Lists.reverse lambdaDoms)+ annotatedFun = Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ funType)) fun+ in (rebuildApps annotatedFun args funType)) (case (Strip.deannotateTerm t) of+ Model.TermApplication v0 ->+ let lhs = Model.applicationFunction v0+ rhs = Model.applicationArgument v0+ annotatedLhs =+ case (Strip.deannotateTerm lhs) of+ Model.TermCases v1 ->+ let dom = Resolution.nominalApplication (Model.caseStatementTypeName v1) []+ ft =+ Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = fixedCod})+ in (Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ ft)) lhs)+ _ -> lhs+ in (Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ resultType)) (Model.TermApplication (Model.Application {+ Model.applicationFunction = annotatedLhs,+ Model.applicationArgument = rhs})))+ _ -> Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ resultType)) t))++rebuildApps :: Model.Term -> [Model.Term] -> Model.Type -> Model.Term+rebuildApps f args fType =+ Logic.ifElse (Lists.isEmpty args) f (case (Strip.deannotateType fType) of+ Model.TypeFunction v0 -> Optionals.withDefault f (Optionals.map (\p ->+ let arg = Pairs.first p+ rest = Pairs.second p+ remainingType = Model.functionTypeCodomain v0+ app =+ Model.TermApplication (Model.Application {+ Model.applicationFunction = f,+ Model.applicationArgument = arg})+ annotatedApp = Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ remainingType)) app+ in (rebuildApps annotatedApp rest remainingType)) (Lists.uncons args))+ _ -> Lists.foldl (\acc -> \a -> Model.TermApplication (Model.Application {+ Model.applicationFunction = acc,+ Model.applicationArgument = a})) f args)++recordBuilderClass :: JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> [Model.FieldType] -> t0 -> Graph.Graph -> Either Errors.Error [Syntax.ClassBodyDeclarationWithComments]+recordBuilderClass aliases tparams elName fields cx g =++ let typeArgRefs = Lists.map Utils.typeParameterToReferenceType tparams+ typeArgs = Lists.map (\rt -> Syntax.TypeArgumentReference rt) typeArgRefs+ mTypeArgs = Logic.ifElse (Lists.isEmpty tparams) Nothing (Just (Syntax.TypeArgumentsOrDiamondArguments typeArgs))+ recordLocalName = Utils.sanitizeJavaName (CoreNames.localNameOf elName)+ builderType = Utils.javaRefType typeArgRefs Nothing "Builder"+ builderResult = Utils.javaTypeToJavaResult builderType+ recordType = Utils.javaRefType typeArgRefs Nothing recordLocalName+ recordResult = Utils.javaTypeToJavaResult recordType+ returnThisStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just Utils.javaThis))+ in (Eithers.bind (Eithers.mapList (\f ->+ let mods = [+ Syntax.FieldModifierPrivate]+ ftype = Model.fieldTypeType f+ fname = Model.fieldTypeName f+ in (Eithers.bind (encodeType aliases Sets.empty ftype cx g) (\jt -> Right (noComment (Utils.javaMemberField mods jt (Utils.fieldNameToJavaVariableDeclarator fname)))))) fields) (\builderFields -> Eithers.bind (Eithers.mapList (\f ->+ let mods = [+ Syntax.MethodModifierPublic]+ fname = Model.fieldTypeName f+ assignStmt = Syntax.BlockStatementStatement (Utils.toAssignStmt fname)+ in (Eithers.bind (fieldTypeToFormalParam aliases f cx g) (\param -> Right (noComment (Utils.methodDeclaration mods [] [] (builderSetterName fname) [+ param] builderResult (Just [+ assignStmt,+ returnThisStmt])))))) fields) (\setterMethods ->+ let buildMods = [+ Syntax.MethodModifierPublic]+ buildArgs = Lists.map (\f -> Utils.fieldNameToJavaExpression (Model.fieldTypeName f)) fields+ buildReturnStmt =+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier recordLocalName) mTypeArgs) buildArgs Nothing)))+ buildMethod =+ withCommentString (Strings.concat2 "Builds an immutable {@link " (Strings.concat2 recordLocalName "}.")) (Utils.methodDeclaration buildMods [] [] "build" [] recordResult (Just [+ buildReturnStmt]))+ builderClassDecl =+ Utils.javaClassDeclaration aliases tparams (Model.Name "Builder") [+ Syntax.ClassModifierPublic,+ Syntax.ClassModifierStatic,+ Syntax.ClassModifierFinal] Nothing [] (Lists.concat [+ builderFields,+ setterMethods,+ [+ buildMethod]])+ builderClassMember =+ withCommentString (Strings.concat2 "A fluent builder for {@link " (Strings.concat2 recordLocalName "}.")) (Syntax.ClassBodyDeclarationClassMember (Syntax.ClassMemberDeclarationClass builderClassDecl))+ factoryMods =+ [+ Syntax.MethodModifierPublic,+ Syntax.MethodModifierStatic]+ factoryReturnStmt =+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "Builder") mTypeArgs) [] Nothing)))+ factoryMethod =+ withCommentString (Strings.concat2 "Creates a new fluent builder for {@link " (Strings.concat2 recordLocalName "}.")) (Utils.methodDeclaration factoryMods tparams [] "builder" [] builderResult (Just [+ factoryReturnStmt]))+ in (Right [+ factoryMethod,+ builderClassMember]))))++recordCompareToMethod :: JavaEnvironment.Aliases -> t0 -> Model.Name -> [Model.FieldType] -> Syntax.ClassBodyDeclaration+recordCompareToMethod aliases tparams elName fields =++ let anns =+ [+ Utils.overrideAnnotation,+ Utils.suppressWarningsUncheckedAnnotation]+ mods = [+ Syntax.MethodModifierPublic]+ param =+ Utils.javaTypeToJavaFormalParameter (Utils.javaTypeFromTypeName aliases elName) (Model.Name JavaNames.otherInstanceName)+ result = Utils.javaTypeToJavaResult Utils.javaIntType+ in (Utils.methodDeclaration mods [] anns JavaNames.compareToMethodName [+ param] result (Just (compareToBody aliases JavaNames.otherInstanceName fields)))++recordConstructor :: JavaEnvironment.Aliases -> Model.Name -> [Model.FieldType] -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclaration+recordConstructor aliases elName fields cx g =++ let assignStmts = Lists.map (\f -> Syntax.BlockStatementStatement (Utils.toAssignStmt (Model.fieldTypeName f))) fields+ in (Eithers.bind (Eithers.mapList (\f -> fieldTypeToFormalParam aliases f cx g) fields) (\params -> Right (Utils.makeConstructor aliases elName False params assignStmts)))++recordEqualsMethod :: JavaEnvironment.Aliases -> Model.Name -> [Model.FieldType] -> Syntax.ClassBodyDeclaration+recordEqualsMethod aliases elName fields =++ let anns = [+ Utils.overrideAnnotation]+ mods = [+ Syntax.MethodModifierPublic]+ param = Utils.javaTypeToJavaFormalParameter (Utils.javaRefType [] Nothing "Object") (Model.Name JavaNames.otherInstanceName)+ result = Utils.javaTypeToJavaResult Utils.javaBooleanType+ tmpName = "o"+ instanceOfStmt =+ Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {+ Syntax.ifThenStatementExpression = (Utils.javaUnaryExpressionToJavaExpression (Syntax.UnaryExpressionOther (Syntax.UnaryExpressionNotPlusMinusNot (Utils.javaRelationalExpressionToJavaUnaryExpression (Utils.javaInstanceOf (Utils.javaIdentifierToJavaRelationalExpression (Utils.javaIdentifier JavaNames.otherInstanceName)) (Utils.nameToJavaReferenceType aliases False [] elName Nothing)))))),+ Syntax.ifThenStatementStatement = (Utils.javaReturnStatement (Just (Utils.javaBooleanExpression False)))}))+ castStmt =+ Utils.variableDeclarationStatement aliases (Utils.javaTypeFromTypeName aliases elName) (Utils.javaIdentifier tmpName) (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression (Utils.nameToJavaReferenceType aliases False [] elName Nothing) (Utils.javaIdentifierToJavaUnaryExpression (Syntax.Identifier (Utils.sanitizeJavaName JavaNames.otherInstanceName)))))+ returnAllFieldsEqual =+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Logic.ifElse (Lists.isEmpty fields) (Utils.javaBooleanExpression True) (Utils.javaConditionalAndExpressionToJavaExpression (Syntax.ConditionalAndExpression (Lists.map (\f -> eqClause tmpName f) fields))))))+ in (Utils.methodDeclaration mods [] anns JavaNames.equalsMethodName [+ param] result (Just [+ instanceOfStmt,+ castStmt,+ returnAllFieldsEqual]))++recordHashCodeMethod :: [Model.FieldType] -> Syntax.ClassBodyDeclaration+recordHashCodeMethod fields =++ let anns = [+ Utils.overrideAnnotation]+ mods = [+ Syntax.MethodModifierPublic]+ result = Utils.javaTypeToJavaResult Utils.javaIntType+ returnSum =+ Syntax.BlockStatementStatement (Logic.ifElse (Lists.isEmpty fields) (Utils.javaReturnStatement (Just (Utils.javaIntExpression 0))) (Utils.javaReturnStatement (Just (Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions (Lists.zipWith hashCodeMultPair first20Primes (Lists.map (\f -> Model.fieldTypeName f) fields)))))))+ in (Utils.methodDeclaration mods [] anns JavaNames.hashCodeMethodName [] result (Just [+ returnSum]))++recordMemberVar :: JavaEnvironment.Aliases -> Model.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclaration+recordMemberVar aliases ft cx g =++ let mods =+ [+ Syntax.FieldModifierPublic,+ Syntax.FieldModifierFinal]+ fname = Model.fieldTypeName ft+ ftype = Model.fieldTypeType ft+ in (Eithers.bind (encodeType aliases Sets.empty ftype cx g) (\jt -> Right (Utils.javaMemberField mods jt (Utils.fieldNameToJavaVariableDeclarator fname))))++recordToStringMethod :: Model.Name -> [Model.FieldType] -> Syntax.ClassBodyDeclaration+recordToStringMethod elName fields =++ let anns = [+ Utils.overrideAnnotation]+ mods = [+ Syntax.MethodModifierPublic]+ result = Utils.javaTypeToJavaResult (Utils.javaRefType [] Nothing "String")+ className = Model.unName elName+ fieldParts = Lists.drop 1 (Lists.concat (Lists.map fieldToStringPart fields))+ allParts =+ Lists.concat2 [+ Utils.javaStringMultiplicativeExpression (Strings.concat2 className "{")] (Lists.concat2 fieldParts [+ Utils.javaStringMultiplicativeExpression "}"])+ returnStr =+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaAdditiveExpressionToJavaExpression (Utils.addExpressions allParts))))+ in (Utils.methodDeclaration mods [] anns JavaNames.toStringMethodName [] result (Just [+ returnStr]))++recordWithMethod :: JavaEnvironment.Aliases -> Model.Name -> [Model.FieldType] -> Model.FieldType -> t0 -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclaration+recordWithMethod aliases elName fields field cx g =++ let mods = [+ Syntax.MethodModifierPublic]+ anns = []+ methodName =+ Strings.concat2 "with" (Formatting.nonAlnumToUnderscores (Formatting.capitalize (Model.unName (Model.fieldTypeName field))))+ result = Utils.referenceTypeToResult (Utils.nameToJavaReferenceType aliases False [] elName Nothing)+ consId = Syntax.Identifier (Utils.sanitizeJavaName (CoreNames.localNameOf elName))+ fieldArgs = Lists.map (\f -> Utils.fieldNameToJavaExpression (Model.fieldTypeName f)) fields+ returnStmt =+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaConstructorCall (Utils.javaConstructorName consId Nothing) fieldArgs Nothing)))+ in (Eithers.bind (fieldTypeToFormalParam aliases field cx g) (\param -> Right (Utils.methodDeclaration mods [] anns methodName [+ param] result (Just [+ returnStmt]))))++resolveTypeApps :: [Model.Name] -> [Model.Type] -> M.Map Model.Name Model.Type -> [Model.Type]+resolveTypeApps schemeVars fallbackTypeApps argSubst =++ let resolvedVars = Sets.fromList (Maps.keys argSubst)+ unresolvedVars = Lists.filter (\v -> Logic.not (Sets.member v resolvedVars)) schemeVars+ usedTypes = Sets.fromList (Maps.elems argSubst)+ unusedIrTypes = Lists.filter (\t -> Logic.not (Sets.member t usedTypes)) fallbackTypeApps+ remainingSubst = Maps.fromList (Lists.zip unresolvedVars unusedIrTypes)+ fullSubst = Maps.union argSubst remainingSubst+ in (Lists.map (\v -> Maps.findWithDefault (Model.TypeVariable v) v fullSubst) schemeVars)++selfRefSubstitution :: (Eq t0, Ord t0) => (M.Map t0 [t0] -> M.Map t0 t0)+selfRefSubstitution grouped =+ Lists.foldl (\subst -> \entry -> selfRefSubstitution_processGroup subst (Pairs.first entry) (Pairs.second entry)) Maps.empty (Maps.toList grouped)++selfRefSubstitution_processGroup :: (Eq t0, Ord t0) => (M.Map t0 t0 -> t0 -> [t0] -> M.Map t0 t0)+selfRefSubstitution_processGroup subst inVar outVars =+ Logic.ifElse (Lists.member inVar outVars) (Lists.foldl (\s -> \v -> Logic.ifElse (Equality.equal v inVar) s (Maps.insert v inVar s)) subst outVars) subst++serializableTypes :: Bool -> [Syntax.InterfaceType]+serializableTypes isSer =++ let javaSerializableType =+ Syntax.InterfaceType (Syntax.ClassType {+ Syntax.classTypeAnnotations = [],+ Syntax.classTypeQualifier = Syntax.ClassTypeQualifierNone,+ Syntax.classTypeIdentifier = (Utils.javaTypeIdentifier "Serializable"),+ Syntax.classTypeArguments = []})+ in (Logic.ifElse isSer [+ javaSerializableType] [])++splitConstantInitializer :: Syntax.InterfaceMemberDeclaration -> [Syntax.InterfaceMemberDeclaration]+splitConstantInitializer member =+ case member of+ Syntax.InterfaceMemberDeclarationConstant v0 -> Lists.bind (Syntax.constantDeclarationVariables v0) (splitConstantInitializer_splitVar (Syntax.constantDeclarationModifiers v0) (Syntax.constantDeclarationType v0))+ _ -> [+ member]++splitConstantInitializer_splitVar :: [Syntax.ConstantModifier] -> Syntax.UnannType -> Syntax.VariableDeclarator -> [Syntax.InterfaceMemberDeclaration]+splitConstantInitializer_splitVar mods utype vd =++ let vid = Syntax.variableDeclaratorId vd+ mInit = Syntax.variableDeclaratorInitializer vd+ in (Optionals.match mInit [+ Syntax.InterfaceMemberDeclarationConstant (Syntax.ConstantDeclaration {+ Syntax.constantDeclarationModifiers = mods,+ Syntax.constantDeclarationType = utype,+ Syntax.constantDeclarationVariables = [+ vd]})] (\init_ -> case init_ of+ Syntax.VariableInitializerExpression v0 ->+ let varName = javaIdentifierToString (Syntax.variableDeclaratorIdIdentifier vid)+ helperName = Strings.concat2 "_init_" varName+ callExpr = Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocation Nothing (Syntax.Identifier helperName) [])+ field =+ Syntax.InterfaceMemberDeclarationConstant (Syntax.ConstantDeclaration {+ Syntax.constantDeclarationModifiers = mods,+ Syntax.constantDeclarationType = utype,+ Syntax.constantDeclarationVariables = [+ Syntax.VariableDeclarator {+ Syntax.variableDeclaratorId = vid,+ Syntax.variableDeclaratorInitializer = (Just (Syntax.VariableInitializerExpression callExpr))}]})+ returnSt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just v0))+ resultType = Syntax.ResultType utype+ helper =+ Utils.interfaceMethodDeclaration [+ Syntax.InterfaceMethodModifierStatic,+ Syntax.InterfaceMethodModifierPrivate] [] helperName [] resultType (Just [+ returnSt])+ in [+ field,+ helper]+ _ -> [+ Syntax.InterfaceMemberDeclarationConstant (Syntax.ConstantDeclaration {+ Syntax.constantDeclarationModifiers = mods,+ Syntax.constantDeclarationType = utype,+ Syntax.constantDeclarationVariables = [+ vd]})]))++stripForalls :: Model.Type -> Model.Type+stripForalls t =+ case (Strip.deannotateType t) of+ Model.TypeForall v0 -> stripForalls (Model.forallTypeBody v0)+ _ -> t++substituteTypeVarsWithTypes :: M.Map Model.Name Model.Type -> Model.Type -> Model.Type+substituteTypeVarsWithTypes subst t = substituteTypeVarsWithTypes_go subst (Strip.deannotateType t)++substituteTypeVarsWithTypes_go :: M.Map Model.Name Model.Type -> Model.Type -> Model.Type+substituteTypeVarsWithTypes_go subst t =+ case (Strip.deannotateType t) of+ Model.TypeVariable v0 -> Optionals.match (Maps.lookup v0 subst) t (\rep -> rep)+ Model.TypeFunction v0 -> Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = (substituteTypeVarsWithTypes_go subst (Model.functionTypeDomain v0)),+ Model.functionTypeCodomain = (substituteTypeVarsWithTypes_go subst (Model.functionTypeCodomain v0))})+ Model.TypeApplication v0 -> Model.TypeApplication (Model.ApplicationType {+ Model.applicationTypeFunction = (substituteTypeVarsWithTypes_go subst (Model.applicationTypeFunction v0)),+ Model.applicationTypeArgument = (substituteTypeVarsWithTypes_go subst (Model.applicationTypeArgument v0))})+ Model.TypeList v0 -> Model.TypeList (substituteTypeVarsWithTypes_go subst v0)+ Model.TypeSet v0 -> Model.TypeSet (substituteTypeVarsWithTypes_go subst v0)+ Model.TypeOptional v0 -> Model.TypeOptional (substituteTypeVarsWithTypes_go subst v0)+ Model.TypeEffect v0 -> Model.TypeEffect (substituteTypeVarsWithTypes_go subst v0)+ Model.TypeMap v0 -> Model.TypeMap (Model.MapType {+ Model.mapTypeKeys = (substituteTypeVarsWithTypes_go subst (Model.mapTypeKeys v0)),+ Model.mapTypeValues = (substituteTypeVarsWithTypes_go subst (Model.mapTypeValues v0))})+ Model.TypePair v0 -> Model.TypePair (Model.PairType {+ Model.pairTypeFirst = (substituteTypeVarsWithTypes_go subst (Model.pairTypeFirst v0)),+ Model.pairTypeSecond = (substituteTypeVarsWithTypes_go subst (Model.pairTypeSecond v0))})+ Model.TypeEither v0 -> Model.TypeEither (Model.EitherType {+ Model.eitherTypeLeft = (substituteTypeVarsWithTypes_go subst (Model.eitherTypeLeft v0)),+ Model.eitherTypeRight = (substituteTypeVarsWithTypes_go subst (Model.eitherTypeRight v0))})+ Model.TypeForall v0 -> Model.TypeForall (Model.ForallType {+ Model.forallTypeParameter = (Model.forallTypeParameter v0),+ Model.forallTypeBody = (substituteTypeVarsWithTypes_go subst (Model.forallTypeBody v0))})+ _ -> t++tagCmpNotZeroExpr :: Syntax.Expression+tagCmpNotZeroExpr =+ Utils.javaEqualityExpressionToJavaExpression (Syntax.EqualityExpressionNotEqual (Syntax.EqualityExpression_Binary {+ Syntax.equalityExpression_BinaryLhs = lhs,+ Syntax.equalityExpression_BinaryRhs = rhs}))+ where+ lhs =+ Utils.javaRelationalExpressionToJavaEqualityExpression (Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionName (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Utils.javaIdentifier "tagCmp")})))+ rhs =+ Utils.javaPostfixExpressionToJavaRelationalExpression (Syntax.PostfixExpressionPrimary (Utils.javaLiteralToJavaPrimary (Utils.javaInt 0)))++tagCompareExpr :: Syntax.Expression+tagCompareExpr =+ Utils.javaMethodInvocationToJavaExpression (Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantType (Utils.javaTypeName (Syntax.Identifier "Integer"))),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier "compare")})),+ Syntax.methodInvocationArguments = [+ Utils.javaMethodInvocationToJavaExpression thisOrdinal,+ (Utils.javaMethodInvocationToJavaExpression otherOrdinal)]})+ where+ thisOrdinal =+ Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantPrimary (Utils.javaExpressionToJavaPrimary Utils.javaThis)),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hydraOrdinalMethodName)})),+ Syntax.methodInvocationArguments = []}+ otherOrdinal =+ Syntax.MethodInvocation {+ Syntax.methodInvocationHeader = (Syntax.MethodInvocation_HeaderComplex (Syntax.MethodInvocation_Complex {+ Syntax.methodInvocation_ComplexVariant = (Syntax.MethodInvocation_VariantExpression (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Syntax.Identifier JavaNames.otherInstanceName)})),+ Syntax.methodInvocation_ComplexTypeArguments = [],+ Syntax.methodInvocation_ComplexIdentifier = (Syntax.Identifier JavaNames.hydraOrdinalMethodName)})),+ Syntax.methodInvocationArguments = []}++takeTypeArgs :: String -> Int -> [Syntax.Type] -> t0 -> t1 -> Either Errors.Error [Syntax.TypeArgument]+takeTypeArgs label n tyapps cx g =+ Logic.ifElse (Ordering.lt (Lists.length tyapps) n) (Left (Errors.ErrorOther (Errors.OtherError (Strings.concat [+ "needed type arguments for ",+ label,+ ", found too few"])))) (Eithers.mapList (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt))) (Lists.take n tyapps))++toClassDecl :: Bool -> Bool -> JavaEnvironment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> Model.Type -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassDeclaration+toClassDecl isInner isSer aliases tparams elName t cx g =++ let wrap =+ \t_ -> declarationForRecordType isInner isSer aliases tparams elName [+ Model.FieldType {+ Model.fieldTypeName = (Model.Name "value"),+ Model.fieldTypeType = (Strip.deannotateType t_)}] cx g+ in case (Strip.deannotateType t) of+ Model.TypeRecord v0 -> declarationForRecordType isInner isSer aliases tparams elName v0 cx g+ Model.TypeUnion v0 -> declarationForUnionType isSer aliases tparams elName v0 cx g+ Model.TypeForall v0 ->+ let v = Model.forallTypeParameter v0+ body = Model.forallTypeBody v0+ param = Utils.javaTypeParameter (Formatting.capitalize (Model.unName v))+ in (toClassDecl False isSer aliases (Lists.concat2 tparams [+ param]) elName body cx g)+ Model.TypeWrap v0 -> declarationForRecordType isInner isSer aliases tparams elName [+ Model.FieldType {+ Model.fieldTypeName = (Model.Name "value"),+ Model.fieldTypeType = v0}] cx g+ _ -> wrap t++toDeclInit :: JavaEnvironment.Aliases -> Graph.Graph -> S.Set Model.Name -> [Model.Binding] -> Model.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error (Maybe Syntax.BlockStatement)+toDeclInit aliasesExt gExt recursiveVars flatBindings name cx g =+ Logic.ifElse (Sets.member name recursiveVars) (+ let binding =+ Optionals.withDefault (Model.Binding {+ Model.bindingName = name,+ Model.bindingTerm = Model.TermUnit,+ Model.bindingTypeScheme = Nothing}) (Lists.head (Lists.filter (\b -> Equality.equal (Model.bindingName b) name) flatBindings))+ value = Model.bindingTerm binding+ in (Eithers.bind (Optionals.match (Model.bindingTypeScheme binding) (Checking.typeOfTerm cx gExt value) (\ts -> Right (Model.typeSchemeBody ts))) (\typ -> Eithers.bind (encodeType aliasesExt Sets.empty typ cx g) (\jtype ->+ let id = Utils.variableToJavaIdentifier name+ arid = Syntax.Identifier "java.util.concurrent.atomic.AtomicReference"+ aid =+ Syntax.AnnotatedIdentifier {+ Syntax.annotatedIdentifierAnnotations = [],+ Syntax.annotatedIdentifierIdentifier = arid}+ in (Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt ->+ let targs = typeArgsOrDiamond [+ Syntax.TypeArgumentReference rt]+ ci =+ Syntax.ClassOrInterfaceTypeToInstantiate {+ Syntax.classOrInterfaceTypeToInstantiateIdentifiers = [+ aid],+ Syntax.classOrInterfaceTypeToInstantiateTypeArguments = (Just targs)}+ body = Utils.javaConstructorCall ci [] Nothing+ pkg =+ JavaNames.javaPackageName [+ "java",+ "util",+ "concurrent",+ "atomic"]+ artype = Utils.javaRefType [+ rt] (Just pkg) "AtomicReference"+ in (Right (Just (Utils.variableDeclarationStatement aliasesExt artype id body))))))))) (Right Nothing)++toDeclStatement :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Graph.Graph -> S.Set Model.Name -> S.Set Model.Name -> [Model.Binding] -> Model.Name -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.BlockStatement+toDeclStatement envExt aliasesExt gExt recursiveVars thunkedVars flatBindings name cx g =++ let binding =+ Optionals.withDefault (Model.Binding {+ Model.bindingName = name,+ Model.bindingTerm = Model.TermUnit,+ Model.bindingTypeScheme = Nothing}) (Lists.head (Lists.filter (\b -> Equality.equal (Model.bindingName b) name) flatBindings))+ value = Model.bindingTerm binding+ in (Eithers.bind (Optionals.match (Model.bindingTypeScheme binding) (Checking.typeOfTerm cx gExt value) (\ts -> Right (Model.typeSchemeBody ts))) (\typ -> Eithers.bind (encodeType aliasesExt Sets.empty typ cx g) (\jtype ->+ let id = Utils.variableToJavaIdentifier name+ annotatedValue = Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ typ)) value+ in (Eithers.bind (encodeTerm envExt annotatedValue cx g) (\rhs -> Logic.ifElse (Sets.member name recursiveVars) (Right (Syntax.BlockStatementStatement (Utils.javaMethodInvocationToJavaStatement (Utils.methodInvocation (Just (Left (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = id}))) (Syntax.Identifier JavaNames.setMethodName) [+ rhs])))) (Logic.ifElse (Sets.member name thunkedVars) (Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt ->+ let lazyType = Utils.javaRefType [+ rt] JavaNames.hydraUtilPackageName "Lazy"+ lambdaBody = Syntax.LambdaBodyExpression rhs+ supplierLambda =+ Syntax.ExpressionLambda (Syntax.LambdaExpression {+ Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersTuple []),+ Syntax.lambdaExpressionBody = lambdaBody})+ targs = typeArgsOrDiamond [+ Syntax.TypeArgumentReference rt]+ lazyExpr =+ Utils.javaConstructorCall (Utils.javaConstructorName (Syntax.Identifier "hydra.core.overlay.java.util.Lazy") (Just targs)) [+ supplierLambda] Nothing+ in (Right (Utils.variableDeclarationStatement aliasesExt lazyType id lazyExpr)))) (Right (Utils.variableDeclarationStatement aliasesExt jtype id rhs))))))))++tryInferFunctionType :: Model.Term -> Maybe Model.Type+tryInferFunctionType funTerm =+ case (Strip.deannotateTerm funTerm) of+ Model.TermLambda v0 -> Optionals.bind (Model.lambdaDomain v0) (\dom ->+ let mCod =+ case (Model.lambdaBody v0) of+ Model.TermAnnotated v1 -> Optionals.bind (Maps.lookup Constants.keyType (Annotations.getAnnotationMap (Model.annotatedTermAnnotation v1))) (\typeTerm -> decodeTypeFromTerm typeTerm)+ Model.TermLambda _ -> tryInferFunctionType (Model.lambdaBody v0)+ _ -> Nothing+ in (Optionals.map (\cod -> Model.TypeFunction (Model.FunctionType {+ Model.functionTypeDomain = dom,+ Model.functionTypeCodomain = cod})) mCod))+ _ -> Nothing++typeAppFallbackCast :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> [M.Map Model.Name Model.Term] -> [Syntax.Type] -> Syntax.Type -> Model.Term -> Model.Type -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+typeAppFallbackCast env aliases anns tyapps jatyp body typ cx g =++ let annotatedBody = Annotations.setTermAnnotation Constants.keyType (Just (EncodeModel.type_ typ)) body+ in (Eithers.bind (encodeTermInternal env anns (Lists.cons jatyp tyapps) annotatedBody cx g) (\jbody -> Eithers.bind (encodeType aliases Sets.empty typ cx g) (\jtype -> Eithers.bind (Utils.javaTypeToJavaReferenceType jtype cx) (\rt -> Right (Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression rt (Utils.javaExpressionToJavaUnaryExpression jbody)))))))++typeAppNullaryOrHoisted :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> [M.Map Model.Name Model.Term] -> [Syntax.Type] -> Syntax.Type -> Model.Term -> Model.Type -> Model.Name -> JavaEnvironment.JavaSymbolClass -> [Model.Type] -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.Expression+typeAppNullaryOrHoisted env aliases anns tyapps jatyp body correctedTyp varName cls allTypeArgs cx g =++ let qn = CoreNames.qualifyName varName+ mns = Util.qualifiedNameModuleName qn+ localName = Util.qualifiedNameLocal qn+ in case cls of+ JavaEnvironment.JavaSymbolClassNullaryFunction -> Optionals.match mns (typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g) (\ns_ ->+ let classId = Utils.nameToJavaName aliases (elementsQualifiedName ns_)+ methodId = Syntax.Identifier (Utils.sanitizeJavaName localName)+ in (Eithers.bind (filterPhantomTypeArgs varName allTypeArgs cx g) (\filteredTypeArgs -> Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) filteredTypeArgs) (\jTypeArgs -> Right (Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs classId methodId jTypeArgs []))))))+ JavaEnvironment.JavaSymbolClassHoistedLambda v0 -> Optionals.match mns (typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g) (\ns_ ->+ let classId = Utils.nameToJavaName aliases (elementsQualifiedName ns_)+ methodId = Syntax.Identifier (Utils.sanitizeJavaName localName)+ in (Eithers.bind (filterPhantomTypeArgs varName allTypeArgs cx g) (\filteredTypeArgs -> Eithers.bind (Eithers.mapList (\t -> Eithers.bind (encodeType aliases Sets.empty t cx g) (\jt -> Eithers.bind (Utils.javaTypeToJavaReferenceType jt cx) (\rt -> Right (Syntax.TypeArgumentReference rt)))) filteredTypeArgs) (\jTypeArgs ->+ let paramNames = Lists.map (\i -> Model.Name (Strings.concat2 "p" (Literals.printInt32 i))) (Math.range 0 v0)+ paramExprs = Lists.map (\p -> Utils.javaIdentifierToJavaExpression (Utils.variableToJavaIdentifier p)) paramNames+ call =+ Utils.javaMethodInvocationToJavaExpression (Utils.methodInvocationStaticWithTypeArgs classId methodId jTypeArgs paramExprs)+ in (Right (buildCurriedLambda paramNames call))))))+ _ -> typeAppFallbackCast env aliases anns tyapps jatyp body correctedTyp cx g++typeArgsOrDiamond :: [Syntax.TypeArgument] -> Syntax.TypeArgumentsOrDiamond+typeArgsOrDiamond args =+ Logic.ifElse (JavaEnvironment.javaFeaturesSupportsDiamondOperator javaFeatures) Syntax.TypeArgumentsOrDiamondDiamond (Syntax.TypeArgumentsOrDiamondArguments args)++typesMatch :: Model.Type -> Model.Type -> Bool+typesMatch a b =+ case a of+ Model.TypeVariable v0 -> case b of+ Model.TypeVariable v1 -> Equality.equal v0 v1+ _ -> True+ Model.TypeWrap v0 -> case b of+ Model.TypeWrap v1 -> Equality.equal v0 v1+ _ -> True+ _ -> True++unwrapReturnType :: Model.Type -> Model.Type+unwrapReturnType t =+ case (Strip.deannotateType t) of+ Model.TypeFunction v0 -> unwrapReturnType (Model.functionTypeCodomain v0)+ Model.TypeApplication v0 -> unwrapReturnType (Model.applicationTypeArgument v0)+ _ -> t++variantCompareToMethod :: JavaEnvironment.Aliases -> t0 -> Model.Name -> Model.Name -> Int -> [Model.FieldType] -> [Syntax.ClassBodyDeclaration]+variantCompareToMethod aliases tparams parentName variantName ordinal fields =++ let anns =+ [+ Utils.overrideAnnotation,+ Utils.suppressWarningsUncheckedAnnotation]+ mods = [+ Syntax.MethodModifierPublic]+ param =+ Utils.javaTypeToJavaFormalParameter (Utils.javaTypeFromTypeName aliases parentName) (Model.Name JavaNames.otherInstanceName)+ result = Utils.javaTypeToJavaResult Utils.javaIntType+ varTmpName = "o"+ tagDeclStmt = Utils.variableDeclarationStatement aliases Utils.javaIntType (Utils.javaIdentifier "tagCmp") tagCompareExpr+ tagReturnStmt =+ Syntax.BlockStatementStatement (Syntax.StatementIfThen (Syntax.IfThenStatement {+ Syntax.ifThenStatementExpression = tagCmpNotZeroExpr,+ Syntax.ifThenStatementStatement = (Utils.javaReturnStatement (Just (Utils.javaExpressionNameToJavaExpression (Syntax.ExpressionName {+ Syntax.expressionNameQualifier = Nothing,+ Syntax.expressionNameIdentifier = (Utils.javaIdentifier "tagCmp")}))))}))+ variantJavaType = Utils.javaTypeFromTypeName aliases variantName+ castOtherExpr =+ Utils.javaCastExpressionToJavaExpression (Utils.javaCastExpression (Utils.nameToJavaReferenceType aliases False [] variantName Nothing) (Utils.javaIdentifierToJavaUnaryExpression (Syntax.Identifier JavaNames.otherInstanceName)))+ castDeclStmt = Utils.variableDeclarationStatement aliases variantJavaType (Utils.javaIdentifier varTmpName) castOtherExpr+ emptyReturn = [+ Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just (Utils.javaIntExpression 0)))]+ valueCompareStmt =+ Logic.ifElse (Lists.isEmpty fields) emptyReturn (Lists.concat2 [+ castDeclStmt] (compareToBody aliases varTmpName fields))+ body =+ Lists.concat2 [+ tagDeclStmt,+ tagReturnStmt] valueCompareStmt+ in [+ Utils.methodDeclaration mods [] anns JavaNames.compareToMethodName [+ param] result (Just body),+ (hydraOrdinalMethod (Just ordinal))]++visitBranch :: JavaEnvironment.JavaEnvironment -> JavaEnvironment.Aliases -> Model.Type -> Model.Name -> Syntax.Type -> [Syntax.TypeArgument] -> Model.CaseAlternative -> Typing.InferenceContext -> Graph.Graph -> Either Errors.Error Syntax.ClassBodyDeclarationWithComments+visitBranch env aliases dom tname jcod targs field cx g =++ let jdom =+ Syntax.TypeReference (Utils.nameToJavaReferenceType aliases True targs tname (Just (Formatting.capitalize (Model.unName (Model.caseAlternativeName field)))))+ mods = [+ Syntax.MethodModifierPublic]+ anns = [+ Utils.overrideAnnotation]+ result = Syntax.ResultType (Syntax.UnannType jcod)+ in case (Strip.deannotateTerm (Model.caseAlternativeHandler field)) of+ Model.TermLambda v0 -> withLambda env v0 (\env2 ->+ let lambdaParam = Model.lambdaParameter v0+ body = Model.lambdaBody v0+ env3 = insertBranchVar lambdaParam env2+ in (Eithers.bind (analyzeJavaFunction env3 body cx g) (\fs ->+ let bindings = Typing.functionStructureBindings fs+ innerBody = Typing.functionStructureBody fs+ env4 = Typing.functionStructureEnvironment fs+ in (Eithers.bind (bindingsToStatements env4 bindings cx g) (\bindResult ->+ let bindingStmts = Pairs.first bindResult+ env5 = Pairs.second bindResult+ in (Eithers.bind (encodeTerm env5 innerBody cx g) (\jret ->+ let param = Utils.javaTypeToJavaFormalParameter jdom lambdaParam+ returnStmt = Syntax.BlockStatementStatement (Utils.javaReturnStatement (Just jret))+ allStmts = Lists.concat2 bindingStmts [+ returnStmt]+ in (Right (noComment (Utils.methodDeclaration mods [] anns JavaNames.visitMethodName [+ param] result (Just allStmts)))))))))))+ _ -> Left (Errors.ErrorOther (Errors.OtherError (Strings.concat2 "visitBranch: field term is not a lambda: " (PrintModel.term (Model.caseAlternativeHandler field)))))++withCommentString :: String -> Syntax.ClassBodyDeclaration -> Syntax.ClassBodyDeclarationWithComments+withCommentString comment decl =+ Syntax.ClassBodyDeclarationWithComments {+ Syntax.classBodyDeclarationWithCommentsValue = decl,+ Syntax.classBodyDeclarationWithCommentsComments = (Just comment)}++withInterfaceCommentString :: String -> Syntax.InterfaceMemberDeclaration -> Syntax.InterfaceMemberDeclarationWithComments+withInterfaceCommentString comment decl =+ Syntax.InterfaceMemberDeclarationWithComments {+ Syntax.interfaceMemberDeclarationWithCommentsValue = decl,+ Syntax.interfaceMemberDeclarationWithCommentsComments = (Just comment)}++withLambda :: JavaEnvironment.JavaEnvironment -> Model.Lambda -> (JavaEnvironment.JavaEnvironment -> t0) -> t0+withLambda env lam k =+ CoreEnvironment.withLambdaContext javaEnvGetGraph javaEnvSetGraph env lam (\env1 ->+ let aliases = JavaEnvironment.javaEnvironmentAliases env1+ aliases2 =+ JavaEnvironment.Aliases {+ JavaEnvironment.aliasesCurrentNamespace = (JavaEnvironment.aliasesCurrentNamespace aliases),+ JavaEnvironment.aliasesPackages = (JavaEnvironment.aliasesPackages aliases),+ JavaEnvironment.aliasesBranchVars = (JavaEnvironment.aliasesBranchVars aliases),+ JavaEnvironment.aliasesRecursiveVars = (JavaEnvironment.aliasesRecursiveVars aliases),+ JavaEnvironment.aliasesInScopeTypeParams = (JavaEnvironment.aliasesInScopeTypeParams aliases),+ JavaEnvironment.aliasesPolymorphicLocals = (JavaEnvironment.aliasesPolymorphicLocals aliases),+ JavaEnvironment.aliasesInScopeJavaVars = (JavaEnvironment.aliasesInScopeJavaVars aliases),+ JavaEnvironment.aliasesVarRenames = (JavaEnvironment.aliasesVarRenames aliases),+ JavaEnvironment.aliasesLambdaVars = (Sets.insert (Model.lambdaParameter lam) (JavaEnvironment.aliasesLambdaVars aliases)),+ JavaEnvironment.aliasesTypeVarSubst = (JavaEnvironment.aliasesTypeVarSubst aliases),+ JavaEnvironment.aliasesTrustedTypeVars = (JavaEnvironment.aliasesTrustedTypeVars aliases),+ JavaEnvironment.aliasesMethodCodomain = (JavaEnvironment.aliasesMethodCodomain aliases),+ JavaEnvironment.aliasesThunkedVars = (JavaEnvironment.aliasesThunkedVars aliases)}+ env2 =+ JavaEnvironment.JavaEnvironment {+ JavaEnvironment.javaEnvironmentAliases = aliases2,+ JavaEnvironment.javaEnvironmentGraph = (JavaEnvironment.javaEnvironmentGraph env1)}+ in (k env2))++withTypeLambda :: JavaEnvironment.JavaEnvironment -> Model.TypeLambda -> (JavaEnvironment.JavaEnvironment -> t0) -> t0+withTypeLambda = CoreEnvironment.withTypeLambdaContext javaEnvGetGraph javaEnvSetGraph++wrapInSupplierLambda :: Syntax.Expression -> Syntax.Expression+wrapInSupplierLambda expr =+ Syntax.ExpressionLambda (Syntax.LambdaExpression {+ Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersTuple []),+ Syntax.lambdaExpressionBody = (Syntax.LambdaBodyExpression expr)})++wrapLazyArguments :: Graph.Graph -> Model.Name -> [Syntax.Expression] -> ([Syntax.Expression], (Maybe String))+wrapLazyArguments g name args =++ let lazyFlags = lazyFlagsForPrimitive g name+ anyLazy = Lists.foldl (\b -> \f -> Logic.or b f) False lazyFlags+ in (Logic.ifElse (Logic.and anyLazy (Equality.equal (Lists.length args) (Lists.length lazyFlags))) (+ Lists.map (\pair -> Logic.ifElse (Pairs.second pair) (wrapInSupplierLambda (Pairs.first pair)) (Pairs.first pair)) (Lists.zip args lazyFlags),+ (Just (Logic.ifElse (Equality.equal name (Model.Name "hydra.core.lib.logic.ifElse")) "lazy" "applyLazy"))) (args, Nothing))
+ src/main/haskell/Hydra/Java/Dsl/Environment.hs view
@@ -0,0 +1,1559 @@+-- Note: this is an automatically generated file. Do not edit.++-- | DSL functions for hydra.java.environment++module Hydra.Java.Dsl.Environment where++import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Java.Dsl.Syntax as DslSyntax+import qualified Hydra.Java.Environment as Environment+import qualified Hydra.Java.Syntax as Syntax+import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void+import qualified Data.Map as M+import qualified Data.Set as S++-- | DSL constructor for hydra.java.environment.Aliases+aliases :: Typed.TypedTerm Packaging.ModuleName -> Typed.TypedTerm (M.Map Packaging.ModuleName Syntax.PackageName) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm (M.Map Model.Name Model.Name) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm (M.Map Model.Name Model.Name) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm (Maybe Model.Type) -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliases currentNamespace packages branchVars recursiveVars inScopeTypeParams polymorphicLocals inScopeJavaVars varRenames lambdaVars typeVarSubst trustedTypeVars methodCodomain thunkedVars =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Typed.unTypedTerm currentNamespace)},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Typed.unTypedTerm packages)},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Typed.unTypedTerm branchVars)},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Typed.unTypedTerm recursiveVars)},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Typed.unTypedTerm inScopeTypeParams)},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Typed.unTypedTerm polymorphicLocals)},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Typed.unTypedTerm inScopeJavaVars)},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Typed.unTypedTerm varRenames)},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Typed.unTypedTerm lambdaVars)},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Typed.unTypedTerm typeVarSubst)},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Typed.unTypedTerm trustedTypeVars)},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Typed.unTypedTerm methodCodomain)},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Typed.unTypedTerm thunkedVars)}]}))++-- | DSL name token for hydra.java.environment.Aliases+aliasesAliases :: Typed.TypedName Environment.Aliases+aliasesAliases = Typed.TypedName (Model.Name "hydra.java.environment.Aliases")++-- | DSL accessor for the branchVars field of hydra.java.environment.Aliases+aliasesBranchVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesBranchVars x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the currentNamespace field of hydra.java.environment.Aliases+aliasesCurrentNamespace :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Packaging.ModuleName+aliasesCurrentNamespace x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the inScopeJavaVars field of hydra.java.environment.Aliases+aliasesInScopeJavaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesInScopeJavaVars x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the inScopeTypeParams field of hydra.java.environment.Aliases+aliasesInScopeTypeParams :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesInScopeTypeParams x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the lambdaVars field of hydra.java.environment.Aliases+aliasesLambdaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesLambdaVars x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the methodCodomain field of hydra.java.environment.Aliases+aliasesMethodCodomain :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (Maybe Model.Type)+aliasesMethodCodomain x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the packages field of hydra.java.environment.Aliases+aliasesPackages :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Packaging.ModuleName Syntax.PackageName)+aliasesPackages x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the polymorphicLocals field of hydra.java.environment.Aliases+aliasesPolymorphicLocals :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesPolymorphicLocals x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the recursiveVars field of hydra.java.environment.Aliases+aliasesRecursiveVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesRecursiveVars x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the thunkedVars field of hydra.java.environment.Aliases+aliasesThunkedVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesThunkedVars x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the trustedTypeVars field of hydra.java.environment.Aliases+aliasesTrustedTypeVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name)+aliasesTrustedTypeVars x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeVarSubst field of hydra.java.environment.Aliases+aliasesTypeVarSubst :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Model.Name Model.Name)+aliasesTypeVarSubst x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the varRenames field of hydra.java.environment.Aliases+aliasesVarRenames :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Model.Name Model.Name)+aliasesVarRenames x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the branchVars field of hydra.java.environment.Aliases+aliasesWithBranchVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithBranchVars original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the currentNamespace field of hydra.java.environment.Aliases+aliasesWithCurrentNamespace :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Packaging.ModuleName -> Typed.TypedTerm Environment.Aliases+aliasesWithCurrentNamespace original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the inScopeJavaVars field of hydra.java.environment.Aliases+aliasesWithInScopeJavaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithInScopeJavaVars original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the inScopeTypeParams field of hydra.java.environment.Aliases+aliasesWithInScopeTypeParams :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithInScopeTypeParams original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the lambdaVars field of hydra.java.environment.Aliases+aliasesWithLambdaVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithLambdaVars original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the methodCodomain field of hydra.java.environment.Aliases+aliasesWithMethodCodomain :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (Maybe Model.Type) -> Typed.TypedTerm Environment.Aliases+aliasesWithMethodCodomain original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the packages field of hydra.java.environment.Aliases+aliasesWithPackages :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Packaging.ModuleName Syntax.PackageName) -> Typed.TypedTerm Environment.Aliases+aliasesWithPackages original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the polymorphicLocals field of hydra.java.environment.Aliases+aliasesWithPolymorphicLocals :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithPolymorphicLocals original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the recursiveVars field of hydra.java.environment.Aliases+aliasesWithRecursiveVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithRecursiveVars original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the thunkedVars field of hydra.java.environment.Aliases+aliasesWithThunkedVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithThunkedVars original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the trustedTypeVars field of hydra.java.environment.Aliases+aliasesWithTrustedTypeVars :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (S.Set Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithTrustedTypeVars original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeVarSubst field of hydra.java.environment.Aliases+aliasesWithTypeVarSubst :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Model.Name Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithTypeVarSubst original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "varRenames")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the varRenames field of hydra.java.environment.Aliases+aliasesWithVarRenames :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm (M.Map Model.Name Model.Name) -> Typed.TypedTerm Environment.Aliases+aliasesWithVarRenames original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "currentNamespace"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "currentNamespace")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "packages"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "packages")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "branchVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "branchVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "recursiveVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "recursiveVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeTypeParams"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeTypeParams")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "polymorphicLocals"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "polymorphicLocals")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "inScopeJavaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "inScopeJavaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "varRenames"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "lambdaVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "lambdaVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeVarSubst"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "typeVarSubst")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trustedTypeVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "trustedTypeVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "methodCodomain"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "methodCodomain")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "thunkedVars"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.Aliases"),+ Model.projectionFieldName = (Model.Name "thunkedVars")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.environment.JavaEnvironment+javaEnvironment :: Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Graph.Graph -> Typed.TypedTerm Environment.JavaEnvironment+javaEnvironment aliases graph =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.JavaEnvironment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "aliases"),+ Model.fieldTerm = (Typed.unTypedTerm aliases)},+ Model.Field {+ Model.fieldName = (Model.Name "graph"),+ Model.fieldTerm = (Typed.unTypedTerm graph)}]}))++-- | DSL accessor for the aliases field of hydra.java.environment.JavaEnvironment+javaEnvironmentAliases :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Environment.Aliases+javaEnvironmentAliases x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.JavaEnvironment"),+ Model.projectionFieldName = (Model.Name "aliases")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the graph field of hydra.java.environment.JavaEnvironment+javaEnvironmentGraph :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Graph.Graph+javaEnvironmentGraph x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.JavaEnvironment"),+ Model.projectionFieldName = (Model.Name "graph")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.environment.JavaEnvironment+javaEnvironmentJavaEnvironment :: Typed.TypedName Environment.JavaEnvironment+javaEnvironmentJavaEnvironment = Typed.TypedName (Model.Name "hydra.java.environment.JavaEnvironment")++-- | DSL updater for the aliases field of hydra.java.environment.JavaEnvironment+javaEnvironmentWithAliases :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Environment.Aliases -> Typed.TypedTerm Environment.JavaEnvironment+javaEnvironmentWithAliases original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.JavaEnvironment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "aliases"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "graph"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.JavaEnvironment"),+ Model.projectionFieldName = (Model.Name "graph")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the graph field of hydra.java.environment.JavaEnvironment+javaEnvironmentWithGraph :: Typed.TypedTerm Environment.JavaEnvironment -> Typed.TypedTerm Graph.Graph -> Typed.TypedTerm Environment.JavaEnvironment+javaEnvironmentWithGraph original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.JavaEnvironment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "aliases"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.JavaEnvironment"),+ Model.projectionFieldName = (Model.Name "aliases")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "graph"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.environment.JavaFeatures+javaFeatures :: Typed.TypedTerm Bool -> Typed.TypedTerm Environment.JavaFeatures+javaFeatures supportsDiamondOperator =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.JavaFeatures"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "supportsDiamondOperator"),+ Model.fieldTerm = (Typed.unTypedTerm supportsDiamondOperator)}]}))++-- | DSL name token for hydra.java.environment.JavaFeatures+javaFeaturesJavaFeatures :: Typed.TypedName Environment.JavaFeatures+javaFeaturesJavaFeatures = Typed.TypedName (Model.Name "hydra.java.environment.JavaFeatures")++-- | DSL accessor for the supportsDiamondOperator field of hydra.java.environment.JavaFeatures+javaFeaturesSupportsDiamondOperator :: Typed.TypedTerm Environment.JavaFeatures -> Typed.TypedTerm Bool+javaFeaturesSupportsDiamondOperator x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.environment.JavaFeatures"),+ Model.projectionFieldName = (Model.Name "supportsDiamondOperator")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the supportsDiamondOperator field of hydra.java.environment.JavaFeatures+javaFeaturesWithSupportsDiamondOperator :: Typed.TypedTerm Environment.JavaFeatures -> Typed.TypedTerm Bool -> Typed.TypedTerm Environment.JavaFeatures+javaFeaturesWithSupportsDiamondOperator original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.environment.JavaFeatures"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "supportsDiamondOperator"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the constant variant of hydra.java.environment.JavaSymbolClass+javaSymbolClassConstant :: Typed.TypedTerm Environment.JavaSymbolClass+javaSymbolClassConstant =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.environment.JavaSymbolClass"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "constant"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the hoistedLambda variant of hydra.java.environment.JavaSymbolClass+javaSymbolClassHoistedLambda :: Typed.TypedTerm Int -> Typed.TypedTerm Environment.JavaSymbolClass+javaSymbolClassHoistedLambda x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.environment.JavaSymbolClass"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "hoistedLambda"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.environment.JavaSymbolClass+javaSymbolClassJavaSymbolClass :: Typed.TypedName Environment.JavaSymbolClass+javaSymbolClassJavaSymbolClass = Typed.TypedName (Model.Name "hydra.java.environment.JavaSymbolClass")++-- | DSL injection for the localVariable variant of hydra.java.environment.JavaSymbolClass+javaSymbolClassLocalVariable :: Typed.TypedTerm Environment.JavaSymbolClass+javaSymbolClassLocalVariable =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.environment.JavaSymbolClass"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "localVariable"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the nullaryFunction variant of hydra.java.environment.JavaSymbolClass+javaSymbolClassNullaryFunction :: Typed.TypedTerm Environment.JavaSymbolClass+javaSymbolClassNullaryFunction =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.environment.JavaSymbolClass"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "nullaryFunction"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the unaryFunction variant of hydra.java.environment.JavaSymbolClass+javaSymbolClassUnaryFunction :: Typed.TypedTerm Environment.JavaSymbolClass+javaSymbolClassUnaryFunction =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.environment.JavaSymbolClass"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "unaryFunction"),+ Model.fieldTerm = Model.TermUnit}}))
+ src/main/haskell/Hydra/Java/Dsl/Language.hs view
@@ -0,0 +1,47 @@+-- Note: this is an automatically generated file. Do not edit.++-- | DSL functions for hydra.java.language++module Hydra.Java.Dsl.Language where++import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Classes as Classes+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Lexical as Lexical+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants+import qualified Hydra.Java.Language as Language+import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void+import qualified Data.Set as S++-- | DSL reference to hydra.java.language.javaLanguage+javaLanguage :: Typed.TypedTerm Coders.Language+javaLanguage = Typed.TypedTerm (Model.TermVariable (Model.Name "hydra.java.language.javaLanguage"))++-- | DSL reference to hydra.java.language.javaMaxTupleLength+javaMaxTupleLength :: Typed.TypedTerm Int+javaMaxTupleLength = Typed.TypedTerm (Model.TermVariable (Model.Name "hydra.java.language.javaMaxTupleLength"))++-- | DSL reference to hydra.java.language.reservedWords+reservedWords :: Typed.TypedTerm (S.Set String)+reservedWords = Typed.TypedTerm (Model.TermVariable (Model.Name "hydra.java.language.reservedWords"))
+ src/main/haskell/Hydra/Java/Dsl/Syntax.hs view
@@ -0,0 +1,16885 @@+-- Note: this is an automatically generated file. Do not edit.++-- | DSL functions for hydra.java.syntax++module Hydra.Java.Dsl.Syntax where++import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Java.Syntax as Syntax+import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void++-- | DSL constructor for the hydra.java.syntax.AdditionalBound wrapper+additionalBound :: Typed.TypedTerm Syntax.InterfaceType -> Typed.TypedTerm Syntax.AdditionalBound+additionalBound x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.AdditionalBound"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.AdditionalBound+additionalBoundAdditionalBound :: Typed.TypedName Syntax.AdditionalBound+additionalBoundAdditionalBound = Typed.TypedName (Model.Name "hydra.java.syntax.AdditionalBound")++-- | DSL name token for hydra.java.syntax.AdditiveExpression+additiveExpressionAdditiveExpression :: Typed.TypedName Syntax.AdditiveExpression+additiveExpressionAdditiveExpression = Typed.TypedName (Model.Name "hydra.java.syntax.AdditiveExpression")++-- | DSL injection for the minus variant of hydra.java.syntax.AdditiveExpression+additiveExpressionMinus :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression+additiveExpressionMinus x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "minus"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the plus variant of hydra.java.syntax.AdditiveExpression+additiveExpressionPlus :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression+additiveExpressionPlus x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "plus"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the unary variant of hydra.java.syntax.AdditiveExpression+additiveExpressionUnary :: Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.AdditiveExpression+additiveExpressionUnary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "unary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.AdditiveExpression_Binary+additiveExpression_Binary :: Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.AdditiveExpression_Binary+additiveExpression_Binary lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL name token for hydra.java.syntax.AdditiveExpression_Binary+additiveExpression_BinaryAdditiveExpression_Binary :: Typed.TypedName Syntax.AdditiveExpression_Binary+additiveExpression_BinaryAdditiveExpression_Binary =+ Typed.TypedName (Model.Name "hydra.java.syntax.AdditiveExpression_Binary")++-- | DSL accessor for the lhs field of hydra.java.syntax.AdditiveExpression_Binary+additiveExpression_BinaryLhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression+additiveExpression_BinaryLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.java.syntax.AdditiveExpression_Binary+additiveExpression_BinaryRhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression+additiveExpression_BinaryRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.AdditiveExpression_Binary+additiveExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.AdditiveExpression_Binary+additiveExpression_BinaryWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.AdditiveExpression_Binary+additiveExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.AdditiveExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.AdditiveExpression_Binary+additiveExpression_BinaryWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AdditiveExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.java.syntax.AmbiguousName wrapper+ambiguousName :: Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.AmbiguousName+ambiguousName x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.AmbiguousName"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.AmbiguousName+ambiguousNameAmbiguousName :: Typed.TypedName Syntax.AmbiguousName+ambiguousNameAmbiguousName = Typed.TypedName (Model.Name "hydra.java.syntax.AmbiguousName")++-- | DSL constructor for the hydra.java.syntax.AndExpression wrapper+andExpression :: Typed.TypedTerm [Syntax.EqualityExpression] -> Typed.TypedTerm Syntax.AndExpression+andExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.AndExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.AndExpression+andExpressionAndExpression :: Typed.TypedName Syntax.AndExpression+andExpressionAndExpression = Typed.TypedName (Model.Name "hydra.java.syntax.AndExpression")++-- | DSL constructor for hydra.java.syntax.AnnotatedIdentifier+annotatedIdentifier :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.AnnotatedIdentifier+annotatedIdentifier annotations identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotatedIdentifier"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL name token for hydra.java.syntax.AnnotatedIdentifier+annotatedIdentifierAnnotatedIdentifier :: Typed.TypedName Syntax.AnnotatedIdentifier+annotatedIdentifierAnnotatedIdentifier = Typed.TypedName (Model.Name "hydra.java.syntax.AnnotatedIdentifier")++-- | DSL accessor for the annotations field of hydra.java.syntax.AnnotatedIdentifier+annotatedIdentifierAnnotations :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm [Syntax.Annotation]+annotatedIdentifierAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotatedIdentifier"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.AnnotatedIdentifier+annotatedIdentifierIdentifier :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm Syntax.Identifier+annotatedIdentifierIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotatedIdentifier"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annotations field of hydra.java.syntax.AnnotatedIdentifier+annotatedIdentifierWithAnnotations :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.AnnotatedIdentifier+annotatedIdentifierWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotatedIdentifier"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotatedIdentifier"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.AnnotatedIdentifier+annotatedIdentifierWithIdentifier :: Typed.TypedTerm Syntax.AnnotatedIdentifier -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.AnnotatedIdentifier+annotatedIdentifierWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotatedIdentifier"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotatedIdentifier"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.Annotation+annotationAnnotation :: Typed.TypedName Syntax.Annotation+annotationAnnotation = Typed.TypedName (Model.Name "hydra.java.syntax.Annotation")++-- | DSL constructor for the hydra.java.syntax.AnnotationInterfaceBody wrapper+annotationInterfaceBody :: Typed.TypedTerm [Syntax.AnnotationInterfaceMemberDeclaration] -> Typed.TypedTerm Syntax.AnnotationInterfaceBody+annotationInterfaceBody x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceBody"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.AnnotationInterfaceBody+annotationInterfaceBodyAnnotationInterfaceBody :: Typed.TypedName Syntax.AnnotationInterfaceBody+annotationInterfaceBodyAnnotationInterfaceBody = Typed.TypedName (Model.Name "hydra.java.syntax.AnnotationInterfaceBody")++-- | DSL constructor for hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclaration :: Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.AnnotationInterfaceBody -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclaration modifiers identifier body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL name token for hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationAnnotationInterfaceDeclaration :: Typed.TypedName Syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationAnnotationInterfaceDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration")++-- | DSL accessor for the body field of hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationBody :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceBody+annotationInterfaceDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier+annotationInterfaceDeclarationIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier]+annotationInterfaceDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationWithBody :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceBody -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationWithIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationWithModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration+annotationInterfaceDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclaration :: Typed.TypedTerm [Syntax.AnnotationInterfaceElementModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm (Maybe Syntax.DefaultValue) -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclaration modifiers type_ identifier dims default_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm dims)},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Typed.unTypedTerm default_)}]}))++-- | DSL name token for hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationAnnotationInterfaceElementDeclaration :: Typed.TypedName Syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationAnnotationInterfaceElementDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration")++-- | DSL accessor for the default field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationDefault :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.DefaultValue)+annotationInterfaceElementDeclarationDefault x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the dims field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationDims :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.Dims)+annotationInterfaceElementDeclarationDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.Identifier+annotationInterfaceElementDeclarationIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm [Syntax.AnnotationInterfaceElementModifier]+annotationInterfaceElementDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationType :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.UnannType+annotationInterfaceElementDeclarationType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the default field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithDefault :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.DefaultValue) -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithDefault original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the dims field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithDims :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithDims original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithIdentifier :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithModifiers :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm [Syntax.AnnotationInterfaceElementModifier] -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithType :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration+annotationInterfaceElementDeclarationWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"),+ Model.projectionFieldName = (Model.Name "default")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the abstract variant of hydra.java.syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierAbstract :: Typed.TypedTerm Syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierAbstract =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "abstract"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the annotation variant of hydra.java.syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierAnnotationInterfaceElementModifier :: Typed.TypedName Syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierAnnotationInterfaceElementModifier =+ Typed.TypedName (Model.Name "hydra.java.syntax.AnnotationInterfaceElementModifier")++-- | DSL injection for the public variant of hydra.java.syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierPublic :: Typed.TypedTerm Syntax.AnnotationInterfaceElementModifier+annotationInterfaceElementModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the annotationInterface variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationAnnotationInterface :: Typed.TypedTerm Syntax.AnnotationInterfaceElementDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationAnnotationInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotationInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationAnnotationInterfaceMemberDeclaration :: Typed.TypedName Syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationAnnotationInterfaceMemberDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration")++-- | DSL injection for the class variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationClass x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "class"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the constant variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationConstant :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationConstant x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "constant"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the interface variant of hydra.java.syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.AnnotationInterfaceMemberDeclaration+annotationInterfaceMemberDeclarationInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "interface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the marker variant of hydra.java.syntax.Annotation+annotationMarker :: Typed.TypedTerm Syntax.MarkerAnnotation -> Typed.TypedTerm Syntax.Annotation+annotationMarker x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Annotation"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "marker"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the normal variant of hydra.java.syntax.Annotation+annotationNormal :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm Syntax.Annotation+annotationNormal x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Annotation"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "normal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the singleElement variant of hydra.java.syntax.Annotation+annotationSingleElement :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm Syntax.Annotation+annotationSingleElement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Annotation"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "singleElement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ArrayAccess+arrayAccess :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ArrayAccess_Variant -> Typed.TypedTerm Syntax.ArrayAccess+arrayAccess expression variant =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm variant)}]}))++-- | DSL name token for hydra.java.syntax.ArrayAccess+arrayAccessArrayAccess :: Typed.TypedName Syntax.ArrayAccess+arrayAccessArrayAccess = Typed.TypedName (Model.Name "hydra.java.syntax.ArrayAccess")++-- | DSL accessor for the expression field of hydra.java.syntax.ArrayAccess+arrayAccessExpression :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm (Maybe Syntax.Expression)+arrayAccessExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayAccess"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the variant field of hydra.java.syntax.ArrayAccess+arrayAccessVariant :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.ArrayAccess_Variant+arrayAccessVariant x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayAccess"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expression field of hydra.java.syntax.ArrayAccess+arrayAccessWithExpression :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ArrayAccess+arrayAccessWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayAccess"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the variant field of hydra.java.syntax.ArrayAccess+arrayAccessWithVariant :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.ArrayAccess_Variant -> Typed.TypedTerm Syntax.ArrayAccess+arrayAccessWithVariant original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayAccess"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.ArrayAccess_Variant+arrayAccess_VariantArrayAccess_Variant :: Typed.TypedName Syntax.ArrayAccess_Variant+arrayAccess_VariantArrayAccess_Variant = Typed.TypedName (Model.Name "hydra.java.syntax.ArrayAccess_Variant")++-- | DSL injection for the arrayCreationWithInitializer variant of hydra.java.syntax.ArrayAccess_Variant+arrayAccess_VariantArrayCreationWithInitializer :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer -> Typed.TypedTerm Syntax.ArrayAccess_Variant+arrayAccess_VariantArrayCreationWithInitializer x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayAccess_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "arrayCreationWithInitializer"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the name variant of hydra.java.syntax.ArrayAccess_Variant+arrayAccess_VariantName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.ArrayAccess_Variant+arrayAccess_VariantName x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayAccess_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the primary variant of hydra.java.syntax.ArrayAccess_Variant+arrayAccess_VariantPrimary :: Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression -> Typed.TypedTerm Syntax.ArrayAccess_Variant+arrayAccess_VariantPrimary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayAccess_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ArrayCreationExpression+arrayCreationExpressionArrayCreationExpression :: Typed.TypedName Syntax.ArrayCreationExpression+arrayCreationExpressionArrayCreationExpression = Typed.TypedName (Model.Name "hydra.java.syntax.ArrayCreationExpression")++-- | DSL injection for the noInit variant of hydra.java.syntax.ArrayCreationExpression+arrayCreationExpressionNoInit :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpression+arrayCreationExpressionNoInit x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "noInit"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the withInit variant of hydra.java.syntax.ArrayCreationExpression+arrayCreationExpressionWithInit :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpression+arrayCreationExpressionWithInit x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "withInit"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithInitializer+arrayCreationExpressionWithInitializerArrayCreationExpressionWithInitializer :: Typed.TypedName Syntax.ArrayCreationExpressionWithInitializer+arrayCreationExpressionWithInitializerArrayCreationExpressionWithInitializer =+ Typed.TypedName (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer")++-- | DSL injection for the classOrInterface variant of hydra.java.syntax.ArrayCreationExpressionWithInitializer+arrayCreationExpressionWithInitializerClassOrInterface :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer+arrayCreationExpressionWithInitializerClassOrInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the primitive variant of hydra.java.syntax.ArrayCreationExpressionWithInitializer+arrayCreationExpressionWithInitializerPrimitive :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer+arrayCreationExpressionWithInitializerPrimitive x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primitive"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterface type_ dims array =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm dims)},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm array)}]}))++-- | DSL accessor for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayInitializer+arrayCreationExpressionWithInitializer_ClassOrInterfaceArray x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "array")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceArrayCreationExpressionWithInitializer_ClassOrInterface :: Typed.TypedName Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceArrayCreationExpressionWithInitializer_ClassOrInterface =+ Typed.TypedName (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface")++-- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.Dims]+arrayCreationExpressionWithInitializer_ClassOrInterfaceDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType+arrayCreationExpressionWithInitializer_ClassOrInterfaceType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceWithArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceWithArray original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceWithDims original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "array")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface+arrayCreationExpressionWithInitializer_ClassOrInterfaceWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "array")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_Primitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_Primitive type_ dims array =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm dims)},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm array)}]}))++-- | DSL accessor for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayInitializer+arrayCreationExpressionWithInitializer_PrimitiveArray x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "array")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveArrayCreationExpressionWithInitializer_Primitive :: Typed.TypedName Syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveArrayCreationExpressionWithInitializer_Primitive =+ Typed.TypedName (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive")++-- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm [Syntax.Dims]+arrayCreationExpressionWithInitializer_PrimitiveDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations+arrayCreationExpressionWithInitializer_PrimitiveType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the array field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveWithArray :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveWithArray original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm [Syntax.Dims] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveWithDims original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "array")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer_Primitive+arrayCreationExpressionWithInitializer_PrimitiveWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "array")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer+arrayCreationExpressionWithoutInitializerArrayCreationExpressionWithoutInitializer :: Typed.TypedName Syntax.ArrayCreationExpressionWithoutInitializer+arrayCreationExpressionWithoutInitializerArrayCreationExpressionWithoutInitializer =+ Typed.TypedName (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer")++-- | DSL injection for the classOrInterface variant of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer+arrayCreationExpressionWithoutInitializerClassOrInterface :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer+arrayCreationExpressionWithoutInitializerClassOrInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the primitive variant of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer+arrayCreationExpressionWithoutInitializerPrimitive :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer+arrayCreationExpressionWithoutInitializerPrimitive x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primitive"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterface type_ dimExprs dims =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Typed.unTypedTerm dimExprs)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm dims)}]}))++-- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceArrayCreationExpressionWithoutInitializer_ClassOrInterface :: Typed.TypedName Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceArrayCreationExpressionWithoutInitializer_ClassOrInterface =+ Typed.TypedName (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface")++-- | DSL accessor for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.DimExpr]+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dimExprs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm (Maybe Syntax.Dims)+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDimExprs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithDims original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dimExprs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface+arrayCreationExpressionWithoutInitializer_ClassOrInterfaceWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dimExprs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_Primitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_Primitive type_ dimExprs dims =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Typed.unTypedTerm dimExprs)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm dims)}]}))++-- | DSL name token for hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveArrayCreationExpressionWithoutInitializer_Primitive :: Typed.TypedName Syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveArrayCreationExpressionWithoutInitializer_Primitive =+ Typed.TypedName (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive")++-- | DSL accessor for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm [Syntax.DimExpr]+arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dimExprs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm (Maybe Syntax.Dims)+arrayCreationExpressionWithoutInitializer_PrimitiveDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations+arrayCreationExpressionWithoutInitializer_PrimitiveType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the dimExprs field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveWithDimExprs :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm [Syntax.DimExpr] -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveWithDimExprs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the dims field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveWithDims :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveWithDims original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dimExprs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveWithType :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer_Primitive+arrayCreationExpressionWithoutInitializer_PrimitiveWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dimExprs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dimExprs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.ArrayInitializer wrapper+arrayInitializer :: Typed.TypedTerm [[Syntax.VariableInitializer]] -> Typed.TypedTerm Syntax.ArrayInitializer+arrayInitializer x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ArrayInitializer"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ArrayInitializer+arrayInitializerArrayInitializer :: Typed.TypedName Syntax.ArrayInitializer+arrayInitializerArrayInitializer = Typed.TypedName (Model.Name "hydra.java.syntax.ArrayInitializer")++-- | DSL constructor for hydra.java.syntax.ArrayType+arrayType :: Typed.TypedTerm Syntax.Dims -> Typed.TypedTerm Syntax.ArrayType_Variant -> Typed.TypedTerm Syntax.ArrayType+arrayType dims variant =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm dims)},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm variant)}]}))++-- | DSL name token for hydra.java.syntax.ArrayType+arrayTypeArrayType :: Typed.TypedName Syntax.ArrayType+arrayTypeArrayType = Typed.TypedName (Model.Name "hydra.java.syntax.ArrayType")++-- | DSL accessor for the dims field of hydra.java.syntax.ArrayType+arrayTypeDims :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.Dims+arrayTypeDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayType"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the variant field of hydra.java.syntax.ArrayType+arrayTypeVariant :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.ArrayType_Variant+arrayTypeVariant x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayType"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the dims field of hydra.java.syntax.ArrayType+arrayTypeWithDims :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.Dims -> Typed.TypedTerm Syntax.ArrayType+arrayTypeWithDims original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayType"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the variant field of hydra.java.syntax.ArrayType+arrayTypeWithVariant :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.ArrayType_Variant -> Typed.TypedTerm Syntax.ArrayType+arrayTypeWithVariant original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ArrayType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ArrayType"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.ArrayType_Variant+arrayType_VariantArrayType_Variant :: Typed.TypedName Syntax.ArrayType_Variant+arrayType_VariantArrayType_Variant = Typed.TypedName (Model.Name "hydra.java.syntax.ArrayType_Variant")++-- | DSL injection for the classOrInterface variant of hydra.java.syntax.ArrayType_Variant+arrayType_VariantClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ArrayType_Variant+arrayType_VariantClassOrInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayType_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the primitive variant of hydra.java.syntax.ArrayType_Variant+arrayType_VariantPrimitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.ArrayType_Variant+arrayType_VariantPrimitive x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayType_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primitive"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the variable variant of hydra.java.syntax.ArrayType_Variant+arrayType_VariantVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.ArrayType_Variant+arrayType_VariantVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ArrayType_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.AssertStatement+assertStatementAssertStatement :: Typed.TypedName Syntax.AssertStatement+assertStatementAssertStatement = Typed.TypedName (Model.Name "hydra.java.syntax.AssertStatement")++-- | DSL injection for the pair variant of hydra.java.syntax.AssertStatement+assertStatementPair :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.AssertStatement+assertStatementPair x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssertStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "pair"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the single variant of hydra.java.syntax.AssertStatement+assertStatementSingle :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement+assertStatementSingle x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssertStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "single"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.AssertStatement_Pair+assertStatement_Pair :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement_Pair+assertStatement_Pair first second =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AssertStatement_Pair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "first"),+ Model.fieldTerm = (Typed.unTypedTerm first)},+ Model.Field {+ Model.fieldName = (Model.Name "second"),+ Model.fieldTerm = (Typed.unTypedTerm second)}]}))++-- | DSL name token for hydra.java.syntax.AssertStatement_Pair+assertStatement_PairAssertStatement_Pair :: Typed.TypedName Syntax.AssertStatement_Pair+assertStatement_PairAssertStatement_Pair = Typed.TypedName (Model.Name "hydra.java.syntax.AssertStatement_Pair")++-- | DSL accessor for the first field of hydra.java.syntax.AssertStatement_Pair+assertStatement_PairFirst :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression+assertStatement_PairFirst x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AssertStatement_Pair"),+ Model.projectionFieldName = (Model.Name "first")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the second field of hydra.java.syntax.AssertStatement_Pair+assertStatement_PairSecond :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression+assertStatement_PairSecond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AssertStatement_Pair"),+ Model.projectionFieldName = (Model.Name "second")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the first field of hydra.java.syntax.AssertStatement_Pair+assertStatement_PairWithFirst :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement_Pair+assertStatement_PairWithFirst original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AssertStatement_Pair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "first"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "second"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AssertStatement_Pair"),+ Model.projectionFieldName = (Model.Name "second")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the second field of hydra.java.syntax.AssertStatement_Pair+assertStatement_PairWithSecond :: Typed.TypedTerm Syntax.AssertStatement_Pair -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.AssertStatement_Pair+assertStatement_PairWithSecond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.AssertStatement_Pair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "first"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.AssertStatement_Pair"),+ Model.projectionFieldName = (Model.Name "first")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "second"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.Assignment+assignment :: Typed.TypedTerm Syntax.LeftHandSide -> Typed.TypedTerm Syntax.AssignmentOperator -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Assignment+assignment lhs op expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "op"),+ Model.fieldTerm = (Typed.unTypedTerm op)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL name token for hydra.java.syntax.Assignment+assignmentAssignment :: Typed.TypedName Syntax.Assignment+assignmentAssignment = Typed.TypedName (Model.Name "hydra.java.syntax.Assignment")++-- | DSL accessor for the expression field of hydra.java.syntax.Assignment+assignmentExpression :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.Expression+assignmentExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL injection for the assignment variant of hydra.java.syntax.AssignmentExpression+assignmentExpressionAssignment :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.AssignmentExpression+assignmentExpressionAssignment x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "assignment"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.AssignmentExpression+assignmentExpressionAssignmentExpression :: Typed.TypedName Syntax.AssignmentExpression+assignmentExpressionAssignmentExpression = Typed.TypedName (Model.Name "hydra.java.syntax.AssignmentExpression")++-- | DSL injection for the conditional variant of hydra.java.syntax.AssignmentExpression+assignmentExpressionConditional :: Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.AssignmentExpression+assignmentExpressionConditional x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "conditional"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL accessor for the lhs field of hydra.java.syntax.Assignment+assignmentLhs :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.LeftHandSide+assignmentLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the op field of hydra.java.syntax.Assignment+assignmentOp :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.AssignmentOperator+assignmentOp x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "op")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL injection for the and variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorAnd :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorAnd =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "and"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.AssignmentOperator+assignmentOperatorAssignmentOperator :: Typed.TypedName Syntax.AssignmentOperator+assignmentOperatorAssignmentOperator = Typed.TypedName (Model.Name "hydra.java.syntax.AssignmentOperator")++-- | DSL injection for the div variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorDiv :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorDiv =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "div"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the minus variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorMinus :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorMinus =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "minus"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the mod variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorMod :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorMod =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "mod"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the or variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorOr :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorOr =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "or"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the plus variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorPlus :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorPlus =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "plus"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the shiftLeft variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorShiftLeft :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorShiftLeft =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "shiftLeft"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the shiftRight variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorShiftRight :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorShiftRight =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "shiftRight"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the shiftRightZeroFill variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorShiftRightZeroFill :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorShiftRightZeroFill =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "shiftRightZeroFill"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the simple variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorSimple :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorSimple =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the times variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorTimes :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorTimes =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "times"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the xor variant of hydra.java.syntax.AssignmentOperator+assignmentOperatorXor :: Typed.TypedTerm Syntax.AssignmentOperator+assignmentOperatorXor =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.AssignmentOperator"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "xor"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL updater for the expression field of hydra.java.syntax.Assignment+assignmentWithExpression :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Assignment+assignmentWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "op"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "op")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the lhs field of hydra.java.syntax.Assignment+assignmentWithLhs :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.LeftHandSide -> Typed.TypedTerm Syntax.Assignment+assignmentWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "op"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "op")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the op field of hydra.java.syntax.Assignment+assignmentWithOp :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.AssignmentOperator -> Typed.TypedTerm Syntax.Assignment+assignmentWithOp original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "op"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Assignment"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.BasicForStatement+basicForStatement :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.BasicForStatement+basicForStatement cond body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.BasicForStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL name token for hydra.java.syntax.BasicForStatement+basicForStatementBasicForStatement :: Typed.TypedName Syntax.BasicForStatement+basicForStatementBasicForStatement = Typed.TypedName (Model.Name "hydra.java.syntax.BasicForStatement")++-- | DSL accessor for the body field of hydra.java.syntax.BasicForStatement+basicForStatementBody :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.Statement+basicForStatementBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.BasicForStatement+basicForStatementCond :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.ForCond+basicForStatementCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.java.syntax.BasicForStatementNoShortIf+basicForStatementNoShortIf :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.BasicForStatementNoShortIf+basicForStatementNoShortIf cond body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL name token for hydra.java.syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfBasicForStatementNoShortIf :: Typed.TypedName Syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfBasicForStatementNoShortIf =+ Typed.TypedName (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf")++-- | DSL accessor for the body field of hydra.java.syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfBody :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+basicForStatementNoShortIfBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfCond :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.ForCond+basicForStatementNoShortIfCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfWithBody :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.BasicForStatementNoShortIf+basicForStatementNoShortIfWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the body field of hydra.java.syntax.BasicForStatement+basicForStatementWithBody :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.BasicForStatement+basicForStatementWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.BasicForStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.BasicForStatement+basicForStatementWithCond :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm Syntax.BasicForStatement+basicForStatementWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.BasicForStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.BasicForStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.Block wrapper+block :: Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.Block+block x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.Block"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Block+blockBlock :: Typed.TypedName Syntax.Block+blockBlock = Typed.TypedName (Model.Name "hydra.java.syntax.Block")++-- | DSL name token for hydra.java.syntax.BlockStatement+blockStatementBlockStatement :: Typed.TypedName Syntax.BlockStatement+blockStatementBlockStatement = Typed.TypedName (Model.Name "hydra.java.syntax.BlockStatement")++-- | DSL injection for the localClassOrInterface variant of hydra.java.syntax.BlockStatement+blockStatementLocalClassOrInterface :: Typed.TypedTerm Syntax.LocalClassOrInterfaceDeclaration -> Typed.TypedTerm Syntax.BlockStatement+blockStatementLocalClassOrInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.BlockStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "localClassOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the localVariableDeclaration variant of hydra.java.syntax.BlockStatement+blockStatementLocalVariableDeclaration :: Typed.TypedTerm Syntax.LocalVariableDeclarationStatement -> Typed.TypedTerm Syntax.BlockStatement+blockStatementLocalVariableDeclaration x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.BlockStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "localVariableDeclaration"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the statement variant of hydra.java.syntax.BlockStatement+blockStatementStatement :: Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.BlockStatement+blockStatementStatement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.BlockStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the array variant of hydra.java.syntax.BooleanArray+booleanArrayArray :: Typed.TypedTerm Syntax.BooleanArray -> Typed.TypedTerm Syntax.BooleanArray+booleanArrayArray x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.BooleanArray"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.BooleanArray+booleanArrayBooleanArray :: Typed.TypedName Syntax.BooleanArray+booleanArrayBooleanArray = Typed.TypedName (Model.Name "hydra.java.syntax.BooleanArray")++-- | DSL injection for the simple variant of hydra.java.syntax.BooleanArray+booleanArraySimple :: Typed.TypedTerm Syntax.BooleanArray+booleanArraySimple =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.BooleanArray"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.BreakStatement wrapper+breakStatement :: Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.BreakStatement+breakStatement x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.BreakStatement"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.BreakStatement+breakStatementBreakStatement :: Typed.TypedName Syntax.BreakStatement+breakStatementBreakStatement = Typed.TypedName (Model.Name "hydra.java.syntax.BreakStatement")++-- | DSL constructor for the hydra.java.syntax.CaseConstant wrapper+caseConstant :: Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.CaseConstant+caseConstant x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.CaseConstant"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.CaseConstant+caseConstantCaseConstant :: Typed.TypedName Syntax.CaseConstant+caseConstantCaseConstant = Typed.TypedName (Model.Name "hydra.java.syntax.CaseConstant")++-- | DSL constructor for hydra.java.syntax.CasePattern+casePattern :: Typed.TypedTerm Syntax.Pattern -> Typed.TypedTerm (Maybe Syntax.Guard) -> Typed.TypedTerm Syntax.CasePattern+casePattern pattern guard =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CasePattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "pattern"),+ Model.fieldTerm = (Typed.unTypedTerm pattern)},+ Model.Field {+ Model.fieldName = (Model.Name "guard"),+ Model.fieldTerm = (Typed.unTypedTerm guard)}]}))++-- | DSL name token for hydra.java.syntax.CasePattern+casePatternCasePattern :: Typed.TypedName Syntax.CasePattern+casePatternCasePattern = Typed.TypedName (Model.Name "hydra.java.syntax.CasePattern")++-- | DSL accessor for the guard field of hydra.java.syntax.CasePattern+casePatternGuard :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm (Maybe Syntax.Guard)+casePatternGuard x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CasePattern"),+ Model.projectionFieldName = (Model.Name "guard")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the pattern field of hydra.java.syntax.CasePattern+casePatternPattern :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm Syntax.Pattern+casePatternPattern x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CasePattern"),+ Model.projectionFieldName = (Model.Name "pattern")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the guard field of hydra.java.syntax.CasePattern+casePatternWithGuard :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm (Maybe Syntax.Guard) -> Typed.TypedTerm Syntax.CasePattern+casePatternWithGuard original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CasePattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "pattern"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CasePattern"),+ Model.projectionFieldName = (Model.Name "pattern")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "guard"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the pattern field of hydra.java.syntax.CasePattern+casePatternWithPattern :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm Syntax.Pattern -> Typed.TypedTerm Syntax.CasePattern+casePatternWithPattern original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CasePattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "pattern"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "guard"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CasePattern"),+ Model.projectionFieldName = (Model.Name "guard")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.CastExpression+castExpressionCastExpression :: Typed.TypedName Syntax.CastExpression+castExpressionCastExpression = Typed.TypedName (Model.Name "hydra.java.syntax.CastExpression")++-- | DSL injection for the lambda variant of hydra.java.syntax.CastExpression+castExpressionLambda :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.CastExpression+castExpressionLambda x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.CastExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "lambda"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the notPlusMinus variant of hydra.java.syntax.CastExpression+castExpressionNotPlusMinus :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.CastExpression+castExpressionNotPlusMinus x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.CastExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "notPlusMinus"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the primitive variant of hydra.java.syntax.CastExpression+castExpressionPrimitive :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.CastExpression+castExpressionPrimitive x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.CastExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primitive"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.CastExpression_Lambda+castExpression_Lambda :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.CastExpression_Lambda+castExpression_Lambda refAndBounds expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_Lambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "refAndBounds"),+ Model.fieldTerm = (Typed.unTypedTerm refAndBounds)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL name token for hydra.java.syntax.CastExpression_Lambda+castExpression_LambdaCastExpression_Lambda :: Typed.TypedName Syntax.CastExpression_Lambda+castExpression_LambdaCastExpression_Lambda = Typed.TypedName (Model.Name "hydra.java.syntax.CastExpression_Lambda")++-- | DSL accessor for the expression field of hydra.java.syntax.CastExpression_Lambda+castExpression_LambdaExpression :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.LambdaExpression+castExpression_LambdaExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Lambda"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the refAndBounds field of hydra.java.syntax.CastExpression_Lambda+castExpression_LambdaRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds+castExpression_LambdaRefAndBounds x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Lambda"),+ Model.projectionFieldName = (Model.Name "refAndBounds")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expression field of hydra.java.syntax.CastExpression_Lambda+castExpression_LambdaWithExpression :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.CastExpression_Lambda+castExpression_LambdaWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_Lambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "refAndBounds"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Lambda"),+ Model.projectionFieldName = (Model.Name "refAndBounds")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the refAndBounds field of hydra.java.syntax.CastExpression_Lambda+castExpression_LambdaWithRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_Lambda -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.CastExpression_Lambda+castExpression_LambdaWithRefAndBounds original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_Lambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "refAndBounds"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Lambda"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinus :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinus refAndBounds expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "refAndBounds"),+ Model.fieldTerm = (Typed.unTypedTerm refAndBounds)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL name token for hydra.java.syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusCastExpression_NotPlusMinus :: Typed.TypedName Syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusCastExpression_NotPlusMinus =+ Typed.TypedName (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus")++-- | DSL accessor for the expression field of hydra.java.syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusExpression :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.UnaryExpression+castExpression_NotPlusMinusExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the refAndBounds field of hydra.java.syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds+castExpression_NotPlusMinusRefAndBounds x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),+ Model.projectionFieldName = (Model.Name "refAndBounds")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expression field of hydra.java.syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusWithExpression :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "refAndBounds"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),+ Model.projectionFieldName = (Model.Name "refAndBounds")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the refAndBounds field of hydra.java.syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusWithRefAndBounds :: Typed.TypedTerm Syntax.CastExpression_NotPlusMinus -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.CastExpression_NotPlusMinus+castExpression_NotPlusMinusWithRefAndBounds original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "refAndBounds"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.CastExpression_Primitive+castExpression_Primitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_Primitive+castExpression_Primitive type_ expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL name token for hydra.java.syntax.CastExpression_Primitive+castExpression_PrimitiveCastExpression_Primitive :: Typed.TypedName Syntax.CastExpression_Primitive+castExpression_PrimitiveCastExpression_Primitive =+ Typed.TypedName (Model.Name "hydra.java.syntax.CastExpression_Primitive")++-- | DSL accessor for the expression field of hydra.java.syntax.CastExpression_Primitive+castExpression_PrimitiveExpression :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.UnaryExpression+castExpression_PrimitiveExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Primitive"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.CastExpression_Primitive+castExpression_PrimitiveType :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations+castExpression_PrimitiveType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expression field of hydra.java.syntax.CastExpression_Primitive+castExpression_PrimitiveWithExpression :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.CastExpression_Primitive+castExpression_PrimitiveWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Primitive"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.java.syntax.CastExpression_Primitive+castExpression_PrimitiveWithType :: Typed.TypedTerm Syntax.CastExpression_Primitive -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.CastExpression_Primitive+castExpression_PrimitiveWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_Primitive"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_Primitive"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.CastExpression_RefAndBounds+castExpression_RefAndBounds :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds+castExpression_RefAndBounds type_ bounds =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "bounds"),+ Model.fieldTerm = (Typed.unTypedTerm bounds)}]}))++-- | DSL accessor for the bounds field of hydra.java.syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsBounds :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm [Syntax.AdditionalBound]+castExpression_RefAndBoundsBounds x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"),+ Model.projectionFieldName = (Model.Name "bounds")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsCastExpression_RefAndBounds :: Typed.TypedName Syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsCastExpression_RefAndBounds =+ Typed.TypedName (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds")++-- | DSL accessor for the type field of hydra.java.syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsType :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.ReferenceType+castExpression_RefAndBoundsType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the bounds field of hydra.java.syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsWithBounds :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsWithBounds original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "bounds"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.java.syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsWithType :: Typed.TypedTerm Syntax.CastExpression_RefAndBounds -> Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.CastExpression_RefAndBounds+castExpression_RefAndBoundsWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "bounds"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"),+ Model.projectionFieldName = (Model.Name "bounds")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.CatchClause+catchClause :: Typed.TypedTerm (Maybe Syntax.CatchFormalParameter) -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.CatchClause+catchClause parameter block =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameter"),+ Model.fieldTerm = (Typed.unTypedTerm parameter)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm block)}]}))++-- | DSL accessor for the block field of hydra.java.syntax.CatchClause+catchClauseBlock :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm Syntax.Block+catchClauseBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchClause"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.CatchClause+catchClauseCatchClause :: Typed.TypedName Syntax.CatchClause+catchClauseCatchClause = Typed.TypedName (Model.Name "hydra.java.syntax.CatchClause")++-- | DSL accessor for the parameter field of hydra.java.syntax.CatchClause+catchClauseParameter :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm (Maybe Syntax.CatchFormalParameter)+catchClauseParameter x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchClause"),+ Model.projectionFieldName = (Model.Name "parameter")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the block field of hydra.java.syntax.CatchClause+catchClauseWithBlock :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.CatchClause+catchClauseWithBlock original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameter"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchClause"),+ Model.projectionFieldName = (Model.Name "parameter")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the parameter field of hydra.java.syntax.CatchClause+catchClauseWithParameter :: Typed.TypedTerm Syntax.CatchClause -> Typed.TypedTerm (Maybe Syntax.CatchFormalParameter) -> Typed.TypedTerm Syntax.CatchClause+catchClauseWithParameter original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchClause"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameter"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchClause"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.CatchFormalParameter+catchFormalParameter :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.CatchFormalParameter+catchFormalParameter modifiers type_ id =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm id)}]}))++-- | DSL name token for hydra.java.syntax.CatchFormalParameter+catchFormalParameterCatchFormalParameter :: Typed.TypedName Syntax.CatchFormalParameter+catchFormalParameterCatchFormalParameter = Typed.TypedName (Model.Name "hydra.java.syntax.CatchFormalParameter")++-- | DSL accessor for the id field of hydra.java.syntax.CatchFormalParameter+catchFormalParameterId :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.VariableDeclaratorId+catchFormalParameterId x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.CatchFormalParameter+catchFormalParameterModifiers :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm [Syntax.VariableModifier]+catchFormalParameterModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.CatchFormalParameter+catchFormalParameterType :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.CatchType+catchFormalParameterType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the id field of hydra.java.syntax.CatchFormalParameter+catchFormalParameterWithId :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.CatchFormalParameter+catchFormalParameterWithId original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.CatchFormalParameter+catchFormalParameterWithModifiers :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.CatchFormalParameter+catchFormalParameterWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.CatchFormalParameter+catchFormalParameterWithType :: Typed.TypedTerm Syntax.CatchFormalParameter -> Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.CatchFormalParameter+catchFormalParameterWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchFormalParameter"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.CatchType+catchType :: Typed.TypedTerm Syntax.UnannClassType -> Typed.TypedTerm [Syntax.ClassType] -> Typed.TypedTerm Syntax.CatchType+catchType type_ types =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "types"),+ Model.fieldTerm = (Typed.unTypedTerm types)}]}))++-- | DSL name token for hydra.java.syntax.CatchType+catchTypeCatchType :: Typed.TypedName Syntax.CatchType+catchTypeCatchType = Typed.TypedName (Model.Name "hydra.java.syntax.CatchType")++-- | DSL accessor for the type field of hydra.java.syntax.CatchType+catchTypeType :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.UnannClassType+catchTypeType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchType"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the types field of hydra.java.syntax.CatchType+catchTypeTypes :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm [Syntax.ClassType]+catchTypeTypes x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchType"),+ Model.projectionFieldName = (Model.Name "types")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the type field of hydra.java.syntax.CatchType+catchTypeWithType :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm Syntax.UnannClassType -> Typed.TypedTerm Syntax.CatchType+catchTypeWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "types"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchType"),+ Model.projectionFieldName = (Model.Name "types")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the types field of hydra.java.syntax.CatchType+catchTypeWithTypes :: Typed.TypedTerm Syntax.CatchType -> Typed.TypedTerm [Syntax.ClassType] -> Typed.TypedTerm Syntax.CatchType+catchTypeWithTypes original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CatchType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CatchType"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "types"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.java.syntax.Catches wrapper+catches :: Typed.TypedTerm [Syntax.CatchClause] -> Typed.TypedTerm Syntax.Catches+catches x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.Catches"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Catches+catchesCatches :: Typed.TypedName Syntax.Catches+catchesCatches = Typed.TypedName (Model.Name "hydra.java.syntax.Catches")++-- | DSL constructor for the hydra.java.syntax.ClassBody wrapper+classBody :: Typed.TypedTerm [Syntax.ClassBodyDeclarationWithComments] -> Typed.TypedTerm Syntax.ClassBody+classBody x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ClassBody"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ClassBody+classBodyClassBody :: Typed.TypedName Syntax.ClassBody+classBodyClassBody = Typed.TypedName (Model.Name "hydra.java.syntax.ClassBody")++-- | DSL name token for hydra.java.syntax.ClassBodyDeclaration+classBodyDeclarationClassBodyDeclaration :: Typed.TypedName Syntax.ClassBodyDeclaration+classBodyDeclarationClassBodyDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.ClassBodyDeclaration")++-- | DSL injection for the classMember variant of hydra.java.syntax.ClassBodyDeclaration+classBodyDeclarationClassMember :: Typed.TypedTerm Syntax.ClassMemberDeclaration -> Typed.TypedTerm Syntax.ClassBodyDeclaration+classBodyDeclarationClassMember x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classMember"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the constructorDeclaration variant of hydra.java.syntax.ClassBodyDeclaration+classBodyDeclarationConstructorDeclaration :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ClassBodyDeclaration+classBodyDeclarationConstructorDeclaration x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "constructorDeclaration"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the instanceInitializer variant of hydra.java.syntax.ClassBodyDeclaration+classBodyDeclarationInstanceInitializer :: Typed.TypedTerm Syntax.InstanceInitializer -> Typed.TypedTerm Syntax.ClassBodyDeclaration+classBodyDeclarationInstanceInitializer x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "instanceInitializer"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the staticInitializer variant of hydra.java.syntax.ClassBodyDeclaration+classBodyDeclarationStaticInitializer :: Typed.TypedTerm Syntax.StaticInitializer -> Typed.TypedTerm Syntax.ClassBodyDeclaration+classBodyDeclarationStaticInitializer x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "staticInitializer"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithComments :: Typed.TypedTerm Syntax.ClassBodyDeclaration -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithComments value comments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Typed.unTypedTerm comments)}]}))++-- | DSL name token for hydra.java.syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsClassBodyDeclarationWithComments :: Typed.TypedName Syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsClassBodyDeclarationWithComments =+ Typed.TypedName (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments")++-- | DSL accessor for the comments field of hydra.java.syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsComments :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm (Maybe String)+classBodyDeclarationWithCommentsComments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "comments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the value field of hydra.java.syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsValue :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm Syntax.ClassBodyDeclaration+classBodyDeclarationWithCommentsValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the comments field of hydra.java.syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsWithComments :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsWithComments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the value field of hydra.java.syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsWithValue :: Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments -> Typed.TypedTerm Syntax.ClassBodyDeclaration -> Typed.TypedTerm Syntax.ClassBodyDeclarationWithComments+classBodyDeclarationWithCommentsWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "comments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.ClassDeclaration+classDeclarationClassDeclaration :: Typed.TypedName Syntax.ClassDeclaration+classDeclarationClassDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.ClassDeclaration")++-- | DSL injection for the enum variant of hydra.java.syntax.ClassDeclaration+classDeclarationEnum :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.ClassDeclaration+classDeclarationEnum x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "enum"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the normal variant of hydra.java.syntax.ClassDeclaration+classDeclarationNormal :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.ClassDeclaration+classDeclarationNormal x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "normal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the record variant of hydra.java.syntax.ClassDeclaration+classDeclarationRecord :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.ClassDeclaration+classDeclarationRecord x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "record"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ClassInstanceCreationExpression+classInstanceCreationExpression :: Typed.TypedTerm (Maybe Syntax.ClassInstanceCreationExpression_Qualifier) -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression+classInstanceCreationExpression qualifier expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm qualifier)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL name token for hydra.java.syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionClassInstanceCreationExpression :: Typed.TypedName Syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionClassInstanceCreationExpression =+ Typed.TypedName (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression")++-- | DSL accessor for the expression field of hydra.java.syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionExpression :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression+classInstanceCreationExpressionExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qualifier field of hydra.java.syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionQualifier :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassInstanceCreationExpression_Qualifier)+classInstanceCreationExpressionQualifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expression field of hydra.java.syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionWithExpression :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the qualifier field of hydra.java.syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionWithQualifier :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassInstanceCreationExpression_Qualifier) -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression+classInstanceCreationExpressionWithQualifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.ClassInstanceCreationExpression_Qualifier+classInstanceCreationExpression_QualifierClassInstanceCreationExpression_Qualifier :: Typed.TypedName Syntax.ClassInstanceCreationExpression_Qualifier+classInstanceCreationExpression_QualifierClassInstanceCreationExpression_Qualifier =+ Typed.TypedName (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier")++-- | DSL injection for the expression variant of hydra.java.syntax.ClassInstanceCreationExpression_Qualifier+classInstanceCreationExpression_QualifierExpression :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression_Qualifier+classInstanceCreationExpression_QualifierExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the primary variant of hydra.java.syntax.ClassInstanceCreationExpression_Qualifier+classInstanceCreationExpression_QualifierPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.ClassInstanceCreationExpression_Qualifier+classInstanceCreationExpression_QualifierPrimary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the boolean variant of hydra.java.syntax.ClassLiteral+classLiteralBoolean :: Typed.TypedTerm Syntax.BooleanArray -> Typed.TypedTerm Syntax.ClassLiteral+classLiteralBoolean x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassLiteral"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "boolean"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ClassLiteral+classLiteralClassLiteral :: Typed.TypedName Syntax.ClassLiteral+classLiteralClassLiteral = Typed.TypedName (Model.Name "hydra.java.syntax.ClassLiteral")++-- | DSL injection for the numericType variant of hydra.java.syntax.ClassLiteral+classLiteralNumericType :: Typed.TypedTerm Syntax.NumericTypeArray -> Typed.TypedTerm Syntax.ClassLiteral+classLiteralNumericType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassLiteral"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "numericType"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the type variant of hydra.java.syntax.ClassLiteral+classLiteralType :: Typed.TypedTerm Syntax.TypeNameArray -> Typed.TypedTerm Syntax.ClassLiteral+classLiteralType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassLiteral"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the void variant of hydra.java.syntax.ClassLiteral+classLiteralVoid :: Typed.TypedTerm Syntax.ClassLiteral+classLiteralVoid =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassLiteral"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "void"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the class variant of hydra.java.syntax.ClassMemberDeclaration+classMemberDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration+classMemberDeclarationClass x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "class"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ClassMemberDeclaration+classMemberDeclarationClassMemberDeclaration :: Typed.TypedName Syntax.ClassMemberDeclaration+classMemberDeclarationClassMemberDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.ClassMemberDeclaration")++-- | DSL injection for the field variant of hydra.java.syntax.ClassMemberDeclaration+classMemberDeclarationField :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration+classMemberDeclarationField x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "field"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the interface variant of hydra.java.syntax.ClassMemberDeclaration+classMemberDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration+classMemberDeclarationInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "interface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the method variant of hydra.java.syntax.ClassMemberDeclaration+classMemberDeclarationMethod :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.ClassMemberDeclaration+classMemberDeclarationMethod x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "method"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the none variant of hydra.java.syntax.ClassMemberDeclaration+classMemberDeclarationNone :: Typed.TypedTerm Syntax.ClassMemberDeclaration+classMemberDeclarationNone =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "none"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the abstract variant of hydra.java.syntax.ClassModifier+classModifierAbstract :: Typed.TypedTerm Syntax.ClassModifier+classModifierAbstract =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "abstract"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the annotation variant of hydra.java.syntax.ClassModifier+classModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ClassModifier+classModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ClassModifier+classModifierClassModifier :: Typed.TypedName Syntax.ClassModifier+classModifierClassModifier = Typed.TypedName (Model.Name "hydra.java.syntax.ClassModifier")++-- | DSL injection for the final variant of hydra.java.syntax.ClassModifier+classModifierFinal :: Typed.TypedTerm Syntax.ClassModifier+classModifierFinal =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "final"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the nonSealed variant of hydra.java.syntax.ClassModifier+classModifierNonSealed :: Typed.TypedTerm Syntax.ClassModifier+classModifierNonSealed =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "nonSealed"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the private variant of hydra.java.syntax.ClassModifier+classModifierPrivate :: Typed.TypedTerm Syntax.ClassModifier+classModifierPrivate =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "private"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the protected variant of hydra.java.syntax.ClassModifier+classModifierProtected :: Typed.TypedTerm Syntax.ClassModifier+classModifierProtected =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "protected"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the public variant of hydra.java.syntax.ClassModifier+classModifierPublic :: Typed.TypedTerm Syntax.ClassModifier+classModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the sealed variant of hydra.java.syntax.ClassModifier+classModifierSealed :: Typed.TypedTerm Syntax.ClassModifier+classModifierSealed =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "sealed"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the static variant of hydra.java.syntax.ClassModifier+classModifierStatic :: Typed.TypedTerm Syntax.ClassModifier+classModifierStatic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "static"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the strictfp variant of hydra.java.syntax.ClassModifier+classModifierStrictfp :: Typed.TypedTerm Syntax.ClassModifier+classModifierStrictfp =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "strictfp"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the class variant of hydra.java.syntax.ClassOrInterfaceType+classOrInterfaceTypeClass :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ClassOrInterfaceType+classOrInterfaceTypeClass x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "class"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ClassOrInterfaceType+classOrInterfaceTypeClassOrInterfaceType :: Typed.TypedName Syntax.ClassOrInterfaceType+classOrInterfaceTypeClassOrInterfaceType = Typed.TypedName (Model.Name "hydra.java.syntax.ClassOrInterfaceType")++-- | DSL injection for the interface variant of hydra.java.syntax.ClassOrInterfaceType+classOrInterfaceTypeInterface :: Typed.TypedTerm Syntax.InterfaceType -> Typed.TypedTerm Syntax.ClassOrInterfaceType+classOrInterfaceTypeInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "interface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiate :: Typed.TypedTerm [Syntax.AnnotatedIdentifier] -> Typed.TypedTerm (Maybe Syntax.TypeArgumentsOrDiamond) -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiate identifiers typeArguments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Typed.unTypedTerm identifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)}]}))++-- | DSL name token for hydra.java.syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateClassOrInterfaceTypeToInstantiate :: Typed.TypedName Syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateClassOrInterfaceTypeToInstantiate =+ Typed.TypedName (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate")++-- | DSL accessor for the identifiers field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateIdentifiers :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm [Syntax.AnnotatedIdentifier]+classOrInterfaceTypeToInstantiateIdentifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeArguments field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateTypeArguments :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm (Maybe Syntax.TypeArgumentsOrDiamond)+classOrInterfaceTypeToInstantiateTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifiers field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateWithIdentifiers :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm [Syntax.AnnotatedIdentifier] -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateWithIdentifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateWithTypeArguments :: Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm (Maybe Syntax.TypeArgumentsOrDiamond) -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate+classOrInterfaceTypeToInstantiateWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.ClassType+classType :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ClassTypeQualifier -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ClassType+classType annotations qualifier identifier arguments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm qualifier)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm arguments)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.ClassType+classTypeAnnotations :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.Annotation]+classTypeAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the arguments field of hydra.java.syntax.ClassType+classTypeArguments :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.TypeArgument]+classTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ClassType+classTypeClassType :: Typed.TypedName Syntax.ClassType+classTypeClassType = Typed.TypedName (Model.Name "hydra.java.syntax.ClassType")++-- | DSL accessor for the identifier field of hydra.java.syntax.ClassType+classTypeIdentifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.TypeIdentifier+classTypeIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qualifier field of hydra.java.syntax.ClassType+classTypeQualifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ClassTypeQualifier+classTypeQualifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ClassTypeQualifier+classTypeQualifierClassTypeQualifier :: Typed.TypedName Syntax.ClassTypeQualifier+classTypeQualifierClassTypeQualifier = Typed.TypedName (Model.Name "hydra.java.syntax.ClassTypeQualifier")++-- | DSL injection for the none variant of hydra.java.syntax.ClassTypeQualifier+classTypeQualifierNone :: Typed.TypedTerm Syntax.ClassTypeQualifier+classTypeQualifierNone =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassTypeQualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "none"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the package variant of hydra.java.syntax.ClassTypeQualifier+classTypeQualifierPackage :: Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm Syntax.ClassTypeQualifier+classTypeQualifierPackage x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassTypeQualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the parent variant of hydra.java.syntax.ClassTypeQualifier+classTypeQualifierParent :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ClassTypeQualifier+classTypeQualifierParent x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ClassTypeQualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "parent"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL updater for the annotations field of hydra.java.syntax.ClassType+classTypeWithAnnotations :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ClassType+classTypeWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the arguments field of hydra.java.syntax.ClassType+classTypeWithArguments :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ClassType+classTypeWithArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.ClassType+classTypeWithIdentifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.ClassType+classTypeWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the qualifier field of hydra.java.syntax.ClassType+classTypeWithQualifier :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ClassTypeQualifier -> Typed.TypedTerm Syntax.ClassType+classTypeWithQualifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ClassType"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclaration :: Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.CompactConstructorDeclaration+compactConstructorDeclaration modifiers name body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclarationBody :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody+compactConstructorDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclarationCompactConstructorDeclaration :: Typed.TypedName Syntax.CompactConstructorDeclaration+compactConstructorDeclarationCompactConstructorDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.CompactConstructorDeclaration")++-- | DSL accessor for the modifiers field of hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclarationModifiers :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier]+compactConstructorDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclarationName :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.SimpleTypeName+compactConstructorDeclarationName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclarationWithBody :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.CompactConstructorDeclaration+compactConstructorDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclarationWithModifiers :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.CompactConstructorDeclaration+compactConstructorDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.java.syntax.CompactConstructorDeclaration+compactConstructorDeclarationWithName :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.CompactConstructorDeclaration+compactConstructorDeclarationWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.CompactConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.CompilationUnit+compilationUnitCompilationUnit :: Typed.TypedName Syntax.CompilationUnit+compilationUnitCompilationUnit = Typed.TypedName (Model.Name "hydra.java.syntax.CompilationUnit")++-- | DSL injection for the modular variant of hydra.java.syntax.CompilationUnit+compilationUnitModular :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm Syntax.CompilationUnit+compilationUnitModular x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.CompilationUnit"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "modular"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ordinary variant of hydra.java.syntax.CompilationUnit+compilationUnitOrdinary :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm Syntax.CompilationUnit+compilationUnitOrdinary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.CompilationUnit"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "ordinary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.ConditionalAndExpression wrapper+conditionalAndExpression :: Typed.TypedTerm [Syntax.InclusiveOrExpression] -> Typed.TypedTerm Syntax.ConditionalAndExpression+conditionalAndExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ConditionalAndExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ConditionalAndExpression+conditionalAndExpressionConditionalAndExpression :: Typed.TypedName Syntax.ConditionalAndExpression+conditionalAndExpressionConditionalAndExpression =+ Typed.TypedName (Model.Name "hydra.java.syntax.ConditionalAndExpression")++-- | DSL name token for hydra.java.syntax.ConditionalExpression+conditionalExpressionConditionalExpression :: Typed.TypedName Syntax.ConditionalExpression+conditionalExpressionConditionalExpression = Typed.TypedName (Model.Name "hydra.java.syntax.ConditionalExpression")++-- | DSL injection for the simple variant of hydra.java.syntax.ConditionalExpression+conditionalExpressionSimple :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.ConditionalExpression+conditionalExpressionSimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ternaryCond variant of hydra.java.syntax.ConditionalExpression+conditionalExpressionTernaryCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalExpression+conditionalExpressionTernaryCond x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "ternaryCond"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ternaryLambda variant of hydra.java.syntax.ConditionalExpression+conditionalExpressionTernaryLambda :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.ConditionalExpression+conditionalExpressionTernaryLambda x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "ternaryLambda"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCond :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCond cond ifTrue ifFalse =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Typed.unTypedTerm ifTrue)},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Typed.unTypedTerm ifFalse)}]}))++-- | DSL accessor for the cond field of hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalOrExpression+conditionalExpression_TernaryCondCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondConditionalExpression_TernaryCond :: Typed.TypedName Syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondConditionalExpression_TernaryCond =+ Typed.TypedName (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond")++-- | DSL accessor for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalExpression+conditionalExpression_TernaryCondIfFalse x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "ifFalse")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.Expression+conditionalExpression_TernaryCondIfTrue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "ifTrue")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cond field of hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondWithCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "ifTrue")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "ifFalse")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondWithIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondWithIfFalse original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "ifTrue")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondWithIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryCond+conditionalExpression_TernaryCondWithIfTrue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"),+ Model.projectionFieldName = (Model.Name "ifFalse")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambda :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambda cond ifTrue ifFalse =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Typed.unTypedTerm ifTrue)},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Typed.unTypedTerm ifFalse)}]}))++-- | DSL accessor for the cond field of hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.ConditionalOrExpression+conditionalExpression_TernaryLambdaCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaConditionalExpression_TernaryLambda :: Typed.TypedName Syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaConditionalExpression_TernaryLambda =+ Typed.TypedName (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda")++-- | DSL accessor for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.LambdaExpression+conditionalExpression_TernaryLambdaIfFalse x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "ifFalse")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.Expression+conditionalExpression_TernaryLambdaIfTrue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "ifTrue")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cond field of hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaWithCond :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "ifTrue")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "ifFalse")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the ifFalse field of hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaWithIfFalse :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaWithIfFalse original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "ifTrue")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the ifTrue field of hydra.java.syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaWithIfTrue :: Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConditionalExpression_TernaryLambda+conditionalExpression_TernaryLambdaWithIfTrue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "ifTrue"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "ifFalse"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"),+ Model.projectionFieldName = (Model.Name "ifFalse")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.ConditionalOrExpression wrapper+conditionalOrExpression :: Typed.TypedTerm [Syntax.ConditionalAndExpression] -> Typed.TypedTerm Syntax.ConditionalOrExpression+conditionalOrExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ConditionalOrExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ConditionalOrExpression+conditionalOrExpressionConditionalOrExpression :: Typed.TypedName Syntax.ConditionalOrExpression+conditionalOrExpressionConditionalOrExpression = Typed.TypedName (Model.Name "hydra.java.syntax.ConditionalOrExpression")++-- | DSL constructor for hydra.java.syntax.ConstantDeclaration+constantDeclaration :: Typed.TypedTerm [Syntax.ConstantModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.ConstantDeclaration+constantDeclaration modifiers type_ variables =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "variables"),+ Model.fieldTerm = (Typed.unTypedTerm variables)}]}))++-- | DSL name token for hydra.java.syntax.ConstantDeclaration+constantDeclarationConstantDeclaration :: Typed.TypedName Syntax.ConstantDeclaration+constantDeclarationConstantDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.ConstantDeclaration")++-- | DSL accessor for the modifiers field of hydra.java.syntax.ConstantDeclaration+constantDeclarationModifiers :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.ConstantModifier]+constantDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.ConstantDeclaration+constantDeclarationType :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.UnannType+constantDeclarationType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the variables field of hydra.java.syntax.ConstantDeclaration+constantDeclarationVariables :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator]+constantDeclarationVariables x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "variables")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the modifiers field of hydra.java.syntax.ConstantDeclaration+constantDeclarationWithModifiers :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.ConstantModifier] -> Typed.TypedTerm Syntax.ConstantDeclaration+constantDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variables"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "variables")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.ConstantDeclaration+constantDeclarationWithType :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.ConstantDeclaration+constantDeclarationWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "variables"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "variables")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the variables field of hydra.java.syntax.ConstantDeclaration+constantDeclarationWithVariables :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.ConstantDeclaration+constantDeclarationWithVariables original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstantDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variables"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.java.syntax.ConstantExpression wrapper+constantExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ConstantExpression+constantExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ConstantExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ConstantExpression+constantExpressionConstantExpression :: Typed.TypedName Syntax.ConstantExpression+constantExpressionConstantExpression = Typed.TypedName (Model.Name "hydra.java.syntax.ConstantExpression")++-- | DSL injection for the annotation variant of hydra.java.syntax.ConstantModifier+constantModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ConstantModifier+constantModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstantModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ConstantModifier+constantModifierConstantModifier :: Typed.TypedName Syntax.ConstantModifier+constantModifierConstantModifier = Typed.TypedName (Model.Name "hydra.java.syntax.ConstantModifier")++-- | DSL injection for the final variant of hydra.java.syntax.ConstantModifier+constantModifierFinal :: Typed.TypedTerm Syntax.ConstantModifier+constantModifierFinal =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstantModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "final"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the public variant of hydra.java.syntax.ConstantModifier+constantModifierPublic :: Typed.TypedTerm Syntax.ConstantModifier+constantModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstantModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the static variant of hydra.java.syntax.ConstantModifier+constantModifierStatic :: Typed.TypedTerm Syntax.ConstantModifier+constantModifierStatic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstantModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "static"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.java.syntax.ConstructorBody+constructorBody :: Typed.TypedTerm (Maybe Syntax.ExplicitConstructorInvocation) -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.ConstructorBody+constructorBody invocation statements =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorBody"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "invocation"),+ Model.fieldTerm = (Typed.unTypedTerm invocation)},+ Model.Field {+ Model.fieldName = (Model.Name "statements"),+ Model.fieldTerm = (Typed.unTypedTerm statements)}]}))++-- | DSL name token for hydra.java.syntax.ConstructorBody+constructorBodyConstructorBody :: Typed.TypedName Syntax.ConstructorBody+constructorBodyConstructorBody = Typed.TypedName (Model.Name "hydra.java.syntax.ConstructorBody")++-- | DSL accessor for the invocation field of hydra.java.syntax.ConstructorBody+constructorBodyInvocation :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm (Maybe Syntax.ExplicitConstructorInvocation)+constructorBodyInvocation x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorBody"),+ Model.projectionFieldName = (Model.Name "invocation")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the statements field of hydra.java.syntax.ConstructorBody+constructorBodyStatements :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm [Syntax.BlockStatement]+constructorBodyStatements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorBody"),+ Model.projectionFieldName = (Model.Name "statements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the invocation field of hydra.java.syntax.ConstructorBody+constructorBodyWithInvocation :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm (Maybe Syntax.ExplicitConstructorInvocation) -> Typed.TypedTerm Syntax.ConstructorBody+constructorBodyWithInvocation original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorBody"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "invocation"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "statements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorBody"),+ Model.projectionFieldName = (Model.Name "statements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the statements field of hydra.java.syntax.ConstructorBody+constructorBodyWithStatements :: Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.ConstructorBody+constructorBodyWithStatements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorBody"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "invocation"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorBody"),+ Model.projectionFieldName = (Model.Name "invocation")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "statements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.ConstructorDeclaration+constructorDeclaration :: Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.ConstructorDeclaration+constructorDeclaration modifiers constructor throws body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Typed.unTypedTerm constructor)},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Typed.unTypedTerm throws)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationBody :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody+constructorDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the constructor field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationConstructor :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorDeclarator+constructorDeclarationConstructor x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "constructor")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ConstructorDeclaration+constructorDeclarationConstructorDeclaration :: Typed.TypedName Syntax.ConstructorDeclaration+constructorDeclarationConstructorDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.ConstructorDeclaration")++-- | DSL accessor for the modifiers field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationModifiers :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier]+constructorDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the throws field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationThrows :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm (Maybe Syntax.Throws)+constructorDeclarationThrows x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationWithBody :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorBody -> Typed.TypedTerm Syntax.ConstructorDeclaration+constructorDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "constructor")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the constructor field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationWithConstructor :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm Syntax.ConstructorDeclaration+constructorDeclarationWithConstructor original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationWithModifiers :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm [Syntax.ConstructorModifier] -> Typed.TypedTerm Syntax.ConstructorDeclaration+constructorDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "constructor")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the throws field of hydra.java.syntax.ConstructorDeclaration+constructorDeclarationWithThrows :: Typed.TypedTerm Syntax.ConstructorDeclaration -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.ConstructorDeclaration+constructorDeclarationWithThrows original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "constructor"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "constructor")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.ConstructorDeclarator+constructorDeclarator :: Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.ConstructorDeclarator+constructorDeclarator parameters name receiverParameter formalParameters =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm parameters)},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Typed.unTypedTerm receiverParameter)},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Typed.unTypedTerm formalParameters)}]}))++-- | DSL name token for hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorConstructorDeclarator :: Typed.TypedName Syntax.ConstructorDeclarator+constructorDeclaratorConstructorDeclarator = Typed.TypedName (Model.Name "hydra.java.syntax.ConstructorDeclarator")++-- | DSL accessor for the formalParameters field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorFormalParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.FormalParameter]+constructorDeclaratorFormalParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "formalParameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorName :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm Syntax.SimpleTypeName+constructorDeclaratorName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the parameters field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.TypeParameter]+constructorDeclaratorParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the receiverParameter field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorReceiverParameter :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter)+constructorDeclaratorReceiverParameter x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "receiverParameter")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the formalParameters field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorWithFormalParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.ConstructorDeclarator+constructorDeclaratorWithFormalParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "receiverParameter")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorWithName :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.ConstructorDeclarator+constructorDeclaratorWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "receiverParameter")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "formalParameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the parameters field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorWithParameters :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.ConstructorDeclarator+constructorDeclaratorWithParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "receiverParameter")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "formalParameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the receiverParameter field of hydra.java.syntax.ConstructorDeclarator+constructorDeclaratorWithReceiverParameter :: Typed.TypedTerm Syntax.ConstructorDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm Syntax.ConstructorDeclarator+constructorDeclaratorWithReceiverParameter original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ConstructorDeclarator"),+ Model.projectionFieldName = (Model.Name "formalParameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the annotation variant of hydra.java.syntax.ConstructorModifier+constructorModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ConstructorModifier+constructorModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstructorModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ConstructorModifier+constructorModifierConstructorModifier :: Typed.TypedName Syntax.ConstructorModifier+constructorModifierConstructorModifier = Typed.TypedName (Model.Name "hydra.java.syntax.ConstructorModifier")++-- | DSL injection for the private variant of hydra.java.syntax.ConstructorModifier+constructorModifierPrivate :: Typed.TypedTerm Syntax.ConstructorModifier+constructorModifierPrivate =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstructorModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "private"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the protected variant of hydra.java.syntax.ConstructorModifier+constructorModifierProtected :: Typed.TypedTerm Syntax.ConstructorModifier+constructorModifierProtected =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstructorModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "protected"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the public variant of hydra.java.syntax.ConstructorModifier+constructorModifierPublic :: Typed.TypedTerm Syntax.ConstructorModifier+constructorModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ConstructorModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.ContinueStatement wrapper+continueStatement :: Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.ContinueStatement+continueStatement x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ContinueStatement"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ContinueStatement+continueStatementContinueStatement :: Typed.TypedName Syntax.ContinueStatement+continueStatementContinueStatement = Typed.TypedName (Model.Name "hydra.java.syntax.ContinueStatement")++-- | DSL constructor for the hydra.java.syntax.DefaultValue wrapper+defaultValue :: Typed.TypedTerm Syntax.ElementValue -> Typed.TypedTerm Syntax.DefaultValue+defaultValue x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.DefaultValue"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.DefaultValue+defaultValueDefaultValue :: Typed.TypedName Syntax.DefaultValue+defaultValueDefaultValue = Typed.TypedName (Model.Name "hydra.java.syntax.DefaultValue")++-- | DSL constructor for hydra.java.syntax.DimExpr+dimExpr :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.DimExpr+dimExpr annotations expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.DimExpr"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.DimExpr+dimExprAnnotations :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm [Syntax.Annotation]+dimExprAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DimExpr"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.DimExpr+dimExprDimExpr :: Typed.TypedName Syntax.DimExpr+dimExprDimExpr = Typed.TypedName (Model.Name "hydra.java.syntax.DimExpr")++-- | DSL accessor for the expression field of hydra.java.syntax.DimExpr+dimExprExpression :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm (Maybe Syntax.Expression)+dimExprExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DimExpr"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annotations field of hydra.java.syntax.DimExpr+dimExprWithAnnotations :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.DimExpr+dimExprWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.DimExpr"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DimExpr"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the expression field of hydra.java.syntax.DimExpr+dimExprWithExpression :: Typed.TypedTerm Syntax.DimExpr -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.DimExpr+dimExprWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.DimExpr"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DimExpr"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.java.syntax.Dims wrapper+dims :: Typed.TypedTerm [[Syntax.Annotation]] -> Typed.TypedTerm Syntax.Dims+dims x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.Dims"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Dims+dimsDims :: Typed.TypedName Syntax.Dims+dimsDims = Typed.TypedName (Model.Name "hydra.java.syntax.Dims")++-- | DSL constructor for hydra.java.syntax.DoStatement+doStatement :: Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DoStatement+doStatement body cond =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.DoStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)},+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.DoStatement+doStatementBody :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Statement+doStatementBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DoStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.DoStatement+doStatementCond :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Expression+doStatementCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DoStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.DoStatement+doStatementDoStatement :: Typed.TypedName Syntax.DoStatement+doStatementDoStatement = Typed.TypedName (Model.Name "hydra.java.syntax.DoStatement")++-- | DSL updater for the body field of hydra.java.syntax.DoStatement+doStatementWithBody :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.DoStatement+doStatementWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.DoStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DoStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the cond field of hydra.java.syntax.DoStatement+doStatementWithCond :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.DoStatement+doStatementWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.DoStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.DoStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the annotation variant of hydra.java.syntax.ElementValue+elementValueAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.ElementValue+elementValueAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ElementValue"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.ElementValueArrayInitializer wrapper+elementValueArrayInitializer :: Typed.TypedTerm [Syntax.ElementValue] -> Typed.TypedTerm Syntax.ElementValueArrayInitializer+elementValueArrayInitializer x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ElementValueArrayInitializer"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ElementValueArrayInitializer+elementValueArrayInitializerElementValueArrayInitializer :: Typed.TypedName Syntax.ElementValueArrayInitializer+elementValueArrayInitializerElementValueArrayInitializer =+ Typed.TypedName (Model.Name "hydra.java.syntax.ElementValueArrayInitializer")++-- | DSL injection for the conditionalExpression variant of hydra.java.syntax.ElementValue+elementValueConditionalExpression :: Typed.TypedTerm Syntax.ConditionalExpression -> Typed.TypedTerm Syntax.ElementValue+elementValueConditionalExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ElementValue"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "conditionalExpression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ElementValue+elementValueElementValue :: Typed.TypedName Syntax.ElementValue+elementValueElementValue = Typed.TypedName (Model.Name "hydra.java.syntax.ElementValue")++-- | DSL injection for the elementValueArrayInitializer variant of hydra.java.syntax.ElementValue+elementValueElementValueArrayInitializer :: Typed.TypedTerm Syntax.ElementValueArrayInitializer -> Typed.TypedTerm Syntax.ElementValue+elementValueElementValueArrayInitializer x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ElementValue"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "elementValueArrayInitializer"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ElementValuePair+elementValuePair :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ElementValue -> Typed.TypedTerm Syntax.ElementValuePair+elementValuePair key value =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ElementValuePair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "key"),+ Model.fieldTerm = (Typed.unTypedTerm key)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL name token for hydra.java.syntax.ElementValuePair+elementValuePairElementValuePair :: Typed.TypedName Syntax.ElementValuePair+elementValuePairElementValuePair = Typed.TypedName (Model.Name "hydra.java.syntax.ElementValuePair")++-- | DSL accessor for the key field of hydra.java.syntax.ElementValuePair+elementValuePairKey :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.Identifier+elementValuePairKey x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ElementValuePair"),+ Model.projectionFieldName = (Model.Name "key")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the value field of hydra.java.syntax.ElementValuePair+elementValuePairValue :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.ElementValue+elementValuePairValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ElementValuePair"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the key field of hydra.java.syntax.ElementValuePair+elementValuePairWithKey :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ElementValuePair+elementValuePairWithKey original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ElementValuePair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "key"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ElementValuePair"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the value field of hydra.java.syntax.ElementValuePair+elementValuePairWithValue :: Typed.TypedTerm Syntax.ElementValuePair -> Typed.TypedTerm Syntax.ElementValue -> Typed.TypedTerm Syntax.ElementValuePair+elementValuePairWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ElementValuePair"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "key"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ElementValuePair"),+ Model.projectionFieldName = (Model.Name "key")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.EnhancedForCond+enhancedForCond :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.EnhancedForCond+enhancedForCond declaration expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "declaration"),+ Model.fieldTerm = (Typed.unTypedTerm declaration)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL accessor for the declaration field of hydra.java.syntax.EnhancedForCond+enhancedForCondDeclaration :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.LocalVariableDeclaration+enhancedForCondDeclaration x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForCond"),+ Model.projectionFieldName = (Model.Name "declaration")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnhancedForCond+enhancedForCondEnhancedForCond :: Typed.TypedName Syntax.EnhancedForCond+enhancedForCondEnhancedForCond = Typed.TypedName (Model.Name "hydra.java.syntax.EnhancedForCond")++-- | DSL accessor for the expression field of hydra.java.syntax.EnhancedForCond+enhancedForCondExpression :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.Expression+enhancedForCondExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForCond"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the declaration field of hydra.java.syntax.EnhancedForCond+enhancedForCondWithDeclaration :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.EnhancedForCond+enhancedForCondWithDeclaration original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "declaration"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForCond"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the expression field of hydra.java.syntax.EnhancedForCond+enhancedForCondWithExpression :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.EnhancedForCond+enhancedForCondWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "declaration"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForCond"),+ Model.projectionFieldName = (Model.Name "declaration")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.EnhancedForStatement+enhancedForStatement :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.EnhancedForStatement+enhancedForStatement cond body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.EnhancedForStatement+enhancedForStatementBody :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.Statement+enhancedForStatementBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.EnhancedForStatement+enhancedForStatementCond :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.EnhancedForCond+enhancedForStatementCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnhancedForStatement+enhancedForStatementEnhancedForStatement :: Typed.TypedName Syntax.EnhancedForStatement+enhancedForStatementEnhancedForStatement = Typed.TypedName (Model.Name "hydra.java.syntax.EnhancedForStatement")++-- | DSL constructor for hydra.java.syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIf :: Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIf cond body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfBody :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+enhancedForStatementNoShortIfBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfCond :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForCond+enhancedForStatementNoShortIfCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfEnhancedForStatementNoShortIf :: Typed.TypedName Syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfEnhancedForStatementNoShortIf =+ Typed.TypedName (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf")++-- | DSL updater for the body field of hydra.java.syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfWithBody :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf+enhancedForStatementNoShortIfWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the body field of hydra.java.syntax.EnhancedForStatement+enhancedForStatementWithBody :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.EnhancedForStatement+enhancedForStatementWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.EnhancedForStatement+enhancedForStatementWithCond :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.EnhancedForCond -> Typed.TypedTerm Syntax.EnhancedForStatement+enhancedForStatementWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnhancedForStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.EnumBody wrapper+enumBody :: Typed.TypedTerm [Syntax.EnumBody_Element] -> Typed.TypedTerm Syntax.EnumBody+enumBody x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.EnumBody"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnumBody+enumBodyEnumBody :: Typed.TypedName Syntax.EnumBody+enumBodyEnumBody = Typed.TypedName (Model.Name "hydra.java.syntax.EnumBody")++-- | DSL constructor for hydra.java.syntax.EnumBody_Element+enumBody_Element :: Typed.TypedTerm [Syntax.EnumConstant] -> Typed.TypedTerm [Syntax.ClassBodyDeclaration] -> Typed.TypedTerm Syntax.EnumBody_Element+enumBody_Element constants bodyDeclarations =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumBody_Element"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "constants"),+ Model.fieldTerm = (Typed.unTypedTerm constants)},+ Model.Field {+ Model.fieldName = (Model.Name "bodyDeclarations"),+ Model.fieldTerm = (Typed.unTypedTerm bodyDeclarations)}]}))++-- | DSL accessor for the bodyDeclarations field of hydra.java.syntax.EnumBody_Element+enumBody_ElementBodyDeclarations :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.ClassBodyDeclaration]+enumBody_ElementBodyDeclarations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumBody_Element"),+ Model.projectionFieldName = (Model.Name "bodyDeclarations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the constants field of hydra.java.syntax.EnumBody_Element+enumBody_ElementConstants :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.EnumConstant]+enumBody_ElementConstants x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumBody_Element"),+ Model.projectionFieldName = (Model.Name "constants")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnumBody_Element+enumBody_ElementEnumBody_Element :: Typed.TypedName Syntax.EnumBody_Element+enumBody_ElementEnumBody_Element = Typed.TypedName (Model.Name "hydra.java.syntax.EnumBody_Element")++-- | DSL updater for the bodyDeclarations field of hydra.java.syntax.EnumBody_Element+enumBody_ElementWithBodyDeclarations :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.ClassBodyDeclaration] -> Typed.TypedTerm Syntax.EnumBody_Element+enumBody_ElementWithBodyDeclarations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumBody_Element"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "constants"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumBody_Element"),+ Model.projectionFieldName = (Model.Name "constants")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "bodyDeclarations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the constants field of hydra.java.syntax.EnumBody_Element+enumBody_ElementWithConstants :: Typed.TypedTerm Syntax.EnumBody_Element -> Typed.TypedTerm [Syntax.EnumConstant] -> Typed.TypedTerm Syntax.EnumBody_Element+enumBody_ElementWithConstants original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumBody_Element"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "constants"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "bodyDeclarations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumBody_Element"),+ Model.projectionFieldName = (Model.Name "bodyDeclarations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.EnumConstant+enumConstant :: Typed.TypedTerm [Syntax.EnumConstantModifier] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe [Syntax.Expression]) -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.EnumConstant+enumConstant modifiers identifier arguments body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm arguments)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the arguments field of hydra.java.syntax.EnumConstant+enumConstantArguments :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe [Syntax.Expression])+enumConstantArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body field of hydra.java.syntax.EnumConstant+enumConstantBody :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe Syntax.ClassBody)+enumConstantBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnumConstant+enumConstantEnumConstant :: Typed.TypedName Syntax.EnumConstant+enumConstantEnumConstant = Typed.TypedName (Model.Name "hydra.java.syntax.EnumConstant")++-- | DSL accessor for the identifier field of hydra.java.syntax.EnumConstant+enumConstantIdentifier :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm Syntax.Identifier+enumConstantIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for the hydra.java.syntax.EnumConstantModifier wrapper+enumConstantModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.EnumConstantModifier+enumConstantModifier x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.EnumConstantModifier"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnumConstantModifier+enumConstantModifierEnumConstantModifier :: Typed.TypedName Syntax.EnumConstantModifier+enumConstantModifierEnumConstantModifier = Typed.TypedName (Model.Name "hydra.java.syntax.EnumConstantModifier")++-- | DSL accessor for the modifiers field of hydra.java.syntax.EnumConstant+enumConstantModifiers :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm [Syntax.EnumConstantModifier]+enumConstantModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the arguments field of hydra.java.syntax.EnumConstant+enumConstantWithArguments :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe [Syntax.Expression]) -> Typed.TypedTerm Syntax.EnumConstant+enumConstantWithArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the body field of hydra.java.syntax.EnumConstant+enumConstantWithBody :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.EnumConstant+enumConstantWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.EnumConstant+enumConstantWithIdentifier :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.EnumConstant+enumConstantWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.EnumConstant+enumConstantWithModifiers :: Typed.TypedTerm Syntax.EnumConstant -> Typed.TypedTerm [Syntax.EnumConstantModifier] -> Typed.TypedTerm Syntax.EnumConstant+enumConstantWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumConstant"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.EnumDeclaration+enumDeclaration :: Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.EnumBody -> Typed.TypedTerm Syntax.EnumDeclaration+enumDeclaration modifiers identifier implements body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Typed.unTypedTerm implements)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.EnumDeclaration+enumDeclarationBody :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.EnumBody+enumDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.EnumDeclaration+enumDeclarationEnumDeclaration :: Typed.TypedName Syntax.EnumDeclaration+enumDeclarationEnumDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.EnumDeclaration")++-- | DSL accessor for the identifier field of hydra.java.syntax.EnumDeclaration+enumDeclarationIdentifier :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier+enumDeclarationIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the implements field of hydra.java.syntax.EnumDeclaration+enumDeclarationImplements :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]+enumDeclarationImplements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.EnumDeclaration+enumDeclarationModifiers :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.ClassModifier]+enumDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.EnumDeclaration+enumDeclarationWithBody :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.EnumBody -> Typed.TypedTerm Syntax.EnumDeclaration+enumDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.EnumDeclaration+enumDeclarationWithIdentifier :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.EnumDeclaration+enumDeclarationWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the implements field of hydra.java.syntax.EnumDeclaration+enumDeclarationWithImplements :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.EnumDeclaration+enumDeclarationWithImplements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.EnumDeclaration+enumDeclarationWithModifiers :: Typed.TypedTerm Syntax.EnumDeclaration -> Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.EnumDeclaration+enumDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EnumDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the equal variant of hydra.java.syntax.EqualityExpression+equalityExpressionEqual :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression+equalityExpressionEqual x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.EqualityExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "equal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.EqualityExpression+equalityExpressionEqualityExpression :: Typed.TypedName Syntax.EqualityExpression+equalityExpressionEqualityExpression = Typed.TypedName (Model.Name "hydra.java.syntax.EqualityExpression")++-- | DSL injection for the notEqual variant of hydra.java.syntax.EqualityExpression+equalityExpressionNotEqual :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression+equalityExpressionNotEqual x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.EqualityExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "notEqual"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the unary variant of hydra.java.syntax.EqualityExpression+equalityExpressionUnary :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.EqualityExpression+equalityExpressionUnary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.EqualityExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "unary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.EqualityExpression_Binary+equalityExpression_Binary :: Typed.TypedTerm Syntax.EqualityExpression -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.EqualityExpression_Binary+equalityExpression_Binary lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EqualityExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL name token for hydra.java.syntax.EqualityExpression_Binary+equalityExpression_BinaryEqualityExpression_Binary :: Typed.TypedName Syntax.EqualityExpression_Binary+equalityExpression_BinaryEqualityExpression_Binary =+ Typed.TypedName (Model.Name "hydra.java.syntax.EqualityExpression_Binary")++-- | DSL accessor for the lhs field of hydra.java.syntax.EqualityExpression_Binary+equalityExpression_BinaryLhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression+equalityExpression_BinaryLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EqualityExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.java.syntax.EqualityExpression_Binary+equalityExpression_BinaryRhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.RelationalExpression+equalityExpression_BinaryRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EqualityExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.EqualityExpression_Binary+equalityExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.EqualityExpression -> Typed.TypedTerm Syntax.EqualityExpression_Binary+equalityExpression_BinaryWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EqualityExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EqualityExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.EqualityExpression_Binary+equalityExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.EqualityExpression_Binary -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.EqualityExpression_Binary+equalityExpression_BinaryWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.EqualityExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.EqualityExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the class variant of hydra.java.syntax.ExceptionType+exceptionTypeClass :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.ExceptionType+exceptionTypeClass x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ExceptionType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "class"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ExceptionType+exceptionTypeExceptionType :: Typed.TypedName Syntax.ExceptionType+exceptionTypeExceptionType = Typed.TypedName (Model.Name "hydra.java.syntax.ExceptionType")++-- | DSL injection for the variable variant of hydra.java.syntax.ExceptionType+exceptionTypeVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.ExceptionType+exceptionTypeVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ExceptionType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.ExclusiveOrExpression wrapper+exclusiveOrExpression :: Typed.TypedTerm [Syntax.AndExpression] -> Typed.TypedTerm Syntax.ExclusiveOrExpression+exclusiveOrExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ExclusiveOrExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ExclusiveOrExpression+exclusiveOrExpressionExclusiveOrExpression :: Typed.TypedName Syntax.ExclusiveOrExpression+exclusiveOrExpressionExclusiveOrExpression = Typed.TypedName (Model.Name "hydra.java.syntax.ExclusiveOrExpression")++-- | DSL constructor for hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocation :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation+explicitConstructorInvocation typeArguments arguments variant =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm arguments)},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm variant)}]}))++-- | DSL accessor for the arguments field of hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocationArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.Expression]+explicitConstructorInvocationArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocationExplicitConstructorInvocation :: Typed.TypedName Syntax.ExplicitConstructorInvocation+explicitConstructorInvocationExplicitConstructorInvocation =+ Typed.TypedName (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation")++-- | DSL accessor for the typeArguments field of hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocationTypeArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.TypeArgument]+explicitConstructorInvocationTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the variant field of hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocationVariant :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocationVariant x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the arguments field of hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocationWithArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation+explicitConstructorInvocationWithArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocationWithTypeArguments :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation+explicitConstructorInvocationWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the variant field of hydra.java.syntax.ExplicitConstructorInvocation+explicitConstructorInvocationWithVariant :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation+explicitConstructorInvocationWithVariant original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantExplicitConstructorInvocation_Variant :: Typed.TypedName Syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantExplicitConstructorInvocation_Variant =+ Typed.TypedName (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant")++-- | DSL injection for the primary variant of hydra.java.syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantPrimary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the super variant of hydra.java.syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantSuper :: Typed.TypedTerm (Maybe Syntax.ExpressionName) -> Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantSuper x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the this variant of hydra.java.syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantThis :: Typed.TypedTerm Syntax.ExplicitConstructorInvocation_Variant+explicitConstructorInvocation_VariantThis =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "this"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the assignment variant of hydra.java.syntax.Expression+expressionAssignment :: Typed.TypedTerm Syntax.AssignmentExpression -> Typed.TypedTerm Syntax.Expression+expressionAssignment x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "assignment"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.Expression+expressionExpression :: Typed.TypedName Syntax.Expression+expressionExpression = Typed.TypedName (Model.Name "hydra.java.syntax.Expression")++-- | DSL injection for the lambda variant of hydra.java.syntax.Expression+expressionLambda :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.Expression+expressionLambda x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Expression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "lambda"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ExpressionName+expressionName :: Typed.TypedTerm (Maybe Syntax.AmbiguousName) -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ExpressionName+expressionName qualifier identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ExpressionName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm qualifier)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL name token for hydra.java.syntax.ExpressionName+expressionNameExpressionName :: Typed.TypedName Syntax.ExpressionName+expressionNameExpressionName = Typed.TypedName (Model.Name "hydra.java.syntax.ExpressionName")++-- | DSL accessor for the identifier field of hydra.java.syntax.ExpressionName+expressionNameIdentifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.Identifier+expressionNameIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExpressionName"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qualifier field of hydra.java.syntax.ExpressionName+expressionNameQualifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm (Maybe Syntax.AmbiguousName)+expressionNameQualifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExpressionName"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.ExpressionName+expressionNameWithIdentifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ExpressionName+expressionNameWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ExpressionName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExpressionName"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the qualifier field of hydra.java.syntax.ExpressionName+expressionNameWithQualifier :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm (Maybe Syntax.AmbiguousName) -> Typed.TypedTerm Syntax.ExpressionName+expressionNameWithQualifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ExpressionName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ExpressionName"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.ExpressionStatement wrapper+expressionStatement :: Typed.TypedTerm Syntax.StatementExpression -> Typed.TypedTerm Syntax.ExpressionStatement+expressionStatement x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ExpressionStatement"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ExpressionStatement+expressionStatementExpressionStatement :: Typed.TypedName Syntax.ExpressionStatement+expressionStatementExpressionStatement = Typed.TypedName (Model.Name "hydra.java.syntax.ExpressionStatement")++-- | DSL constructor for hydra.java.syntax.FieldAccess+fieldAccess :: Typed.TypedTerm Syntax.FieldAccess_Qualifier -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.FieldAccess+fieldAccess qualifier identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FieldAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm qualifier)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL name token for hydra.java.syntax.FieldAccess+fieldAccessFieldAccess :: Typed.TypedName Syntax.FieldAccess+fieldAccessFieldAccess = Typed.TypedName (Model.Name "hydra.java.syntax.FieldAccess")++-- | DSL accessor for the identifier field of hydra.java.syntax.FieldAccess+fieldAccessIdentifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Identifier+fieldAccessIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qualifier field of hydra.java.syntax.FieldAccess+fieldAccessQualifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.FieldAccess_Qualifier+fieldAccessQualifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.FieldAccess+fieldAccessWithIdentifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.FieldAccess+fieldAccessWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FieldAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the qualifier field of hydra.java.syntax.FieldAccess+fieldAccessWithQualifier :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.FieldAccess_Qualifier -> Typed.TypedTerm Syntax.FieldAccess+fieldAccessWithQualifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FieldAccess"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldAccess"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.FieldAccess_Qualifier+fieldAccess_QualifierFieldAccess_Qualifier :: Typed.TypedName Syntax.FieldAccess_Qualifier+fieldAccess_QualifierFieldAccess_Qualifier = Typed.TypedName (Model.Name "hydra.java.syntax.FieldAccess_Qualifier")++-- | DSL injection for the primary variant of hydra.java.syntax.FieldAccess_Qualifier+fieldAccess_QualifierPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.FieldAccess_Qualifier+fieldAccess_QualifierPrimary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldAccess_Qualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the super variant of hydra.java.syntax.FieldAccess_Qualifier+fieldAccess_QualifierSuper :: Typed.TypedTerm Syntax.FieldAccess_Qualifier+fieldAccess_QualifierSuper =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldAccess_Qualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the typed variant of hydra.java.syntax.FieldAccess_Qualifier+fieldAccess_QualifierTyped :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.FieldAccess_Qualifier+fieldAccess_QualifierTyped x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldAccess_Qualifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "typed"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.FieldDeclaration+fieldDeclaration :: Typed.TypedTerm [Syntax.FieldModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.FieldDeclaration+fieldDeclaration modifiers unannType variableDeclarators =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Typed.unTypedTerm unannType)},+ Model.Field {+ Model.fieldName = (Model.Name "variableDeclarators"),+ Model.fieldTerm = (Typed.unTypedTerm variableDeclarators)}]}))++-- | DSL name token for hydra.java.syntax.FieldDeclaration+fieldDeclarationFieldDeclaration :: Typed.TypedName Syntax.FieldDeclaration+fieldDeclarationFieldDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.FieldDeclaration")++-- | DSL accessor for the modifiers field of hydra.java.syntax.FieldDeclaration+fieldDeclarationModifiers :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.FieldModifier]+fieldDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the unannType field of hydra.java.syntax.FieldDeclaration+fieldDeclarationUnannType :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm Syntax.UnannType+fieldDeclarationUnannType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "unannType")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the variableDeclarators field of hydra.java.syntax.FieldDeclaration+fieldDeclarationVariableDeclarators :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator]+fieldDeclarationVariableDeclarators x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "variableDeclarators")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the modifiers field of hydra.java.syntax.FieldDeclaration+fieldDeclarationWithModifiers :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.FieldModifier] -> Typed.TypedTerm Syntax.FieldDeclaration+fieldDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "unannType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variableDeclarators"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "variableDeclarators")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the unannType field of hydra.java.syntax.FieldDeclaration+fieldDeclarationWithUnannType :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.FieldDeclaration+fieldDeclarationWithUnannType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "variableDeclarators"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "variableDeclarators")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the variableDeclarators field of hydra.java.syntax.FieldDeclaration+fieldDeclarationWithVariableDeclarators :: Typed.TypedTerm Syntax.FieldDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.FieldDeclaration+fieldDeclarationWithVariableDeclarators original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FieldDeclaration"),+ Model.projectionFieldName = (Model.Name "unannType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "variableDeclarators"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the annotation variant of hydra.java.syntax.FieldModifier+fieldModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.FieldModifier+fieldModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.FieldModifier+fieldModifierFieldModifier :: Typed.TypedName Syntax.FieldModifier+fieldModifierFieldModifier = Typed.TypedName (Model.Name "hydra.java.syntax.FieldModifier")++-- | DSL injection for the final variant of hydra.java.syntax.FieldModifier+fieldModifierFinal :: Typed.TypedTerm Syntax.FieldModifier+fieldModifierFinal =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "final"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the private variant of hydra.java.syntax.FieldModifier+fieldModifierPrivate :: Typed.TypedTerm Syntax.FieldModifier+fieldModifierPrivate =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "private"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the protected variant of hydra.java.syntax.FieldModifier+fieldModifierProtected :: Typed.TypedTerm Syntax.FieldModifier+fieldModifierProtected =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "protected"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the public variant of hydra.java.syntax.FieldModifier+fieldModifierPublic :: Typed.TypedTerm Syntax.FieldModifier+fieldModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the static variant of hydra.java.syntax.FieldModifier+fieldModifierStatic :: Typed.TypedTerm Syntax.FieldModifier+fieldModifierStatic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "static"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the transient variant of hydra.java.syntax.FieldModifier+fieldModifierTransient :: Typed.TypedTerm Syntax.FieldModifier+fieldModifierTransient =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "transient"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the volatile variant of hydra.java.syntax.FieldModifier+fieldModifierVolatile :: Typed.TypedTerm Syntax.FieldModifier+fieldModifierVolatile =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FieldModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "volatile"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.Finally wrapper+finally :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.Finally+finally x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.Finally"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Finally+finallyFinally :: Typed.TypedName Syntax.Finally+finallyFinally = Typed.TypedName (Model.Name "hydra.java.syntax.Finally")++-- | DSL constructor for the hydra.java.syntax.FloatingPointLiteral wrapper+floatingPointLiteral :: Typed.TypedTerm Double -> Typed.TypedTerm Syntax.FloatingPointLiteral+floatingPointLiteral x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.FloatingPointLiteral"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.FloatingPointLiteral+floatingPointLiteralFloatingPointLiteral :: Typed.TypedName Syntax.FloatingPointLiteral+floatingPointLiteralFloatingPointLiteral = Typed.TypedName (Model.Name "hydra.java.syntax.FloatingPointLiteral")++-- | DSL injection for the double variant of hydra.java.syntax.FloatingPointType+floatingPointTypeDouble :: Typed.TypedTerm Syntax.FloatingPointType+floatingPointTypeDouble =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FloatingPointType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "double"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the float variant of hydra.java.syntax.FloatingPointType+floatingPointTypeFloat :: Typed.TypedTerm Syntax.FloatingPointType+floatingPointTypeFloat =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FloatingPointType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "float"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.FloatingPointType+floatingPointTypeFloatingPointType :: Typed.TypedName Syntax.FloatingPointType+floatingPointTypeFloatingPointType = Typed.TypedName (Model.Name "hydra.java.syntax.FloatingPointType")++-- | DSL constructor for hydra.java.syntax.ForCond+forCond :: Typed.TypedTerm (Maybe Syntax.ForInit) -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm (Maybe Syntax.ForUpdate) -> Typed.TypedTerm Syntax.ForCond+forCond init cond update =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "init"),+ Model.fieldTerm = (Typed.unTypedTerm init)},+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "update"),+ Model.fieldTerm = (Typed.unTypedTerm update)}]}))++-- | DSL accessor for the cond field of hydra.java.syntax.ForCond+forCondCond :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.Expression)+forCondCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ForCond+forCondForCond :: Typed.TypedName Syntax.ForCond+forCondForCond = Typed.TypedName (Model.Name "hydra.java.syntax.ForCond")++-- | DSL accessor for the init field of hydra.java.syntax.ForCond+forCondInit :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForInit)+forCondInit x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "init")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the update field of hydra.java.syntax.ForCond+forCondUpdate :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForUpdate)+forCondUpdate x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "update")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cond field of hydra.java.syntax.ForCond+forCondWithCond :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ForCond+forCondWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "init"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "init")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "update"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "update")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the init field of hydra.java.syntax.ForCond+forCondWithInit :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForInit) -> Typed.TypedTerm Syntax.ForCond+forCondWithInit original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "init"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "update"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "update")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the update field of hydra.java.syntax.ForCond+forCondWithUpdate :: Typed.TypedTerm Syntax.ForCond -> Typed.TypedTerm (Maybe Syntax.ForUpdate) -> Typed.TypedTerm Syntax.ForCond+forCondWithUpdate original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "init"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "init")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ForCond"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "update"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.ForInit+forInitForInit :: Typed.TypedName Syntax.ForInit+forInitForInit = Typed.TypedName (Model.Name "hydra.java.syntax.ForInit")++-- | DSL injection for the localVariable variant of hydra.java.syntax.ForInit+forInitLocalVariable :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.ForInit+forInitLocalVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ForInit"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "localVariable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the statements variant of hydra.java.syntax.ForInit+forInitStatements :: Typed.TypedTerm [Syntax.StatementExpression] -> Typed.TypedTerm Syntax.ForInit+forInitStatements x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ForInit"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "statements"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the basic variant of hydra.java.syntax.ForStatement+forStatementBasic :: Typed.TypedTerm Syntax.BasicForStatement -> Typed.TypedTerm Syntax.ForStatement+forStatementBasic x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ForStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "basic"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the enhanced variant of hydra.java.syntax.ForStatement+forStatementEnhanced :: Typed.TypedTerm Syntax.EnhancedForStatement -> Typed.TypedTerm Syntax.ForStatement+forStatementEnhanced x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ForStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "enhanced"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ForStatement+forStatementForStatement :: Typed.TypedName Syntax.ForStatement+forStatementForStatement = Typed.TypedName (Model.Name "hydra.java.syntax.ForStatement")++-- | DSL injection for the basic variant of hydra.java.syntax.ForStatementNoShortIf+forStatementNoShortIfBasic :: Typed.TypedTerm Syntax.BasicForStatementNoShortIf -> Typed.TypedTerm Syntax.ForStatementNoShortIf+forStatementNoShortIfBasic x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ForStatementNoShortIf"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "basic"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the enhanced variant of hydra.java.syntax.ForStatementNoShortIf+forStatementNoShortIfEnhanced :: Typed.TypedTerm Syntax.EnhancedForStatementNoShortIf -> Typed.TypedTerm Syntax.ForStatementNoShortIf+forStatementNoShortIfEnhanced x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ForStatementNoShortIf"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "enhanced"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ForStatementNoShortIf+forStatementNoShortIfForStatementNoShortIf :: Typed.TypedName Syntax.ForStatementNoShortIf+forStatementNoShortIfForStatementNoShortIf = Typed.TypedName (Model.Name "hydra.java.syntax.ForStatementNoShortIf")++-- | DSL constructor for the hydra.java.syntax.ForUpdate wrapper+forUpdate :: Typed.TypedTerm [Syntax.StatementExpression] -> Typed.TypedTerm Syntax.ForUpdate+forUpdate x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ForUpdate"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ForUpdate+forUpdateForUpdate :: Typed.TypedName Syntax.ForUpdate+forUpdateForUpdate = Typed.TypedName (Model.Name "hydra.java.syntax.ForUpdate")++-- | DSL name token for hydra.java.syntax.FormalParameter+formalParameterFormalParameter :: Typed.TypedName Syntax.FormalParameter+formalParameterFormalParameter = Typed.TypedName (Model.Name "hydra.java.syntax.FormalParameter")++-- | DSL injection for the simple variant of hydra.java.syntax.FormalParameter+formalParameterSimple :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.FormalParameter+formalParameterSimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the variableArity variant of hydra.java.syntax.FormalParameter+formalParameterVariableArity :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.FormalParameter+formalParameterVariableArity x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variableArity"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.FormalParameter_Simple+formalParameter_Simple :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.FormalParameter_Simple+formalParameter_Simple modifiers type_ id =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm id)}]}))++-- | DSL name token for hydra.java.syntax.FormalParameter_Simple+formalParameter_SimpleFormalParameter_Simple :: Typed.TypedName Syntax.FormalParameter_Simple+formalParameter_SimpleFormalParameter_Simple = Typed.TypedName (Model.Name "hydra.java.syntax.FormalParameter_Simple")++-- | DSL accessor for the id field of hydra.java.syntax.FormalParameter_Simple+formalParameter_SimpleId :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.VariableDeclaratorId+formalParameter_SimpleId x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.FormalParameter_Simple+formalParameter_SimpleModifiers :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm [Syntax.VariableModifier]+formalParameter_SimpleModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.FormalParameter_Simple+formalParameter_SimpleType :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.UnannType+formalParameter_SimpleType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the id field of hydra.java.syntax.FormalParameter_Simple+formalParameter_SimpleWithId :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.FormalParameter_Simple+formalParameter_SimpleWithId original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.FormalParameter_Simple+formalParameter_SimpleWithModifiers :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.FormalParameter_Simple+formalParameter_SimpleWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.FormalParameter_Simple+formalParameter_SimpleWithType :: Typed.TypedTerm Syntax.FormalParameter_Simple -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.FormalParameter_Simple+formalParameter_SimpleWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.FormalParameter_Simple"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.Guard wrapper+guard :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Guard+guard x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.Guard"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Guard+guardGuard :: Typed.TypedName Syntax.Guard+guardGuard = Typed.TypedName (Model.Name "hydra.java.syntax.Guard")++-- | DSL constructor for the hydra.java.syntax.Identifier wrapper+identifier :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Identifier+identifier x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.Identifier"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Identifier+identifierIdentifier :: Typed.TypedName Syntax.Identifier+identifierIdentifier = Typed.TypedName (Model.Name "hydra.java.syntax.Identifier")++-- | DSL constructor for hydra.java.syntax.IfThenElseStatement+ifThenElseStatement :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenElseStatement+ifThenElseStatement cond then_ else_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Typed.unTypedTerm then_)},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Typed.unTypedTerm else_)}]}))++-- | DSL accessor for the cond field of hydra.java.syntax.IfThenElseStatement+ifThenElseStatementCond :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm (Maybe Syntax.Expression)+ifThenElseStatementCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the else field of hydra.java.syntax.IfThenElseStatement+ifThenElseStatementElse :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.Statement+ifThenElseStatementElse x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.IfThenElseStatement+ifThenElseStatementIfThenElseStatement :: Typed.TypedName Syntax.IfThenElseStatement+ifThenElseStatementIfThenElseStatement = Typed.TypedName (Model.Name "hydra.java.syntax.IfThenElseStatement")++-- | DSL constructor for hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIf :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIf cond then_ else_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Typed.unTypedTerm then_)},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Typed.unTypedTerm else_)}]}))++-- | DSL accessor for the cond field of hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfCond :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression)+ifThenElseStatementNoShortIfCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the else field of hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfElse :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+ifThenElseStatementNoShortIfElse x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfIfThenElseStatementNoShortIf :: Typed.TypedName Syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfIfThenElseStatementNoShortIf =+ Typed.TypedName (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf")++-- | DSL accessor for the then field of hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfThen :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+ifThenElseStatementNoShortIfThen x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cond field of hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the else field of hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfWithElse :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfWithElse original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the then field of hydra.java.syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfWithThen :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf+ifThenElseStatementNoShortIfWithThen original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL accessor for the then field of hydra.java.syntax.IfThenElseStatement+ifThenElseStatementThen :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.StatementNoShortIf+ifThenElseStatementThen x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cond field of hydra.java.syntax.IfThenElseStatement+ifThenElseStatementWithCond :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.IfThenElseStatement+ifThenElseStatementWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the else field of hydra.java.syntax.IfThenElseStatement+ifThenElseStatementWithElse :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenElseStatement+ifThenElseStatementWithElse original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "then")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the then field of hydra.java.syntax.IfThenElseStatement+ifThenElseStatementWithThen :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.IfThenElseStatement+ifThenElseStatementWithThen original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "then"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "else"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenElseStatement"),+ Model.projectionFieldName = (Model.Name "else")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.IfThenStatement+ifThenStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenStatement+ifThenStatement expression statement =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Typed.unTypedTerm statement)}]}))++-- | DSL accessor for the expression field of hydra.java.syntax.IfThenStatement+ifThenStatementExpression :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Expression+ifThenStatementExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenStatement"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.IfThenStatement+ifThenStatementIfThenStatement :: Typed.TypedName Syntax.IfThenStatement+ifThenStatementIfThenStatement = Typed.TypedName (Model.Name "hydra.java.syntax.IfThenStatement")++-- | DSL accessor for the statement field of hydra.java.syntax.IfThenStatement+ifThenStatementStatement :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Statement+ifThenStatementStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenStatement"),+ Model.projectionFieldName = (Model.Name "statement")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expression field of hydra.java.syntax.IfThenStatement+ifThenStatementWithExpression :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.IfThenStatement+ifThenStatementWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenStatement"),+ Model.projectionFieldName = (Model.Name "statement")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the statement field of hydra.java.syntax.IfThenStatement+ifThenStatementWithStatement :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.IfThenStatement+ifThenStatementWithStatement original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.IfThenStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.IfThenStatement"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.ImportDeclaration+importDeclarationImportDeclaration :: Typed.TypedName Syntax.ImportDeclaration+importDeclarationImportDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.ImportDeclaration")++-- | DSL injection for the singleStaticImport variant of hydra.java.syntax.ImportDeclaration+importDeclarationSingleStaticImport :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration+importDeclarationSingleStaticImport x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ImportDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "singleStaticImport"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the singleType variant of hydra.java.syntax.ImportDeclaration+importDeclarationSingleType :: Typed.TypedTerm Syntax.SingleTypeImportDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration+importDeclarationSingleType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ImportDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "singleType"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the staticImportOnDemand variant of hydra.java.syntax.ImportDeclaration+importDeclarationStaticImportOnDemand :: Typed.TypedTerm Syntax.StaticImportOnDemandDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration+importDeclarationStaticImportOnDemand x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ImportDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "staticImportOnDemand"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the typeImportOnDemand variant of hydra.java.syntax.ImportDeclaration+importDeclarationTypeImportOnDemand :: Typed.TypedTerm Syntax.TypeImportOnDemandDeclaration -> Typed.TypedTerm Syntax.ImportDeclaration+importDeclarationTypeImportOnDemand x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ImportDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "typeImportOnDemand"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.InclusiveOrExpression wrapper+inclusiveOrExpression :: Typed.TypedTerm [Syntax.ExclusiveOrExpression] -> Typed.TypedTerm Syntax.InclusiveOrExpression+inclusiveOrExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.InclusiveOrExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.InclusiveOrExpression+inclusiveOrExpressionInclusiveOrExpression :: Typed.TypedName Syntax.InclusiveOrExpression+inclusiveOrExpressionInclusiveOrExpression = Typed.TypedName (Model.Name "hydra.java.syntax.InclusiveOrExpression")++-- | DSL constructor for the hydra.java.syntax.InstanceInitializer wrapper+instanceInitializer :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.InstanceInitializer+instanceInitializer x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.InstanceInitializer"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.InstanceInitializer+instanceInitializerInstanceInitializer :: Typed.TypedName Syntax.InstanceInitializer+instanceInitializerInstanceInitializer = Typed.TypedName (Model.Name "hydra.java.syntax.InstanceInitializer")++-- | DSL constructor for hydra.java.syntax.InstanceofExpression+instanceofExpression :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs -> Typed.TypedTerm Syntax.InstanceofExpression+instanceofExpression lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL name token for hydra.java.syntax.InstanceofExpression+instanceofExpressionInstanceofExpression :: Typed.TypedName Syntax.InstanceofExpression+instanceofExpressionInstanceofExpression = Typed.TypedName (Model.Name "hydra.java.syntax.InstanceofExpression")++-- | DSL accessor for the lhs field of hydra.java.syntax.InstanceofExpression+instanceofExpressionLhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.RelationalExpression+instanceofExpressionLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.java.syntax.InstanceofExpression+instanceofExpressionRhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs+instanceofExpressionRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.InstanceofExpression+instanceofExpressionWithLhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.InstanceofExpression+instanceofExpressionWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.InstanceofExpression+instanceofExpressionWithRhs :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs -> Typed.TypedTerm Syntax.InstanceofExpression+instanceofExpressionWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.InstanceofExpression_Rhs+instanceofExpression_RhsInstanceofExpression_Rhs :: Typed.TypedName Syntax.InstanceofExpression_Rhs+instanceofExpression_RhsInstanceofExpression_Rhs =+ Typed.TypedName (Model.Name "hydra.java.syntax.InstanceofExpression_Rhs")++-- | DSL injection for the pattern variant of hydra.java.syntax.InstanceofExpression_Rhs+instanceofExpression_RhsPattern :: Typed.TypedTerm Syntax.Pattern -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs+instanceofExpression_RhsPattern x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression_Rhs"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "pattern"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the referenceType variant of hydra.java.syntax.InstanceofExpression_Rhs+instanceofExpression_RhsReferenceType :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.InstanceofExpression_Rhs+instanceofExpression_RhsReferenceType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InstanceofExpression_Rhs"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "referenceType"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.IntegerLiteral wrapper+integerLiteral :: Typed.TypedTerm Integer -> Typed.TypedTerm Syntax.IntegerLiteral+integerLiteral x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.IntegerLiteral"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.IntegerLiteral+integerLiteralIntegerLiteral :: Typed.TypedName Syntax.IntegerLiteral+integerLiteralIntegerLiteral = Typed.TypedName (Model.Name "hydra.java.syntax.IntegerLiteral")++-- | DSL injection for the byte variant of hydra.java.syntax.IntegralType+integralTypeByte :: Typed.TypedTerm Syntax.IntegralType+integralTypeByte =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.IntegralType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "byte"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the char variant of hydra.java.syntax.IntegralType+integralTypeChar :: Typed.TypedTerm Syntax.IntegralType+integralTypeChar =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.IntegralType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "char"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the int variant of hydra.java.syntax.IntegralType+integralTypeInt :: Typed.TypedTerm Syntax.IntegralType+integralTypeInt =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.IntegralType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "int"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.IntegralType+integralTypeIntegralType :: Typed.TypedName Syntax.IntegralType+integralTypeIntegralType = Typed.TypedName (Model.Name "hydra.java.syntax.IntegralType")++-- | DSL injection for the long variant of hydra.java.syntax.IntegralType+integralTypeLong :: Typed.TypedTerm Syntax.IntegralType+integralTypeLong =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.IntegralType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "long"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the short variant of hydra.java.syntax.IntegralType+integralTypeShort :: Typed.TypedTerm Syntax.IntegralType+integralTypeShort =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.IntegralType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "short"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.InterfaceBody wrapper+interfaceBody :: Typed.TypedTerm [Syntax.InterfaceMemberDeclarationWithComments] -> Typed.TypedTerm Syntax.InterfaceBody+interfaceBody x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.InterfaceBody"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.InterfaceBody+interfaceBodyInterfaceBody :: Typed.TypedName Syntax.InterfaceBody+interfaceBodyInterfaceBody = Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceBody")++-- | DSL injection for the annotationInterface variant of hydra.java.syntax.InterfaceDeclaration+interfaceDeclarationAnnotationInterface :: Typed.TypedTerm Syntax.AnnotationInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceDeclaration+interfaceDeclarationAnnotationInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotationInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.InterfaceDeclaration+interfaceDeclarationInterfaceDeclaration :: Typed.TypedName Syntax.InterfaceDeclaration+interfaceDeclarationInterfaceDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceDeclaration")++-- | DSL injection for the normalInterface variant of hydra.java.syntax.InterfaceDeclaration+interfaceDeclarationNormalInterface :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceDeclaration+interfaceDeclarationNormalInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "normalInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the class variant of hydra.java.syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationClass x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "class"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the constant variant of hydra.java.syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationConstant :: Typed.TypedTerm Syntax.ConstantDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationConstant x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "constant"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the interface variant of hydra.java.syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "interface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationInterfaceMemberDeclaration :: Typed.TypedName Syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationInterfaceMemberDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceMemberDeclaration")++-- | DSL injection for the interfaceMethod variant of hydra.java.syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationInterfaceMethod :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationInterfaceMethod x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "interfaceMethod"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithComments :: Typed.TypedTerm Syntax.InterfaceMemberDeclaration -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithComments value comments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Typed.unTypedTerm comments)}]}))++-- | DSL accessor for the comments field of hydra.java.syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsComments :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm (Maybe String)+interfaceMemberDeclarationWithCommentsComments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "comments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsInterfaceMemberDeclarationWithComments :: Typed.TypedName Syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsInterfaceMemberDeclarationWithComments =+ Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments")++-- | DSL accessor for the value field of hydra.java.syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsValue :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration+interfaceMemberDeclarationWithCommentsValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the comments field of hydra.java.syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsWithComments :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsWithComments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the value field of hydra.java.syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsWithValue :: Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments -> Typed.TypedTerm Syntax.InterfaceMemberDeclaration -> Typed.TypedTerm Syntax.InterfaceMemberDeclarationWithComments+interfaceMemberDeclarationWithCommentsWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "comments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclaration :: Typed.TypedTerm [Syntax.InterfaceMethodModifier] -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration+interfaceMethodDeclaration modifiers header body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm header)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationBody :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodBody+interfaceMethodDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the header field of hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationHeader :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader+interfaceMethodDeclarationHeader x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationInterfaceMethodDeclaration :: Typed.TypedName Syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationInterfaceMethodDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration")++-- | DSL accessor for the modifiers field of hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationModifiers :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm [Syntax.InterfaceMethodModifier]+interfaceMethodDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationWithBody :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the header field of hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationWithHeader :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationWithHeader original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationWithModifiers :: Typed.TypedTerm Syntax.InterfaceMethodDeclaration -> Typed.TypedTerm [Syntax.InterfaceMethodModifier] -> Typed.TypedTerm Syntax.InterfaceMethodDeclaration+interfaceMethodDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the abstract variant of hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierAbstract :: Typed.TypedTerm Syntax.InterfaceMethodModifier+interfaceMethodModifierAbstract =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "abstract"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the annotation variant of hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.InterfaceMethodModifier+interfaceMethodModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the default variant of hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierDefault :: Typed.TypedTerm Syntax.InterfaceMethodModifier+interfaceMethodModifierDefault =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierInterfaceMethodModifier :: Typed.TypedName Syntax.InterfaceMethodModifier+interfaceMethodModifierInterfaceMethodModifier = Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceMethodModifier")++-- | DSL injection for the private variant of hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierPrivate :: Typed.TypedTerm Syntax.InterfaceMethodModifier+interfaceMethodModifierPrivate =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "private"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the public variant of hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierPublic :: Typed.TypedTerm Syntax.InterfaceMethodModifier+interfaceMethodModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the static variant of hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierStatic :: Typed.TypedTerm Syntax.InterfaceMethodModifier+interfaceMethodModifierStatic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "static"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the strictfp variant of hydra.java.syntax.InterfaceMethodModifier+interfaceMethodModifierStrictfp :: Typed.TypedTerm Syntax.InterfaceMethodModifier+interfaceMethodModifierStrictfp =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceMethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "strictfp"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the abstract variant of hydra.java.syntax.InterfaceModifier+interfaceModifierAbstract :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierAbstract =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "abstract"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the annotation variant of hydra.java.syntax.InterfaceModifier+interfaceModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.InterfaceModifier+interfaceModifierInterfaceModifier :: Typed.TypedName Syntax.InterfaceModifier+interfaceModifierInterfaceModifier = Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceModifier")++-- | DSL injection for the nonSealed variant of hydra.java.syntax.InterfaceModifier+interfaceModifierNonSealed :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierNonSealed =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "nonSealed"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the private variant of hydra.java.syntax.InterfaceModifier+interfaceModifierPrivate :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierPrivate =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "private"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the protected variant of hydra.java.syntax.InterfaceModifier+interfaceModifierProtected :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierProtected =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "protected"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the public variant of hydra.java.syntax.InterfaceModifier+interfaceModifierPublic :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the sealed variant of hydra.java.syntax.InterfaceModifier+interfaceModifierSealed :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierSealed =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "sealed"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the static variant of hydra.java.syntax.InterfaceModifier+interfaceModifierStatic :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierStatic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "static"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the strictfp variant of hydra.java.syntax.InterfaceModifier+interfaceModifierStrictfp :: Typed.TypedTerm Syntax.InterfaceModifier+interfaceModifierStrictfp =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.InterfaceModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "strictfp"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.InterfaceType wrapper+interfaceType :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.InterfaceType+interfaceType x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.InterfaceType"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.InterfaceType+interfaceTypeInterfaceType :: Typed.TypedName Syntax.InterfaceType+interfaceTypeInterfaceType = Typed.TypedName (Model.Name "hydra.java.syntax.InterfaceType")++-- | DSL constructor for hydra.java.syntax.LabeledStatement+labeledStatement :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.LabeledStatement+labeledStatement identifier statement =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LabeledStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Typed.unTypedTerm statement)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.LabeledStatement+labeledStatementIdentifier :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Identifier+labeledStatementIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatement"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.LabeledStatement+labeledStatementLabeledStatement :: Typed.TypedName Syntax.LabeledStatement+labeledStatementLabeledStatement = Typed.TypedName (Model.Name "hydra.java.syntax.LabeledStatement")++-- | DSL constructor for hydra.java.syntax.LabeledStatementNoShortIf+labeledStatementNoShortIf :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.LabeledStatementNoShortIf+labeledStatementNoShortIf identifier statement =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Typed.unTypedTerm statement)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfIdentifier :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.Identifier+labeledStatementNoShortIfIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfLabeledStatementNoShortIf :: Typed.TypedName Syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfLabeledStatementNoShortIf =+ Typed.TypedName (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf")++-- | DSL accessor for the statement field of hydra.java.syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfStatement :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+labeledStatementNoShortIfStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "statement")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfWithIdentifier :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "statement")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the statement field of hydra.java.syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfWithStatement :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.LabeledStatementNoShortIf+labeledStatementNoShortIfWithStatement original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the statement field of hydra.java.syntax.LabeledStatement+labeledStatementStatement :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Statement+labeledStatementStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatement"),+ Model.projectionFieldName = (Model.Name "statement")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.LabeledStatement+labeledStatementWithIdentifier :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.LabeledStatement+labeledStatementWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LabeledStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatement"),+ Model.projectionFieldName = (Model.Name "statement")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the statement field of hydra.java.syntax.LabeledStatement+labeledStatementWithStatement :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.LabeledStatement+labeledStatementWithStatement original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LabeledStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LabeledStatement"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "statement"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the block variant of hydra.java.syntax.LambdaBody+lambdaBodyBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.LambdaBody+lambdaBodyBlock x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaBody"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the expression variant of hydra.java.syntax.LambdaBody+lambdaBodyExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.LambdaBody+lambdaBodyExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaBody"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.LambdaBody+lambdaBodyLambdaBody :: Typed.TypedName Syntax.LambdaBody+lambdaBodyLambdaBody = Typed.TypedName (Model.Name "hydra.java.syntax.LambdaBody")++-- | DSL constructor for hydra.java.syntax.LambdaExpression+lambdaExpression :: Typed.TypedTerm Syntax.LambdaParameters -> Typed.TypedTerm Syntax.LambdaBody -> Typed.TypedTerm Syntax.LambdaExpression+lambdaExpression parameters body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LambdaExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm parameters)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.LambdaExpression+lambdaExpressionBody :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaBody+lambdaExpressionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.LambdaExpression+lambdaExpressionLambdaExpression :: Typed.TypedName Syntax.LambdaExpression+lambdaExpressionLambdaExpression = Typed.TypedName (Model.Name "hydra.java.syntax.LambdaExpression")++-- | DSL accessor for the parameters field of hydra.java.syntax.LambdaExpression+lambdaExpressionParameters :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaParameters+lambdaExpressionParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaExpression"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.LambdaExpression+lambdaExpressionWithBody :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaBody -> Typed.TypedTerm Syntax.LambdaExpression+lambdaExpressionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LambdaExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaExpression"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the parameters field of hydra.java.syntax.LambdaExpression+lambdaExpressionWithParameters :: Typed.TypedTerm Syntax.LambdaExpression -> Typed.TypedTerm Syntax.LambdaParameters -> Typed.TypedTerm Syntax.LambdaExpression+lambdaExpressionWithParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LambdaExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.LambdaParameter+lambdaParameterLambdaParameter :: Typed.TypedName Syntax.LambdaParameter+lambdaParameterLambdaParameter = Typed.TypedName (Model.Name "hydra.java.syntax.LambdaParameter")++-- | DSL injection for the normal variant of hydra.java.syntax.LambdaParameter+lambdaParameterNormal :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.LambdaParameter+lambdaParameterNormal x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "normal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.LambdaParameterType+lambdaParameterTypeLambdaParameterType :: Typed.TypedName Syntax.LambdaParameterType+lambdaParameterTypeLambdaParameterType = Typed.TypedName (Model.Name "hydra.java.syntax.LambdaParameterType")++-- | DSL injection for the type variant of hydra.java.syntax.LambdaParameterType+lambdaParameterTypeType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.LambdaParameterType+lambdaParameterTypeType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameterType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the var variant of hydra.java.syntax.LambdaParameterType+lambdaParameterTypeVar :: Typed.TypedTerm Syntax.LambdaParameterType+lambdaParameterTypeVar =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameterType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "var"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the variableArity variant of hydra.java.syntax.LambdaParameter+lambdaParameterVariableArity :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.LambdaParameter+lambdaParameterVariableArity x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variableArity"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_Normal :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LambdaParameterType -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.LambdaParameter_Normal+lambdaParameter_Normal modifiers type_ id =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm id)}]}))++-- | DSL accessor for the id field of hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_NormalId :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.VariableDeclaratorId+lambdaParameter_NormalId x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_NormalLambdaParameter_Normal :: Typed.TypedName Syntax.LambdaParameter_Normal+lambdaParameter_NormalLambdaParameter_Normal = Typed.TypedName (Model.Name "hydra.java.syntax.LambdaParameter_Normal")++-- | DSL accessor for the modifiers field of hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_NormalModifiers :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm [Syntax.VariableModifier]+lambdaParameter_NormalModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_NormalType :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.LambdaParameterType+lambdaParameter_NormalType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the id field of hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_NormalWithId :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.LambdaParameter_Normal+lambdaParameter_NormalWithId original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_NormalWithModifiers :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LambdaParameter_Normal+lambdaParameter_NormalWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.LambdaParameter_Normal+lambdaParameter_NormalWithType :: Typed.TypedTerm Syntax.LambdaParameter_Normal -> Typed.TypedTerm Syntax.LambdaParameterType -> Typed.TypedTerm Syntax.LambdaParameter_Normal+lambdaParameter_NormalWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameter_Normal"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.LambdaParameters+lambdaParametersLambdaParameters :: Typed.TypedName Syntax.LambdaParameters+lambdaParametersLambdaParameters = Typed.TypedName (Model.Name "hydra.java.syntax.LambdaParameters")++-- | DSL injection for the single variant of hydra.java.syntax.LambdaParameters+lambdaParametersSingle :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.LambdaParameters+lambdaParametersSingle x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameters"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "single"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the tuple variant of hydra.java.syntax.LambdaParameters+lambdaParametersTuple :: Typed.TypedTerm [Syntax.LambdaParameters] -> Typed.TypedTerm Syntax.LambdaParameters+lambdaParametersTuple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LambdaParameters"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "tuple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the arrayAccess variant of hydra.java.syntax.LeftHandSide+leftHandSideArrayAccess :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.LeftHandSide+leftHandSideArrayAccess x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LeftHandSide"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "arrayAccess"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the expressionName variant of hydra.java.syntax.LeftHandSide+leftHandSideExpressionName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.LeftHandSide+leftHandSideExpressionName x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LeftHandSide"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expressionName"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the fieldAccess variant of hydra.java.syntax.LeftHandSide+leftHandSideFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.LeftHandSide+leftHandSideFieldAccess x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LeftHandSide"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "fieldAccess"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.LeftHandSide+leftHandSideLeftHandSide :: Typed.TypedName Syntax.LeftHandSide+leftHandSideLeftHandSide = Typed.TypedName (Model.Name "hydra.java.syntax.LeftHandSide")++-- | DSL injection for the boolean variant of hydra.java.syntax.Literal+literalBoolean :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.Literal+literalBoolean x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "boolean"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the character variant of hydra.java.syntax.Literal+literalCharacter :: Typed.TypedTerm Int -> Typed.TypedTerm Syntax.Literal+literalCharacter x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "character"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the floatingPoint variant of hydra.java.syntax.Literal+literalFloatingPoint :: Typed.TypedTerm Syntax.FloatingPointLiteral -> Typed.TypedTerm Syntax.Literal+literalFloatingPoint x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "floatingPoint"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the integer variant of hydra.java.syntax.Literal+literalInteger :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Syntax.Literal+literalInteger x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "integer"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.Literal+literalLiteral :: Typed.TypedName Syntax.Literal+literalLiteral = Typed.TypedName (Model.Name "hydra.java.syntax.Literal")++-- | DSL injection for the null variant of hydra.java.syntax.Literal+literalNull :: Typed.TypedTerm Syntax.Literal+literalNull =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "null"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the string variant of hydra.java.syntax.Literal+literalString :: Typed.TypedTerm Syntax.StringLiteral -> Typed.TypedTerm Syntax.Literal+literalString x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "string"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the textBlock variant of hydra.java.syntax.Literal+literalTextBlock :: Typed.TypedTerm Syntax.TextBlock -> Typed.TypedTerm Syntax.Literal+literalTextBlock x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Literal"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "textBlock"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the class variant of hydra.java.syntax.LocalClassOrInterfaceDeclaration+localClassOrInterfaceDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.LocalClassOrInterfaceDeclaration+localClassOrInterfaceDeclarationClass x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "class"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.LocalClassOrInterfaceDeclaration+localClassOrInterfaceDeclarationLocalClassOrInterfaceDeclaration :: Typed.TypedName Syntax.LocalClassOrInterfaceDeclaration+localClassOrInterfaceDeclarationLocalClassOrInterfaceDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration")++-- | DSL injection for the normalInterface variant of hydra.java.syntax.LocalClassOrInterfaceDeclaration+localClassOrInterfaceDeclarationNormalInterface :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.LocalClassOrInterfaceDeclaration+localClassOrInterfaceDeclarationNormalInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "normalInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.LocalVariableDeclaration+localVariableDeclaration :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.LocalVariableDeclaration+localVariableDeclaration modifiers type_ declarators =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "declarators"),+ Model.fieldTerm = (Typed.unTypedTerm declarators)}]}))++-- | DSL accessor for the declarators field of hydra.java.syntax.LocalVariableDeclaration+localVariableDeclarationDeclarators :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator]+localVariableDeclarationDeclarators x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "declarators")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.LocalVariableDeclaration+localVariableDeclarationLocalVariableDeclaration :: Typed.TypedName Syntax.LocalVariableDeclaration+localVariableDeclarationLocalVariableDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.LocalVariableDeclaration")++-- | DSL accessor for the modifiers field of hydra.java.syntax.LocalVariableDeclaration+localVariableDeclarationModifiers :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableModifier]+localVariableDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for the hydra.java.syntax.LocalVariableDeclarationStatement wrapper+localVariableDeclarationStatement :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.LocalVariableDeclarationStatement+localVariableDeclarationStatement x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclarationStatement"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.LocalVariableDeclarationStatement+localVariableDeclarationStatementLocalVariableDeclarationStatement :: Typed.TypedName Syntax.LocalVariableDeclarationStatement+localVariableDeclarationStatementLocalVariableDeclarationStatement =+ Typed.TypedName (Model.Name "hydra.java.syntax.LocalVariableDeclarationStatement")++-- | DSL accessor for the type field of hydra.java.syntax.LocalVariableDeclaration+localVariableDeclarationType :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.LocalVariableType+localVariableDeclarationType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the declarators field of hydra.java.syntax.LocalVariableDeclaration+localVariableDeclarationWithDeclarators :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableDeclarator] -> Typed.TypedTerm Syntax.LocalVariableDeclaration+localVariableDeclarationWithDeclarators original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "declarators"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.LocalVariableDeclaration+localVariableDeclarationWithModifiers :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LocalVariableDeclaration+localVariableDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "declarators"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "declarators")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.LocalVariableDeclaration+localVariableDeclarationWithType :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm Syntax.LocalVariableDeclaration+localVariableDeclarationWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "declarators"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableDeclaration"),+ Model.projectionFieldName = (Model.Name "declarators")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.LocalVariableType+localVariableTypeLocalVariableType :: Typed.TypedName Syntax.LocalVariableType+localVariableTypeLocalVariableType = Typed.TypedName (Model.Name "hydra.java.syntax.LocalVariableType")++-- | DSL injection for the type variant of hydra.java.syntax.LocalVariableType+localVariableTypeType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.LocalVariableType+localVariableTypeType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the var variant of hydra.java.syntax.LocalVariableType+localVariableTypeVar :: Typed.TypedTerm Syntax.LocalVariableType+localVariableTypeVar =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.LocalVariableType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "var"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.MarkerAnnotation wrapper+markerAnnotation :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.MarkerAnnotation+markerAnnotation x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.MarkerAnnotation"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MarkerAnnotation+markerAnnotationMarkerAnnotation :: Typed.TypedName Syntax.MarkerAnnotation+markerAnnotationMarkerAnnotation = Typed.TypedName (Model.Name "hydra.java.syntax.MarkerAnnotation")++-- | DSL injection for the block variant of hydra.java.syntax.MethodBody+methodBodyBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.MethodBody+methodBodyBlock x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodBody"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.MethodBody+methodBodyMethodBody :: Typed.TypedName Syntax.MethodBody+methodBodyMethodBody = Typed.TypedName (Model.Name "hydra.java.syntax.MethodBody")++-- | DSL injection for the none variant of hydra.java.syntax.MethodBody+methodBodyNone :: Typed.TypedTerm Syntax.MethodBody+methodBodyNone =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodBody"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "none"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.java.syntax.MethodDeclaration+methodDeclaration :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm [Syntax.MethodModifier] -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.MethodDeclaration+methodDeclaration annotations modifiers header body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm header)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.MethodDeclaration+methodDeclarationAnnotations :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.Annotation]+methodDeclarationAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body field of hydra.java.syntax.MethodDeclaration+methodDeclarationBody :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodBody+methodDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the header field of hydra.java.syntax.MethodDeclaration+methodDeclarationHeader :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader+methodDeclarationHeader x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodDeclaration+methodDeclarationMethodDeclaration :: Typed.TypedName Syntax.MethodDeclaration+methodDeclarationMethodDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.MethodDeclaration")++-- | DSL accessor for the modifiers field of hydra.java.syntax.MethodDeclaration+methodDeclarationModifiers :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.MethodModifier]+methodDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annotations field of hydra.java.syntax.MethodDeclaration+methodDeclarationWithAnnotations :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.MethodDeclaration+methodDeclarationWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the body field of hydra.java.syntax.MethodDeclaration+methodDeclarationWithBody :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodBody -> Typed.TypedTerm Syntax.MethodDeclaration+methodDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the header field of hydra.java.syntax.MethodDeclaration+methodDeclarationWithHeader :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodDeclaration+methodDeclarationWithHeader original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.MethodDeclaration+methodDeclarationWithModifiers :: Typed.TypedTerm Syntax.MethodDeclaration -> Typed.TypedTerm [Syntax.MethodModifier] -> Typed.TypedTerm Syntax.MethodDeclaration+methodDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.MethodDeclarator+methodDeclarator :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.MethodDeclarator+methodDeclarator identifier receiverParameter formalParameters =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Typed.unTypedTerm receiverParameter)},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Typed.unTypedTerm formalParameters)}]}))++-- | DSL accessor for the formalParameters field of hydra.java.syntax.MethodDeclarator+methodDeclaratorFormalParameters :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm [Syntax.FormalParameter]+methodDeclaratorFormalParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "formalParameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.MethodDeclarator+methodDeclaratorIdentifier :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm Syntax.Identifier+methodDeclaratorIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodDeclarator+methodDeclaratorMethodDeclarator :: Typed.TypedName Syntax.MethodDeclarator+methodDeclaratorMethodDeclarator = Typed.TypedName (Model.Name "hydra.java.syntax.MethodDeclarator")++-- | DSL accessor for the receiverParameter field of hydra.java.syntax.MethodDeclarator+methodDeclaratorReceiverParameter :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter)+methodDeclaratorReceiverParameter x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "receiverParameter")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the formalParameters field of hydra.java.syntax.MethodDeclarator+methodDeclaratorWithFormalParameters :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm [Syntax.FormalParameter] -> Typed.TypedTerm Syntax.MethodDeclarator+methodDeclaratorWithFormalParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "receiverParameter")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.MethodDeclarator+methodDeclaratorWithIdentifier :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodDeclarator+methodDeclaratorWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "receiverParameter")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "formalParameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the receiverParameter field of hydra.java.syntax.MethodDeclarator+methodDeclaratorWithReceiverParameter :: Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm (Maybe Syntax.ReceiverParameter) -> Typed.TypedTerm Syntax.MethodDeclarator+methodDeclaratorWithReceiverParameter original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "receiverParameter"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "formalParameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodDeclarator"),+ Model.projectionFieldName = (Model.Name "formalParameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.MethodHeader+methodHeader :: Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.Result -> Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.MethodHeader+methodHeader parameters result declarator throws =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm parameters)},+ Model.Field {+ Model.fieldName = (Model.Name "result"),+ Model.fieldTerm = (Typed.unTypedTerm result)},+ Model.Field {+ Model.fieldName = (Model.Name "declarator"),+ Model.fieldTerm = (Typed.unTypedTerm declarator)},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Typed.unTypedTerm throws)}]}))++-- | DSL accessor for the declarator field of hydra.java.syntax.MethodHeader+methodHeaderDeclarator :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodDeclarator+methodHeaderDeclarator x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "declarator")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodHeader+methodHeaderMethodHeader :: Typed.TypedName Syntax.MethodHeader+methodHeaderMethodHeader = Typed.TypedName (Model.Name "hydra.java.syntax.MethodHeader")++-- | DSL accessor for the parameters field of hydra.java.syntax.MethodHeader+methodHeaderParameters :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm [Syntax.TypeParameter]+methodHeaderParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the result field of hydra.java.syntax.MethodHeader+methodHeaderResult :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.Result+methodHeaderResult x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "result")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the throws field of hydra.java.syntax.MethodHeader+methodHeaderThrows :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm (Maybe Syntax.Throws)+methodHeaderThrows x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the declarator field of hydra.java.syntax.MethodHeader+methodHeaderWithDeclarator :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.MethodDeclarator -> Typed.TypedTerm Syntax.MethodHeader+methodHeaderWithDeclarator original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "result"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "result")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "declarator"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the parameters field of hydra.java.syntax.MethodHeader+methodHeaderWithParameters :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.MethodHeader+methodHeaderWithParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "result"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "result")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "declarator"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "declarator")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the result field of hydra.java.syntax.MethodHeader+methodHeaderWithResult :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm Syntax.Result -> Typed.TypedTerm Syntax.MethodHeader+methodHeaderWithResult original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "result"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "declarator"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "declarator")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "throws")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the throws field of hydra.java.syntax.MethodHeader+methodHeaderWithThrows :: Typed.TypedTerm Syntax.MethodHeader -> Typed.TypedTerm (Maybe Syntax.Throws) -> Typed.TypedTerm Syntax.MethodHeader+methodHeaderWithThrows original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "result"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "result")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "declarator"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodHeader"),+ Model.projectionFieldName = (Model.Name "declarator")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "throws"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.MethodInvocation+methodInvocation :: Typed.TypedTerm Syntax.MethodInvocation_Header -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MethodInvocation+methodInvocation header arguments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodInvocation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm header)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm arguments)}]}))++-- | DSL accessor for the arguments field of hydra.java.syntax.MethodInvocation+methodInvocationArguments :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm [Syntax.Expression]+methodInvocationArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the header field of hydra.java.syntax.MethodInvocation+methodInvocationHeader :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.MethodInvocation_Header+methodInvocationHeader x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodInvocation+methodInvocationMethodInvocation :: Typed.TypedName Syntax.MethodInvocation+methodInvocationMethodInvocation = Typed.TypedName (Model.Name "hydra.java.syntax.MethodInvocation")++-- | DSL updater for the arguments field of hydra.java.syntax.MethodInvocation+methodInvocationWithArguments :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.MethodInvocation+methodInvocationWithArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodInvocation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the header field of hydra.java.syntax.MethodInvocation+methodInvocationWithHeader :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.MethodInvocation_Header -> Typed.TypedTerm Syntax.MethodInvocation+methodInvocationWithHeader original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodInvocation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.MethodInvocation_Complex+methodInvocation_Complex :: Typed.TypedTerm Syntax.MethodInvocation_Variant -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodInvocation_Complex+methodInvocation_Complex variant typeArguments identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm variant)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.MethodInvocation_Complex+methodInvocation_ComplexIdentifier :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.Identifier+methodInvocation_ComplexIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodInvocation_Complex+methodInvocation_ComplexMethodInvocation_Complex :: Typed.TypedName Syntax.MethodInvocation_Complex+methodInvocation_ComplexMethodInvocation_Complex =+ Typed.TypedName (Model.Name "hydra.java.syntax.MethodInvocation_Complex")++-- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodInvocation_Complex+methodInvocation_ComplexTypeArguments :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm [Syntax.TypeArgument]+methodInvocation_ComplexTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the variant field of hydra.java.syntax.MethodInvocation_Complex+methodInvocation_ComplexVariant :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.MethodInvocation_Variant+methodInvocation_ComplexVariant x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.MethodInvocation_Complex+methodInvocation_ComplexWithIdentifier :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodInvocation_Complex+methodInvocation_ComplexWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.MethodInvocation_Complex+methodInvocation_ComplexWithTypeArguments :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodInvocation_Complex+methodInvocation_ComplexWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "variant")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the variant field of hydra.java.syntax.MethodInvocation_Complex+methodInvocation_ComplexWithVariant :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.MethodInvocation_Variant -> Typed.TypedTerm Syntax.MethodInvocation_Complex+methodInvocation_ComplexWithVariant original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "variant"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Complex"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the complex variant of hydra.java.syntax.MethodInvocation_Header+methodInvocation_HeaderComplex :: Typed.TypedTerm Syntax.MethodInvocation_Complex -> Typed.TypedTerm Syntax.MethodInvocation_Header+methodInvocation_HeaderComplex x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Header"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "complex"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.MethodInvocation_Header+methodInvocation_HeaderMethodInvocation_Header :: Typed.TypedName Syntax.MethodInvocation_Header+methodInvocation_HeaderMethodInvocation_Header = Typed.TypedName (Model.Name "hydra.java.syntax.MethodInvocation_Header")++-- | DSL injection for the simple variant of hydra.java.syntax.MethodInvocation_Header+methodInvocation_HeaderSimple :: Typed.TypedTerm Syntax.MethodName -> Typed.TypedTerm Syntax.MethodInvocation_Header+methodInvocation_HeaderSimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Header"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the expression variant of hydra.java.syntax.MethodInvocation_Variant+methodInvocation_VariantExpression :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.MethodInvocation_Variant+methodInvocation_VariantExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.MethodInvocation_Variant+methodInvocation_VariantMethodInvocation_Variant :: Typed.TypedName Syntax.MethodInvocation_Variant+methodInvocation_VariantMethodInvocation_Variant =+ Typed.TypedName (Model.Name "hydra.java.syntax.MethodInvocation_Variant")++-- | DSL injection for the primary variant of hydra.java.syntax.MethodInvocation_Variant+methodInvocation_VariantPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.MethodInvocation_Variant+methodInvocation_VariantPrimary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the super variant of hydra.java.syntax.MethodInvocation_Variant+methodInvocation_VariantSuper :: Typed.TypedTerm Syntax.MethodInvocation_Variant+methodInvocation_VariantSuper =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the type variant of hydra.java.syntax.MethodInvocation_Variant+methodInvocation_VariantType :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.MethodInvocation_Variant+methodInvocation_VariantType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the typeSuper variant of hydra.java.syntax.MethodInvocation_Variant+methodInvocation_VariantTypeSuper :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.MethodInvocation_Variant+methodInvocation_VariantTypeSuper x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodInvocation_Variant"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "typeSuper"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the abstract variant of hydra.java.syntax.MethodModifier+methodModifierAbstract :: Typed.TypedTerm Syntax.MethodModifier+methodModifierAbstract =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "abstract"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the annotation variant of hydra.java.syntax.MethodModifier+methodModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.MethodModifier+methodModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the final variant of hydra.java.syntax.MethodModifier+methodModifierFinal :: Typed.TypedTerm Syntax.MethodModifier+methodModifierFinal =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "final"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.MethodModifier+methodModifierMethodModifier :: Typed.TypedName Syntax.MethodModifier+methodModifierMethodModifier = Typed.TypedName (Model.Name "hydra.java.syntax.MethodModifier")++-- | DSL injection for the native variant of hydra.java.syntax.MethodModifier+methodModifierNative :: Typed.TypedTerm Syntax.MethodModifier+methodModifierNative =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "native"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the private variant of hydra.java.syntax.MethodModifier+methodModifierPrivate :: Typed.TypedTerm Syntax.MethodModifier+methodModifierPrivate =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "private"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the protected variant of hydra.java.syntax.MethodModifier+methodModifierProtected :: Typed.TypedTerm Syntax.MethodModifier+methodModifierProtected =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "protected"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the public variant of hydra.java.syntax.MethodModifier+methodModifierPublic :: Typed.TypedTerm Syntax.MethodModifier+methodModifierPublic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "public"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the static variant of hydra.java.syntax.MethodModifier+methodModifierStatic :: Typed.TypedTerm Syntax.MethodModifier+methodModifierStatic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "static"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the strictfp variant of hydra.java.syntax.MethodModifier+methodModifierStrictfp :: Typed.TypedTerm Syntax.MethodModifier+methodModifierStrictfp =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "strictfp"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the synchronized variant of hydra.java.syntax.MethodModifier+methodModifierSynchronized :: Typed.TypedTerm Syntax.MethodModifier+methodModifierSynchronized =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "synchronized"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.MethodName wrapper+methodName :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodName+methodName x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.MethodName"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodName+methodNameMethodName :: Typed.TypedName Syntax.MethodName+methodNameMethodName = Typed.TypedName (Model.Name "hydra.java.syntax.MethodName")++-- | DSL injection for the array variant of hydra.java.syntax.MethodReference+methodReferenceArray :: Typed.TypedTerm Syntax.MethodReference_Array -> Typed.TypedTerm Syntax.MethodReference+methodReferenceArray x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodReference"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the expression variant of hydra.java.syntax.MethodReference+methodReferenceExpression :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.MethodReference+methodReferenceExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodReference"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.MethodReference+methodReferenceMethodReference :: Typed.TypedName Syntax.MethodReference+methodReferenceMethodReference = Typed.TypedName (Model.Name "hydra.java.syntax.MethodReference")++-- | DSL injection for the new variant of hydra.java.syntax.MethodReference+methodReferenceNew :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm Syntax.MethodReference+methodReferenceNew x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodReference"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "new"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the primary variant of hydra.java.syntax.MethodReference+methodReferencePrimary :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.MethodReference+methodReferencePrimary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodReference"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the referenceType variant of hydra.java.syntax.MethodReference+methodReferenceReferenceType :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.MethodReference+methodReferenceReferenceType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodReference"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "referenceType"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the super variant of hydra.java.syntax.MethodReference+methodReferenceSuper :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Syntax.MethodReference+methodReferenceSuper x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MethodReference"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.MethodReference_Array wrapper+methodReference_Array :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.MethodReference_Array+methodReference_Array x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.MethodReference_Array"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodReference_Array+methodReference_ArrayMethodReference_Array :: Typed.TypedName Syntax.MethodReference_Array+methodReference_ArrayMethodReference_Array = Typed.TypedName (Model.Name "hydra.java.syntax.MethodReference_Array")++-- | DSL constructor for hydra.java.syntax.MethodReference_Expression+methodReference_Expression :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Expression+methodReference_Expression name typeArguments identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_Expression+methodReference_ExpressionIdentifier :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.Identifier+methodReference_ExpressionIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodReference_Expression+methodReference_ExpressionMethodReference_Expression :: Typed.TypedName Syntax.MethodReference_Expression+methodReference_ExpressionMethodReference_Expression =+ Typed.TypedName (Model.Name "hydra.java.syntax.MethodReference_Expression")++-- | DSL accessor for the name field of hydra.java.syntax.MethodReference_Expression+methodReference_ExpressionName :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.ExpressionName+methodReference_ExpressionName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_Expression+methodReference_ExpressionTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm [Syntax.TypeArgument]+methodReference_ExpressionTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_Expression+methodReference_ExpressionWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Expression+methodReference_ExpressionWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.java.syntax.MethodReference_Expression+methodReference_ExpressionWithName :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.MethodReference_Expression+methodReference_ExpressionWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_Expression+methodReference_ExpressionWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Expression -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_Expression+methodReference_ExpressionWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Expression"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.MethodReference_New+methodReference_New :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_New+methodReference_New classType typeArguments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_New"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "classType"),+ Model.fieldTerm = (Typed.unTypedTerm classType)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)}]}))++-- | DSL accessor for the classType field of hydra.java.syntax.MethodReference_New+methodReference_NewClassType :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm Syntax.ClassType+methodReference_NewClassType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_New"),+ Model.projectionFieldName = (Model.Name "classType")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodReference_New+methodReference_NewMethodReference_New :: Typed.TypedName Syntax.MethodReference_New+methodReference_NewMethodReference_New = Typed.TypedName (Model.Name "hydra.java.syntax.MethodReference_New")++-- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_New+methodReference_NewTypeArguments :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm [Syntax.TypeArgument]+methodReference_NewTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_New"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the classType field of hydra.java.syntax.MethodReference_New+methodReference_NewWithClassType :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.MethodReference_New+methodReference_NewWithClassType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_New"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "classType"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_New"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_New+methodReference_NewWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_New -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_New+methodReference_NewWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_New"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "classType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_New"),+ Model.projectionFieldName = (Model.Name "classType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.MethodReference_Primary+methodReference_Primary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Primary+methodReference_Primary primary typeArguments identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm primary)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_Primary+methodReference_PrimaryIdentifier :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Identifier+methodReference_PrimaryIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodReference_Primary+methodReference_PrimaryMethodReference_Primary :: Typed.TypedName Syntax.MethodReference_Primary+methodReference_PrimaryMethodReference_Primary = Typed.TypedName (Model.Name "hydra.java.syntax.MethodReference_Primary")++-- | DSL accessor for the primary field of hydra.java.syntax.MethodReference_Primary+methodReference_PrimaryPrimary :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Primary+methodReference_PrimaryPrimary x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "primary")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_Primary+methodReference_PrimaryTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm [Syntax.TypeArgument]+methodReference_PrimaryTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_Primary+methodReference_PrimaryWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Primary+methodReference_PrimaryWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "primary")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the primary field of hydra.java.syntax.MethodReference_Primary+methodReference_PrimaryWithPrimary :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.MethodReference_Primary+methodReference_PrimaryWithPrimary original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_Primary+methodReference_PrimaryWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Primary -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_Primary+methodReference_PrimaryWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "primary")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Primary"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceType :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_ReferenceType+methodReference_ReferenceType referenceType typeArguments identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "referenceType"),+ Model.fieldTerm = (Typed.unTypedTerm referenceType)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeIdentifier :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.Identifier+methodReference_ReferenceTypeIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeMethodReference_ReferenceType :: Typed.TypedName Syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeMethodReference_ReferenceType =+ Typed.TypedName (Model.Name "hydra.java.syntax.MethodReference_ReferenceType")++-- | DSL accessor for the referenceType field of hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeReferenceType :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.ReferenceType+methodReference_ReferenceTypeReferenceType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "referenceType")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeTypeArguments :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm [Syntax.TypeArgument]+methodReference_ReferenceTypeTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "referenceType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "referenceType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the referenceType field of hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeWithReferenceType :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeWithReferenceType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "referenceType"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_ReferenceType -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_ReferenceType+methodReference_ReferenceTypeWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "referenceType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "referenceType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_ReferenceType"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.MethodReference_Super+methodReference_Super :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.MethodReference_Super+methodReference_Super typeArguments identifier super =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = (Typed.unTypedTerm super)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.MethodReference_Super+methodReference_SuperIdentifier :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Syntax.Identifier+methodReference_SuperIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MethodReference_Super+methodReference_SuperMethodReference_Super :: Typed.TypedName Syntax.MethodReference_Super+methodReference_SuperMethodReference_Super = Typed.TypedName (Model.Name "hydra.java.syntax.MethodReference_Super")++-- | DSL accessor for the super field of hydra.java.syntax.MethodReference_Super+methodReference_SuperSuper :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Bool+methodReference_SuperSuper x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "super")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeArguments field of hydra.java.syntax.MethodReference_Super+methodReference_SuperTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm [Syntax.TypeArgument]+methodReference_SuperTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.MethodReference_Super+methodReference_SuperWithIdentifier :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.MethodReference_Super+methodReference_SuperWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "super")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the super field of hydra.java.syntax.MethodReference_Super+methodReference_SuperWithSuper :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.MethodReference_Super+methodReference_SuperWithSuper original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.MethodReference_Super+methodReference_SuperWithTypeArguments :: Typed.TypedTerm Syntax.MethodReference_Super -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.MethodReference_Super+methodReference_SuperWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MethodReference_Super"),+ Model.projectionFieldName = (Model.Name "super")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.ModularCompilationUnit+modularCompilationUnit :: Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.ModularCompilationUnit+modularCompilationUnit imports module_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModularCompilationUnit"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Typed.unTypedTerm imports)},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm module_)}]}))++-- | DSL accessor for the imports field of hydra.java.syntax.ModularCompilationUnit+modularCompilationUnitImports :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration]+modularCompilationUnitImports x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModularCompilationUnit"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ModularCompilationUnit+modularCompilationUnitModularCompilationUnit :: Typed.TypedName Syntax.ModularCompilationUnit+modularCompilationUnitModularCompilationUnit = Typed.TypedName (Model.Name "hydra.java.syntax.ModularCompilationUnit")++-- | DSL accessor for the module field of hydra.java.syntax.ModularCompilationUnit+modularCompilationUnitModule :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm Syntax.ModuleDeclaration+modularCompilationUnitModule x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModularCompilationUnit"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the imports field of hydra.java.syntax.ModularCompilationUnit+modularCompilationUnitWithImports :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.ModularCompilationUnit+modularCompilationUnitWithImports original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModularCompilationUnit"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModularCompilationUnit"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the module field of hydra.java.syntax.ModularCompilationUnit+modularCompilationUnitWithModule :: Typed.TypedTerm Syntax.ModularCompilationUnit -> Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Syntax.ModularCompilationUnit+modularCompilationUnitWithModule original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModularCompilationUnit"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModularCompilationUnit"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.ModuleDeclaration+moduleDeclaration :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Bool -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm [Syntax.ModuleDirective] -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclaration annotations open identifiers directives =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "open"),+ Model.fieldTerm = (Typed.unTypedTerm open)},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Typed.unTypedTerm identifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "directives"),+ Model.fieldTerm = (Typed.unTypedTerm directives)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationAnnotations :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Annotation]+moduleDeclarationAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the directives field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationDirectives :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.ModuleDirective]+moduleDeclarationDirectives x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "directives")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifiers field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationIdentifiers :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Identifier]+moduleDeclarationIdentifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ModuleDeclaration+moduleDeclarationModuleDeclaration :: Typed.TypedName Syntax.ModuleDeclaration+moduleDeclarationModuleDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.ModuleDeclaration")++-- | DSL accessor for the open field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationOpen :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Bool+moduleDeclarationOpen x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "open")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annotations field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationWithAnnotations :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclarationWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "open"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "open")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "directives"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "directives")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the directives field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationWithDirectives :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.ModuleDirective] -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclarationWithDirectives original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "open"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "open")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "directives"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifiers field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationWithIdentifiers :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclarationWithIdentifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "open"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "open")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "directives"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "directives")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the open field of hydra.java.syntax.ModuleDeclaration+moduleDeclarationWithOpen :: Typed.TypedTerm Syntax.ModuleDeclaration -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.ModuleDeclaration+moduleDeclarationWithOpen original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "open"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "directives"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDeclaration"),+ Model.projectionFieldName = (Model.Name "directives")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the exports variant of hydra.java.syntax.ModuleDirective+moduleDirectiveExports :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.ModuleDirective+moduleDirectiveExports x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "exports"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ModuleDirective+moduleDirectiveModuleDirective :: Typed.TypedName Syntax.ModuleDirective+moduleDirectiveModuleDirective = Typed.TypedName (Model.Name "hydra.java.syntax.ModuleDirective")++-- | DSL injection for the opens variant of hydra.java.syntax.ModuleDirective+moduleDirectiveOpens :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.ModuleDirective+moduleDirectiveOpens x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "opens"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the provides variant of hydra.java.syntax.ModuleDirective+moduleDirectiveProvides :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm Syntax.ModuleDirective+moduleDirectiveProvides x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "provides"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the requires variant of hydra.java.syntax.ModuleDirective+moduleDirectiveRequires :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm Syntax.ModuleDirective+moduleDirectiveRequires x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "requires"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the uses variant of hydra.java.syntax.ModuleDirective+moduleDirectiveUses :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.ModuleDirective+moduleDirectiveUses x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "uses"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpens :: Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm [Syntax.ModuleName] -> Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpens package modules =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Typed.unTypedTerm package)},+ Model.Field {+ Model.fieldName = (Model.Name "modules"),+ Model.fieldTerm = (Typed.unTypedTerm modules)}]}))++-- | DSL name token for hydra.java.syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensModuleDirective_ExportsOrOpens :: Typed.TypedName Syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensModuleDirective_ExportsOrOpens =+ Typed.TypedName (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens")++-- | DSL accessor for the modules field of hydra.java.syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensModules :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm [Syntax.ModuleName]+moduleDirective_ExportsOrOpensModules x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),+ Model.projectionFieldName = (Model.Name "modules")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the package field of hydra.java.syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensPackage :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.PackageName+moduleDirective_ExportsOrOpensPackage x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),+ Model.projectionFieldName = (Model.Name "package")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the modules field of hydra.java.syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensWithModules :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm [Syntax.ModuleName] -> Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensWithModules original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),+ Model.projectionFieldName = (Model.Name "package")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "modules"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the package field of hydra.java.syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensWithPackage :: Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens -> Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm Syntax.ModuleDirective_ExportsOrOpens+moduleDirective_ExportsOrOpensWithPackage original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "modules"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"),+ Model.projectionFieldName = (Model.Name "modules")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.ModuleDirective_Provides+moduleDirective_Provides :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.ModuleDirective_Provides+moduleDirective_Provides to with =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Provides"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "to"),+ Model.fieldTerm = (Typed.unTypedTerm to)},+ Model.Field {+ Model.fieldName = (Model.Name "with"),+ Model.fieldTerm = (Typed.unTypedTerm with)}]}))++-- | DSL name token for hydra.java.syntax.ModuleDirective_Provides+moduleDirective_ProvidesModuleDirective_Provides :: Typed.TypedName Syntax.ModuleDirective_Provides+moduleDirective_ProvidesModuleDirective_Provides =+ Typed.TypedName (Model.Name "hydra.java.syntax.ModuleDirective_Provides")++-- | DSL accessor for the to field of hydra.java.syntax.ModuleDirective_Provides+moduleDirective_ProvidesTo :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm Syntax.TypeName+moduleDirective_ProvidesTo x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Provides"),+ Model.projectionFieldName = (Model.Name "to")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the with field of hydra.java.syntax.ModuleDirective_Provides+moduleDirective_ProvidesWith :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm [Syntax.TypeName]+moduleDirective_ProvidesWith x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Provides"),+ Model.projectionFieldName = (Model.Name "with")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the to field of hydra.java.syntax.ModuleDirective_Provides+moduleDirective_ProvidesWithTo :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.ModuleDirective_Provides+moduleDirective_ProvidesWithTo original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Provides"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "to"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "with"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Provides"),+ Model.projectionFieldName = (Model.Name "with")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the with field of hydra.java.syntax.ModuleDirective_Provides+moduleDirective_ProvidesWithWith :: Typed.TypedTerm Syntax.ModuleDirective_Provides -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.ModuleDirective_Provides+moduleDirective_ProvidesWithWith original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Provides"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "to"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Provides"),+ Model.projectionFieldName = (Model.Name "to")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "with"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.ModuleDirective_Requires+moduleDirective_Requires :: Typed.TypedTerm [Syntax.RequiresModifier] -> Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.ModuleDirective_Requires+moduleDirective_Requires modifiers module_ =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Requires"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm module_)}]}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.ModuleDirective_Requires+moduleDirective_RequiresModifiers :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm [Syntax.RequiresModifier]+moduleDirective_RequiresModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Requires"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the module field of hydra.java.syntax.ModuleDirective_Requires+moduleDirective_RequiresModule :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm Syntax.ModuleName+moduleDirective_RequiresModule x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Requires"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ModuleDirective_Requires+moduleDirective_RequiresModuleDirective_Requires :: Typed.TypedName Syntax.ModuleDirective_Requires+moduleDirective_RequiresModuleDirective_Requires =+ Typed.TypedName (Model.Name "hydra.java.syntax.ModuleDirective_Requires")++-- | DSL updater for the modifiers field of hydra.java.syntax.ModuleDirective_Requires+moduleDirective_RequiresWithModifiers :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm [Syntax.RequiresModifier] -> Typed.TypedTerm Syntax.ModuleDirective_Requires+moduleDirective_RequiresWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Requires"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Requires"),+ Model.projectionFieldName = (Model.Name "module")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the module field of hydra.java.syntax.ModuleDirective_Requires+moduleDirective_RequiresWithModule :: Typed.TypedTerm Syntax.ModuleDirective_Requires -> Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.ModuleDirective_Requires+moduleDirective_RequiresWithModule original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Requires"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleDirective_Requires"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "module"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.ModuleName+moduleName :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.ModuleName) -> Typed.TypedTerm Syntax.ModuleName+moduleName identifier name =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.ModuleName+moduleNameIdentifier :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.Identifier+moduleNameIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleName"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ModuleName+moduleNameModuleName :: Typed.TypedName Syntax.ModuleName+moduleNameModuleName = Typed.TypedName (Model.Name "hydra.java.syntax.ModuleName")++-- | DSL accessor for the name field of hydra.java.syntax.ModuleName+moduleNameName :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm (Maybe Syntax.ModuleName)+moduleNameName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleName"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.ModuleName+moduleNameWithIdentifier :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.ModuleName+moduleNameWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleName"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.java.syntax.ModuleName+moduleNameWithName :: Typed.TypedTerm Syntax.ModuleName -> Typed.TypedTerm (Maybe Syntax.ModuleName) -> Typed.TypedTerm Syntax.ModuleName+moduleNameWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ModuleName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ModuleName"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the divide variant of hydra.java.syntax.MultiplicativeExpression+multiplicativeExpressionDivide :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression+multiplicativeExpressionDivide x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "divide"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the mod variant of hydra.java.syntax.MultiplicativeExpression+multiplicativeExpressionMod :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression+multiplicativeExpressionMod x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "mod"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.MultiplicativeExpression+multiplicativeExpressionMultiplicativeExpression :: Typed.TypedName Syntax.MultiplicativeExpression+multiplicativeExpressionMultiplicativeExpression =+ Typed.TypedName (Model.Name "hydra.java.syntax.MultiplicativeExpression")++-- | DSL injection for the times variant of hydra.java.syntax.MultiplicativeExpression+multiplicativeExpressionTimes :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression+multiplicativeExpressionTimes x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "times"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the unary variant of hydra.java.syntax.MultiplicativeExpression+multiplicativeExpressionUnary :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression+multiplicativeExpressionUnary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "unary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.MultiplicativeExpression_Binary+multiplicativeExpression_Binary :: Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression_Binary+multiplicativeExpression_Binary lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.java.syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryLhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression+multiplicativeExpression_BinaryLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryMultiplicativeExpression_Binary :: Typed.TypedName Syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryMultiplicativeExpression_Binary =+ Typed.TypedName (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary")++-- | DSL accessor for the rhs field of hydra.java.syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryRhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.UnaryExpression+multiplicativeExpression_BinaryRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.MultiplicativeExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.MultiplicativeExpression_Binary -> Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.MultiplicativeExpression_Binary+multiplicativeExpression_BinaryWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.NormalAnnotation+normalAnnotation :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm [Syntax.ElementValuePair] -> Typed.TypedTerm Syntax.NormalAnnotation+normalAnnotation typeName pairs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeName"),+ Model.fieldTerm = (Typed.unTypedTerm typeName)},+ Model.Field {+ Model.fieldName = (Model.Name "pairs"),+ Model.fieldTerm = (Typed.unTypedTerm pairs)}]}))++-- | DSL name token for hydra.java.syntax.NormalAnnotation+normalAnnotationNormalAnnotation :: Typed.TypedName Syntax.NormalAnnotation+normalAnnotationNormalAnnotation = Typed.TypedName (Model.Name "hydra.java.syntax.NormalAnnotation")++-- | DSL accessor for the pairs field of hydra.java.syntax.NormalAnnotation+normalAnnotationPairs :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm [Syntax.ElementValuePair]+normalAnnotationPairs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalAnnotation"),+ Model.projectionFieldName = (Model.Name "pairs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeName field of hydra.java.syntax.NormalAnnotation+normalAnnotationTypeName :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm Syntax.TypeName+normalAnnotationTypeName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalAnnotation"),+ Model.projectionFieldName = (Model.Name "typeName")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the pairs field of hydra.java.syntax.NormalAnnotation+normalAnnotationWithPairs :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm [Syntax.ElementValuePair] -> Typed.TypedTerm Syntax.NormalAnnotation+normalAnnotationWithPairs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeName"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalAnnotation"),+ Model.projectionFieldName = (Model.Name "typeName")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "pairs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the typeName field of hydra.java.syntax.NormalAnnotation+normalAnnotationWithTypeName :: Typed.TypedTerm Syntax.NormalAnnotation -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.NormalAnnotation+normalAnnotationWithTypeName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeName"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "pairs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalAnnotation"),+ Model.projectionFieldName = (Model.Name "pairs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.NormalClassDeclaration+normalClassDeclaration :: Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm (Maybe Syntax.ClassType) -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.ClassBody -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclaration modifiers identifier parameters extends implements permits body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm parameters)},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Typed.unTypedTerm extends)},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Typed.unTypedTerm implements)},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Typed.unTypedTerm permits)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationBody :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.ClassBody+normalClassDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the extends field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationExtends :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm (Maybe Syntax.ClassType)+normalClassDeclarationExtends x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationIdentifier :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier+normalClassDeclarationIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the implements field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationImplements :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]+normalClassDeclarationImplements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationModifiers :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.ClassModifier]+normalClassDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationNormalClassDeclaration :: Typed.TypedName Syntax.NormalClassDeclaration+normalClassDeclarationNormalClassDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.NormalClassDeclaration")++-- | DSL accessor for the parameters field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationParameters :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeParameter]+normalClassDeclarationParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the permits field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationPermits :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeName]+normalClassDeclarationPermits x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationWithBody :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.ClassBody -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the extends field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationWithExtends :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm (Maybe Syntax.ClassType) -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclarationWithExtends original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationWithIdentifier :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclarationWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the implements field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationWithImplements :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclarationWithImplements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationWithModifiers :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the parameters field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationWithParameters :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclarationWithParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the permits field of hydra.java.syntax.NormalClassDeclaration+normalClassDeclarationWithPermits :: Typed.TypedTerm Syntax.NormalClassDeclaration -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.NormalClassDeclaration+normalClassDeclarationWithPermits original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalClassDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclaration :: Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.InterfaceBody -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration+normalInterfaceDeclaration modifiers identifier parameters extends permits body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm parameters)},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Typed.unTypedTerm extends)},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Typed.unTypedTerm permits)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationBody :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceBody+normalInterfaceDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the extends field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationExtends :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]+normalInterfaceDeclarationExtends x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationIdentifier :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier+normalInterfaceDeclarationIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationModifiers :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier]+normalInterfaceDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationNormalInterfaceDeclaration :: Typed.TypedName Syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationNormalInterfaceDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration")++-- | DSL accessor for the parameters field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationParameters :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeParameter]+normalInterfaceDeclarationParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the permits field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationPermits :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeName]+normalInterfaceDeclarationPermits x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithBody :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.InterfaceBody -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the extends field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithExtends :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithExtends original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithIdentifier :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithModifiers :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.InterfaceModifier] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the parameters field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithParameters :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "permits")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the permits field of hydra.java.syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithPermits :: Typed.TypedTerm Syntax.NormalInterfaceDeclaration -> Typed.TypedTerm [Syntax.TypeName] -> Typed.TypedTerm Syntax.NormalInterfaceDeclaration+normalInterfaceDeclarationWithPermits original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "extends")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "permits"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the array variant of hydra.java.syntax.NumericTypeArray+numericTypeArrayArray :: Typed.TypedTerm Syntax.NumericTypeArray -> Typed.TypedTerm Syntax.NumericTypeArray+numericTypeArrayArray x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.NumericTypeArray"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.NumericTypeArray+numericTypeArrayNumericTypeArray :: Typed.TypedName Syntax.NumericTypeArray+numericTypeArrayNumericTypeArray = Typed.TypedName (Model.Name "hydra.java.syntax.NumericTypeArray")++-- | DSL injection for the simple variant of hydra.java.syntax.NumericTypeArray+numericTypeArraySimple :: Typed.TypedTerm Syntax.NumericType -> Typed.TypedTerm Syntax.NumericTypeArray+numericTypeArraySimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.NumericTypeArray"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the floatingPoint variant of hydra.java.syntax.NumericType+numericTypeFloatingPoint :: Typed.TypedTerm Syntax.FloatingPointType -> Typed.TypedTerm Syntax.NumericType+numericTypeFloatingPoint x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.NumericType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "floatingPoint"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the integral variant of hydra.java.syntax.NumericType+numericTypeIntegral :: Typed.TypedTerm Syntax.IntegralType -> Typed.TypedTerm Syntax.NumericType+numericTypeIntegral x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.NumericType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "integral"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.NumericType+numericTypeNumericType :: Typed.TypedName Syntax.NumericType+numericTypeNumericType = Typed.TypedName (Model.Name "hydra.java.syntax.NumericType")++-- | DSL constructor for hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnit :: Typed.TypedTerm (Maybe Syntax.PackageDeclaration) -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm [Syntax.TopLevelClassOrInterfaceDeclarationWithComments] -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit+ordinaryCompilationUnit package imports types =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Typed.unTypedTerm package)},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Typed.unTypedTerm imports)},+ Model.Field {+ Model.fieldName = (Model.Name "types"),+ Model.fieldTerm = (Typed.unTypedTerm types)}]}))++-- | DSL accessor for the imports field of hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitImports :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration]+ordinaryCompilationUnitImports x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitOrdinaryCompilationUnit :: Typed.TypedName Syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitOrdinaryCompilationUnit = Typed.TypedName (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit")++-- | DSL accessor for the package field of hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitPackage :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm (Maybe Syntax.PackageDeclaration)+ordinaryCompilationUnitPackage x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "package")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the types field of hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitTypes :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.TopLevelClassOrInterfaceDeclarationWithComments]+ordinaryCompilationUnitTypes x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "types")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the imports field of hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitWithImports :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.ImportDeclaration] -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitWithImports original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "package")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "types"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "types")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the package field of hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitWithPackage :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm (Maybe Syntax.PackageDeclaration) -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitWithPackage original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "types"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "types")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the types field of hydra.java.syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitWithTypes :: Typed.TypedTerm Syntax.OrdinaryCompilationUnit -> Typed.TypedTerm [Syntax.TopLevelClassOrInterfaceDeclarationWithComments] -> Typed.TypedTerm Syntax.OrdinaryCompilationUnit+ordinaryCompilationUnitWithTypes original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "package"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "package")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "imports"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"),+ Model.projectionFieldName = (Model.Name "imports")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "types"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.PackageDeclaration+packageDeclaration :: Typed.TypedTerm [Syntax.PackageModifier] -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageDeclaration+packageDeclaration modifiers identifiers =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.PackageDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Typed.unTypedTerm identifiers)}]}))++-- | DSL accessor for the identifiers field of hydra.java.syntax.PackageDeclaration+packageDeclarationIdentifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.Identifier]+packageDeclarationIdentifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PackageDeclaration"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.PackageDeclaration+packageDeclarationModifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.PackageModifier]+packageDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PackageDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PackageDeclaration+packageDeclarationPackageDeclaration :: Typed.TypedName Syntax.PackageDeclaration+packageDeclarationPackageDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.PackageDeclaration")++-- | DSL updater for the identifiers field of hydra.java.syntax.PackageDeclaration+packageDeclarationWithIdentifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageDeclaration+packageDeclarationWithIdentifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.PackageDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PackageDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.PackageDeclaration+packageDeclarationWithModifiers :: Typed.TypedTerm Syntax.PackageDeclaration -> Typed.TypedTerm [Syntax.PackageModifier] -> Typed.TypedTerm Syntax.PackageDeclaration+packageDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.PackageDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PackageDeclaration"),+ Model.projectionFieldName = (Model.Name "identifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.PackageModifier wrapper+packageModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.PackageModifier+packageModifier x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.PackageModifier"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PackageModifier+packageModifierPackageModifier :: Typed.TypedName Syntax.PackageModifier+packageModifierPackageModifier = Typed.TypedName (Model.Name "hydra.java.syntax.PackageModifier")++-- | DSL constructor for the hydra.java.syntax.PackageName wrapper+packageName :: Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageName+packageName x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.PackageName"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PackageName+packageNamePackageName :: Typed.TypedName Syntax.PackageName+packageNamePackageName = Typed.TypedName (Model.Name "hydra.java.syntax.PackageName")++-- | DSL constructor for the hydra.java.syntax.PackageOrTypeName wrapper+packageOrTypeName :: Typed.TypedTerm [Syntax.Identifier] -> Typed.TypedTerm Syntax.PackageOrTypeName+packageOrTypeName x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.PackageOrTypeName"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PackageOrTypeName+packageOrTypeNamePackageOrTypeName :: Typed.TypedName Syntax.PackageOrTypeName+packageOrTypeNamePackageOrTypeName = Typed.TypedName (Model.Name "hydra.java.syntax.PackageOrTypeName")++-- | DSL name token for hydra.java.syntax.Pattern+patternPattern :: Typed.TypedName Syntax.Pattern+patternPattern = Typed.TypedName (Model.Name "hydra.java.syntax.Pattern")++-- | DSL injection for the record variant of hydra.java.syntax.Pattern+patternRecord :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm Syntax.Pattern+patternRecord x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Pattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "record"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the type variant of hydra.java.syntax.Pattern+patternType :: Typed.TypedTerm Syntax.TypePattern -> Typed.TypedTerm Syntax.Pattern+patternType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Pattern"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.PostDecrementExpression wrapper+postDecrementExpression :: Typed.TypedTerm Syntax.PostfixExpression -> Typed.TypedTerm Syntax.PostDecrementExpression+postDecrementExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.PostDecrementExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PostDecrementExpression+postDecrementExpressionPostDecrementExpression :: Typed.TypedName Syntax.PostDecrementExpression+postDecrementExpressionPostDecrementExpression = Typed.TypedName (Model.Name "hydra.java.syntax.PostDecrementExpression")++-- | DSL constructor for the hydra.java.syntax.PostIncrementExpression wrapper+postIncrementExpression :: Typed.TypedTerm Syntax.PostfixExpression -> Typed.TypedTerm Syntax.PostIncrementExpression+postIncrementExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.PostIncrementExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PostIncrementExpression+postIncrementExpressionPostIncrementExpression :: Typed.TypedName Syntax.PostIncrementExpression+postIncrementExpressionPostIncrementExpression = Typed.TypedName (Model.Name "hydra.java.syntax.PostIncrementExpression")++-- | DSL injection for the name variant of hydra.java.syntax.PostfixExpression+postfixExpressionName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.PostfixExpression+postfixExpressionName x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PostfixExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the postDecrement variant of hydra.java.syntax.PostfixExpression+postfixExpressionPostDecrement :: Typed.TypedTerm Syntax.PostDecrementExpression -> Typed.TypedTerm Syntax.PostfixExpression+postfixExpressionPostDecrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PostfixExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "postDecrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the postIncrement variant of hydra.java.syntax.PostfixExpression+postfixExpressionPostIncrement :: Typed.TypedTerm Syntax.PostIncrementExpression -> Typed.TypedTerm Syntax.PostfixExpression+postfixExpressionPostIncrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PostfixExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "postIncrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.PostfixExpression+postfixExpressionPostfixExpression :: Typed.TypedName Syntax.PostfixExpression+postfixExpressionPostfixExpression = Typed.TypedName (Model.Name "hydra.java.syntax.PostfixExpression")++-- | DSL injection for the primary variant of hydra.java.syntax.PostfixExpression+postfixExpressionPrimary :: Typed.TypedTerm Syntax.Primary -> Typed.TypedTerm Syntax.PostfixExpression+postfixExpressionPrimary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PostfixExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.PreDecrementExpression wrapper+preDecrementExpression :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.PreDecrementExpression+preDecrementExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.PreDecrementExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PreDecrementExpression+preDecrementExpressionPreDecrementExpression :: Typed.TypedName Syntax.PreDecrementExpression+preDecrementExpressionPreDecrementExpression = Typed.TypedName (Model.Name "hydra.java.syntax.PreDecrementExpression")++-- | DSL constructor for the hydra.java.syntax.PreIncrementExpression wrapper+preIncrementExpression :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.PreIncrementExpression+preIncrementExpression x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.PreIncrementExpression"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PreIncrementExpression+preIncrementExpressionPreIncrementExpression :: Typed.TypedName Syntax.PreIncrementExpression+preIncrementExpressionPreIncrementExpression = Typed.TypedName (Model.Name "hydra.java.syntax.PreIncrementExpression")++-- | DSL injection for the arrayCreation variant of hydra.java.syntax.Primary+primaryArrayCreation :: Typed.TypedTerm Syntax.ArrayCreationExpression -> Typed.TypedTerm Syntax.Primary+primaryArrayCreation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Primary"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "arrayCreation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the noNewArray variant of hydra.java.syntax.Primary+primaryNoNewArray :: Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression -> Typed.TypedTerm Syntax.Primary+primaryNoNewArray x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Primary"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "noNewArray"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the arrayAccess variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionArrayAccess :: Typed.TypedTerm Syntax.ArrayAccess -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionArrayAccess x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "arrayAccess"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the classInstance variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionClassInstance :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionClassInstance x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classInstance"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the classLiteral variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionClassLiteral :: Typed.TypedTerm Syntax.ClassLiteral -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionClassLiteral x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classLiteral"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the dotThis variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionDotThis :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionDotThis x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "dotThis"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the fieldAccess variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionFieldAccess x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "fieldAccess"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the literal variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionLiteral :: Typed.TypedTerm Syntax.Literal -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionLiteral x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "literal"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the methodInvocation variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionMethodInvocation :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionMethodInvocation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "methodInvocation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the methodReference variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionMethodReference :: Typed.TypedTerm Syntax.MethodReference -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionMethodReference x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "methodReference"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the parens variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionParens :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionParens x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "parens"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionPrimaryNoNewArrayExpression :: Typed.TypedName Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionPrimaryNoNewArrayExpression =+ Typed.TypedName (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression")++-- | DSL injection for the this variant of hydra.java.syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionThis :: Typed.TypedTerm Syntax.PrimaryNoNewArrayExpression+primaryNoNewArrayExpressionThis =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "this"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.Primary+primaryPrimary :: Typed.TypedName Syntax.Primary+primaryPrimary = Typed.TypedName (Model.Name "hydra.java.syntax.Primary")++-- | DSL injection for the boolean variant of hydra.java.syntax.PrimitiveType+primitiveTypeBoolean :: Typed.TypedTerm Syntax.PrimitiveType+primitiveTypeBoolean =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimitiveType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "boolean"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the numeric variant of hydra.java.syntax.PrimitiveType+primitiveTypeNumeric :: Typed.TypedTerm Syntax.NumericType -> Typed.TypedTerm Syntax.PrimitiveType+primitiveTypeNumeric x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.PrimitiveType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "numeric"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.PrimitiveType+primitiveTypePrimitiveType :: Typed.TypedName Syntax.PrimitiveType+primitiveTypePrimitiveType = Typed.TypedName (Model.Name "hydra.java.syntax.PrimitiveType")++-- | DSL constructor for hydra.java.syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotations :: Typed.TypedTerm Syntax.PrimitiveType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotations type_ annotations =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsAnnotations :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.Annotation]+primitiveTypeWithAnnotationsAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsPrimitiveTypeWithAnnotations :: Typed.TypedName Syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsPrimitiveTypeWithAnnotations =+ Typed.TypedName (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations")++-- | DSL accessor for the type field of hydra.java.syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsType :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.PrimitiveType+primitiveTypeWithAnnotationsType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annotations field of hydra.java.syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsWithAnnotations :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.java.syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsWithType :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.PrimitiveType -> Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations+primitiveTypeWithAnnotationsWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.ReceiverParameter+receiverParameter :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.ReceiverParameter+receiverParameter annotations unannType identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Typed.unTypedTerm unannType)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.ReceiverParameter+receiverParameterAnnotations :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm [Syntax.Annotation]+receiverParameterAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.ReceiverParameter+receiverParameterIdentifier :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm (Maybe Syntax.Identifier)+receiverParameterIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ReceiverParameter+receiverParameterReceiverParameter :: Typed.TypedName Syntax.ReceiverParameter+receiverParameterReceiverParameter = Typed.TypedName (Model.Name "hydra.java.syntax.ReceiverParameter")++-- | DSL accessor for the unannType field of hydra.java.syntax.ReceiverParameter+receiverParameterUnannType :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm Syntax.UnannType+receiverParameterUnannType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "unannType")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annotations field of hydra.java.syntax.ReceiverParameter+receiverParameterWithAnnotations :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.ReceiverParameter+receiverParameterWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "unannType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.ReceiverParameter+receiverParameterWithIdentifier :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm (Maybe Syntax.Identifier) -> Typed.TypedTerm Syntax.ReceiverParameter+receiverParameterWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "unannType")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the unannType field of hydra.java.syntax.ReceiverParameter+receiverParameterWithUnannType :: Typed.TypedTerm Syntax.ReceiverParameter -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.ReceiverParameter+receiverParameterWithUnannType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "unannType"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ReceiverParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.RecordBody wrapper+recordBody :: Typed.TypedTerm [Syntax.RecordBodyDeclaration] -> Typed.TypedTerm Syntax.RecordBody+recordBody x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.RecordBody"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL injection for the classBody variant of hydra.java.syntax.RecordBodyDeclaration+recordBodyDeclarationClassBody :: Typed.TypedTerm Syntax.ClassBodyDeclaration -> Typed.TypedTerm Syntax.RecordBodyDeclaration+recordBodyDeclarationClassBody x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RecordBodyDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classBody"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the compactConstructor variant of hydra.java.syntax.RecordBodyDeclaration+recordBodyDeclarationCompactConstructor :: Typed.TypedTerm Syntax.CompactConstructorDeclaration -> Typed.TypedTerm Syntax.RecordBodyDeclaration+recordBodyDeclarationCompactConstructor x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RecordBodyDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "compactConstructor"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.RecordBodyDeclaration+recordBodyDeclarationRecordBodyDeclaration :: Typed.TypedName Syntax.RecordBodyDeclaration+recordBodyDeclarationRecordBodyDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.RecordBodyDeclaration")++-- | DSL name token for hydra.java.syntax.RecordBody+recordBodyRecordBody :: Typed.TypedName Syntax.RecordBody+recordBodyRecordBody = Typed.TypedName (Model.Name "hydra.java.syntax.RecordBody")++-- | DSL constructor for the hydra.java.syntax.RecordComponentModifier wrapper+recordComponentModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.RecordComponentModifier+recordComponentModifier x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.RecordComponentModifier"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RecordComponentModifier+recordComponentModifierRecordComponentModifier :: Typed.TypedName Syntax.RecordComponentModifier+recordComponentModifierRecordComponentModifier = Typed.TypedName (Model.Name "hydra.java.syntax.RecordComponentModifier")++-- | DSL name token for hydra.java.syntax.RecordComponent+recordComponentRecordComponent :: Typed.TypedName Syntax.RecordComponent+recordComponentRecordComponent = Typed.TypedName (Model.Name "hydra.java.syntax.RecordComponent")++-- | DSL injection for the simple variant of hydra.java.syntax.RecordComponent+recordComponentSimple :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.RecordComponent+recordComponentSimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the variableArity variant of hydra.java.syntax.RecordComponent+recordComponentVariableArity :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.RecordComponent+recordComponentVariableArity x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variableArity"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.RecordComponent_Simple+recordComponent_Simple :: Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.RecordComponent_Simple+recordComponent_Simple modifiers type_ identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.RecordComponent_Simple+recordComponent_SimpleIdentifier :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.Identifier+recordComponent_SimpleIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.RecordComponent_Simple+recordComponent_SimpleModifiers :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm [Syntax.RecordComponentModifier]+recordComponent_SimpleModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RecordComponent_Simple+recordComponent_SimpleRecordComponent_Simple :: Typed.TypedName Syntax.RecordComponent_Simple+recordComponent_SimpleRecordComponent_Simple = Typed.TypedName (Model.Name "hydra.java.syntax.RecordComponent_Simple")++-- | DSL accessor for the type field of hydra.java.syntax.RecordComponent_Simple+recordComponent_SimpleType :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.UnannType+recordComponent_SimpleType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.RecordComponent_Simple+recordComponent_SimpleWithIdentifier :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.RecordComponent_Simple+recordComponent_SimpleWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.RecordComponent_Simple+recordComponent_SimpleWithModifiers :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.RecordComponent_Simple+recordComponent_SimpleWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.RecordComponent_Simple+recordComponent_SimpleWithType :: Typed.TypedTerm Syntax.RecordComponent_Simple -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.RecordComponent_Simple+recordComponent_SimpleWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordComponent_Simple"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.RecordDeclaration+recordDeclaration :: Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.RecordHeader -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.RecordBody -> Typed.TypedTerm Syntax.RecordDeclaration+recordDeclaration modifiers identifier parameters header implements body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm parameters)},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm header)},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Typed.unTypedTerm implements)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.RecordDeclaration+recordDeclarationBody :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordBody+recordDeclarationBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the header field of hydra.java.syntax.RecordDeclaration+recordDeclarationHeader :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordHeader+recordDeclarationHeader x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.RecordDeclaration+recordDeclarationIdentifier :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier+recordDeclarationIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the implements field of hydra.java.syntax.RecordDeclaration+recordDeclarationImplements :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.InterfaceType]+recordDeclarationImplements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.RecordDeclaration+recordDeclarationModifiers :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.ClassModifier]+recordDeclarationModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the parameters field of hydra.java.syntax.RecordDeclaration+recordDeclarationParameters :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.TypeParameter]+recordDeclarationParameters x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RecordDeclaration+recordDeclarationRecordDeclaration :: Typed.TypedName Syntax.RecordDeclaration+recordDeclarationRecordDeclaration = Typed.TypedName (Model.Name "hydra.java.syntax.RecordDeclaration")++-- | DSL updater for the body field of hydra.java.syntax.RecordDeclaration+recordDeclarationWithBody :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordBody -> Typed.TypedTerm Syntax.RecordDeclaration+recordDeclarationWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the header field of hydra.java.syntax.RecordDeclaration+recordDeclarationWithHeader :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.RecordHeader -> Typed.TypedTerm Syntax.RecordDeclaration+recordDeclarationWithHeader original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.RecordDeclaration+recordDeclarationWithIdentifier :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.RecordDeclaration+recordDeclarationWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the implements field of hydra.java.syntax.RecordDeclaration+recordDeclarationWithImplements :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.InterfaceType] -> Typed.TypedTerm Syntax.RecordDeclaration+recordDeclarationWithImplements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.RecordDeclaration+recordDeclarationWithModifiers :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.ClassModifier] -> Typed.TypedTerm Syntax.RecordDeclaration+recordDeclarationWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "parameters")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the parameters field of hydra.java.syntax.RecordDeclaration+recordDeclarationWithParameters :: Typed.TypedTerm Syntax.RecordDeclaration -> Typed.TypedTerm [Syntax.TypeParameter] -> Typed.TypedTerm Syntax.RecordDeclaration+recordDeclarationWithParameters original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "parameters"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "header"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "header")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "implements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "implements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordDeclaration"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.RecordHeader wrapper+recordHeader :: Typed.TypedTerm [Syntax.RecordComponent] -> Typed.TypedTerm Syntax.RecordHeader+recordHeader x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.RecordHeader"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RecordHeader+recordHeaderRecordHeader :: Typed.TypedName Syntax.RecordHeader+recordHeaderRecordHeader = Typed.TypedName (Model.Name "hydra.java.syntax.RecordHeader")++-- | DSL constructor for hydra.java.syntax.RecordPattern+recordPattern :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.RecordPattern+recordPattern type_ patterns =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "patterns"),+ Model.fieldTerm = (Typed.unTypedTerm patterns)}]}))++-- | DSL accessor for the patterns field of hydra.java.syntax.RecordPattern+recordPatternPatterns :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm [Syntax.Pattern]+recordPatternPatterns x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordPattern"),+ Model.projectionFieldName = (Model.Name "patterns")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RecordPattern+recordPatternRecordPattern :: Typed.TypedName Syntax.RecordPattern+recordPatternRecordPattern = Typed.TypedName (Model.Name "hydra.java.syntax.RecordPattern")++-- | DSL accessor for the type field of hydra.java.syntax.RecordPattern+recordPatternType :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm Syntax.ReferenceType+recordPatternType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordPattern"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the patterns field of hydra.java.syntax.RecordPattern+recordPatternWithPatterns :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm [Syntax.Pattern] -> Typed.TypedTerm Syntax.RecordPattern+recordPatternWithPatterns original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordPattern"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "patterns"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.java.syntax.RecordPattern+recordPatternWithType :: Typed.TypedTerm Syntax.RecordPattern -> Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.RecordPattern+recordPatternWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RecordPattern"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "patterns"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RecordPattern"),+ Model.projectionFieldName = (Model.Name "patterns")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the array variant of hydra.java.syntax.ReferenceType+referenceTypeArray :: Typed.TypedTerm Syntax.ArrayType -> Typed.TypedTerm Syntax.ReferenceType+referenceTypeArray x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ReferenceType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the classOrInterface variant of hydra.java.syntax.ReferenceType+referenceTypeClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.ReferenceType+referenceTypeClassOrInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ReferenceType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.ReferenceType+referenceTypeReferenceType :: Typed.TypedName Syntax.ReferenceType+referenceTypeReferenceType = Typed.TypedName (Model.Name "hydra.java.syntax.ReferenceType")++-- | DSL injection for the variable variant of hydra.java.syntax.ReferenceType+referenceTypeVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.ReferenceType+referenceTypeVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ReferenceType"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the greaterThan variant of hydra.java.syntax.RelationalExpression+relationalExpressionGreaterThan :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpressionGreaterThan x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "greaterThan"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the greaterThanEqual variant of hydra.java.syntax.RelationalExpression+relationalExpressionGreaterThanEqual :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpressionGreaterThanEqual x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "greaterThanEqual"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the instanceofExpression variant of hydra.java.syntax.RelationalExpression+relationalExpressionInstanceofExpression :: Typed.TypedTerm Syntax.InstanceofExpression -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpressionInstanceofExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "instanceofExpression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the lessThan variant of hydra.java.syntax.RelationalExpression+relationalExpressionLessThan :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpressionLessThan x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "lessThan"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the lessThanEqual variant of hydra.java.syntax.RelationalExpression+relationalExpressionLessThanEqual :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpressionLessThanEqual x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "lessThanEqual"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.RelationalExpression+relationalExpressionRelationalExpression :: Typed.TypedName Syntax.RelationalExpression+relationalExpressionRelationalExpression = Typed.TypedName (Model.Name "hydra.java.syntax.RelationalExpression")++-- | DSL injection for the simple variant of hydra.java.syntax.RelationalExpression+relationalExpressionSimple :: Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpressionSimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThan :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThan lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL constructor for hydra.java.syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqual :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqual lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpression_GreaterThanEqualLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualRelationalExpression_GreaterThanEqual :: Typed.TypedName Syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualRelationalExpression_GreaterThanEqual =+ Typed.TypedName (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual")++-- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.ShiftExpression+relationalExpression_GreaterThanEqualRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThanEqual+relationalExpression_GreaterThanEqualWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpression_GreaterThanLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanRelationalExpression_GreaterThan :: Typed.TypedName Syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanRelationalExpression_GreaterThan =+ Typed.TypedName (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan")++-- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.ShiftExpression+relationalExpression_GreaterThanRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_GreaterThan -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_GreaterThan+relationalExpression_GreaterThanWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.RelationalExpression_LessThan+relationalExpression_LessThan :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThan+relationalExpression_LessThan lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThan"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL constructor for hydra.java.syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqual :: Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqual lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpression_LessThanEqualLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualRelationalExpression_LessThanEqual :: Typed.TypedName Syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualRelationalExpression_LessThanEqual =+ Typed.TypedName (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual")++-- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.ShiftExpression+relationalExpression_LessThanEqualRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThanEqual+relationalExpression_LessThanEqualWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the lhs field of hydra.java.syntax.RelationalExpression_LessThan+relationalExpression_LessThanLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.RelationalExpression+relationalExpression_LessThanLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThan"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.RelationalExpression_LessThan+relationalExpression_LessThanRelationalExpression_LessThan :: Typed.TypedName Syntax.RelationalExpression_LessThan+relationalExpression_LessThanRelationalExpression_LessThan =+ Typed.TypedName (Model.Name "hydra.java.syntax.RelationalExpression_LessThan")++-- | DSL accessor for the rhs field of hydra.java.syntax.RelationalExpression_LessThan+relationalExpression_LessThanRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.ShiftExpression+relationalExpression_LessThanRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThan"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.java.syntax.RelationalExpression_LessThan+relationalExpression_LessThanWithLhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.RelationalExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThan+relationalExpression_LessThanWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThan"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThan"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.RelationalExpression_LessThan+relationalExpression_LessThanWithRhs :: Typed.TypedTerm Syntax.RelationalExpression_LessThan -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.RelationalExpression_LessThan+relationalExpression_LessThanWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThan"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.RelationalExpression_LessThan"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.RequiresModifier+requiresModifierRequiresModifier :: Typed.TypedName Syntax.RequiresModifier+requiresModifierRequiresModifier = Typed.TypedName (Model.Name "hydra.java.syntax.RequiresModifier")++-- | DSL injection for the static variant of hydra.java.syntax.RequiresModifier+requiresModifierStatic :: Typed.TypedTerm Syntax.RequiresModifier+requiresModifierStatic =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RequiresModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "static"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the transitive variant of hydra.java.syntax.RequiresModifier+requiresModifierTransitive :: Typed.TypedTerm Syntax.RequiresModifier+requiresModifierTransitive =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.RequiresModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "transitive"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the local variant of hydra.java.syntax.Resource+resourceLocal :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Resource+resourceLocal x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Resource"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "local"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.Resource+resourceResource :: Typed.TypedName Syntax.Resource+resourceResource = Typed.TypedName (Model.Name "hydra.java.syntax.Resource")++-- | DSL constructor for the hydra.java.syntax.ResourceSpecification wrapper+resourceSpecification :: Typed.TypedTerm [Syntax.Resource] -> Typed.TypedTerm Syntax.ResourceSpecification+resourceSpecification x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ResourceSpecification"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ResourceSpecification+resourceSpecificationResourceSpecification :: Typed.TypedName Syntax.ResourceSpecification+resourceSpecificationResourceSpecification = Typed.TypedName (Model.Name "hydra.java.syntax.ResourceSpecification")++-- | DSL injection for the variable variant of hydra.java.syntax.Resource+resourceVariable :: Typed.TypedTerm Syntax.VariableAccess -> Typed.TypedTerm Syntax.Resource+resourceVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Resource"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.Resource_Local+resource_Local :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Resource_Local+resource_Local modifiers type_ identifier expression =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)}]}))++-- | DSL accessor for the expression field of hydra.java.syntax.Resource_Local+resource_LocalExpression :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Expression+resource_LocalExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.Resource_Local+resource_LocalIdentifier :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Identifier+resource_LocalIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.Resource_Local+resource_LocalModifiers :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm [Syntax.VariableModifier]+resource_LocalModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Resource_Local+resource_LocalResource_Local :: Typed.TypedName Syntax.Resource_Local+resource_LocalResource_Local = Typed.TypedName (Model.Name "hydra.java.syntax.Resource_Local")++-- | DSL accessor for the type field of hydra.java.syntax.Resource_Local+resource_LocalType :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.LocalVariableType+resource_LocalType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expression field of hydra.java.syntax.Resource_Local+resource_LocalWithExpression :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Resource_Local+resource_LocalWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.Resource_Local+resource_LocalWithIdentifier :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.Resource_Local+resource_LocalWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.Resource_Local+resource_LocalWithModifiers :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.Resource_Local+resource_LocalWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.Resource_Local+resource_LocalWithType :: Typed.TypedTerm Syntax.Resource_Local -> Typed.TypedTerm Syntax.LocalVariableType -> Typed.TypedTerm Syntax.Resource_Local+resource_LocalWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Resource_Local"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.Result+resultResult :: Typed.TypedName Syntax.Result+resultResult = Typed.TypedName (Model.Name "hydra.java.syntax.Result")++-- | DSL injection for the type variant of hydra.java.syntax.Result+resultType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Result+resultType x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Result"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the void variant of hydra.java.syntax.Result+resultVoid :: Typed.TypedTerm Syntax.Result+resultVoid =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Result"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "void"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for the hydra.java.syntax.ReturnStatement wrapper+returnStatement :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.ReturnStatement+returnStatement x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ReturnStatement"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ReturnStatement+returnStatementReturnStatement :: Typed.TypedName Syntax.ReturnStatement+returnStatementReturnStatement = Typed.TypedName (Model.Name "hydra.java.syntax.ReturnStatement")++-- | DSL name token for hydra.java.syntax.ShiftExpression+shiftExpressionShiftExpression :: Typed.TypedName Syntax.ShiftExpression+shiftExpressionShiftExpression = Typed.TypedName (Model.Name "hydra.java.syntax.ShiftExpression")++-- | DSL injection for the shiftLeft variant of hydra.java.syntax.ShiftExpression+shiftExpressionShiftLeft :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression+shiftExpressionShiftLeft x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "shiftLeft"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the shiftRight variant of hydra.java.syntax.ShiftExpression+shiftExpressionShiftRight :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression+shiftExpressionShiftRight x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "shiftRight"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the shiftRightZeroFill variant of hydra.java.syntax.ShiftExpression+shiftExpressionShiftRightZeroFill :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression+shiftExpressionShiftRightZeroFill x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "shiftRightZeroFill"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the unary variant of hydra.java.syntax.ShiftExpression+shiftExpressionUnary :: Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.ShiftExpression+shiftExpressionUnary x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "unary"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.ShiftExpression_Binary+shiftExpression_Binary :: Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.ShiftExpression_Binary+shiftExpression_Binary lhs rhs =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ShiftExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm lhs)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.java.syntax.ShiftExpression_Binary+shiftExpression_BinaryLhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression+shiftExpression_BinaryLhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.java.syntax.ShiftExpression_Binary+shiftExpression_BinaryRhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression+shiftExpression_BinaryRhs x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ShiftExpression_Binary+shiftExpression_BinaryShiftExpression_Binary :: Typed.TypedName Syntax.ShiftExpression_Binary+shiftExpression_BinaryShiftExpression_Binary = Typed.TypedName (Model.Name "hydra.java.syntax.ShiftExpression_Binary")++-- | DSL updater for the lhs field of hydra.java.syntax.ShiftExpression_Binary+shiftExpression_BinaryWithLhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.ShiftExpression -> Typed.TypedTerm Syntax.ShiftExpression_Binary+shiftExpression_BinaryWithLhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ShiftExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression_Binary"),+ Model.projectionFieldName = (Model.Name "rhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.java.syntax.ShiftExpression_Binary+shiftExpression_BinaryWithRhs :: Typed.TypedTerm Syntax.ShiftExpression_Binary -> Typed.TypedTerm Syntax.AdditiveExpression -> Typed.TypedTerm Syntax.ShiftExpression_Binary+shiftExpression_BinaryWithRhs original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.ShiftExpression_Binary"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "lhs"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.ShiftExpression_Binary"),+ Model.projectionFieldName = (Model.Name "lhs")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "rhs"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.java.syntax.SimpleTypeName wrapper+simpleTypeName :: Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.SimpleTypeName+simpleTypeName x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.SimpleTypeName"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SimpleTypeName+simpleTypeNameSimpleTypeName :: Typed.TypedName Syntax.SimpleTypeName+simpleTypeNameSimpleTypeName = Typed.TypedName (Model.Name "hydra.java.syntax.SimpleTypeName")++-- | DSL constructor for hydra.java.syntax.SingleElementAnnotation+singleElementAnnotation :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm (Maybe Syntax.ElementValue) -> Typed.TypedTerm Syntax.SingleElementAnnotation+singleElementAnnotation name value =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SingleElementAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm name)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL accessor for the name field of hydra.java.syntax.SingleElementAnnotation+singleElementAnnotationName :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm Syntax.TypeName+singleElementAnnotationName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleElementAnnotation"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SingleElementAnnotation+singleElementAnnotationSingleElementAnnotation :: Typed.TypedName Syntax.SingleElementAnnotation+singleElementAnnotationSingleElementAnnotation = Typed.TypedName (Model.Name "hydra.java.syntax.SingleElementAnnotation")++-- | DSL accessor for the value field of hydra.java.syntax.SingleElementAnnotation+singleElementAnnotationValue :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm (Maybe Syntax.ElementValue)+singleElementAnnotationValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleElementAnnotation"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.java.syntax.SingleElementAnnotation+singleElementAnnotationWithName :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.SingleElementAnnotation+singleElementAnnotationWithName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SingleElementAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleElementAnnotation"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the value field of hydra.java.syntax.SingleElementAnnotation+singleElementAnnotationWithValue :: Typed.TypedTerm Syntax.SingleElementAnnotation -> Typed.TypedTerm (Maybe Syntax.ElementValue) -> Typed.TypedTerm Syntax.SingleElementAnnotation+singleElementAnnotationWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SingleElementAnnotation"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "name"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleElementAnnotation"),+ Model.projectionFieldName = (Model.Name "name")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.SingleStaticImportDeclaration+singleStaticImportDeclaration :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.SingleStaticImportDeclaration+singleStaticImportDeclaration typeName identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeName"),+ Model.fieldTerm = (Typed.unTypedTerm typeName)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the identifier field of hydra.java.syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationIdentifier :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.Identifier+singleStaticImportDeclarationIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationSingleStaticImportDeclaration :: Typed.TypedName Syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationSingleStaticImportDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration")++-- | DSL accessor for the typeName field of hydra.java.syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationTypeName :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.TypeName+singleStaticImportDeclarationTypeName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"),+ Model.projectionFieldName = (Model.Name "typeName")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the identifier field of hydra.java.syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationWithIdentifier :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeName"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"),+ Model.projectionFieldName = (Model.Name "typeName")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the typeName field of hydra.java.syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationWithTypeName :: Typed.TypedTerm Syntax.SingleStaticImportDeclaration -> Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.SingleStaticImportDeclaration+singleStaticImportDeclarationWithTypeName original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeName"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.SingleTypeImportDeclaration wrapper+singleTypeImportDeclaration :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.SingleTypeImportDeclaration+singleTypeImportDeclaration x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.SingleTypeImportDeclaration"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SingleTypeImportDeclaration+singleTypeImportDeclarationSingleTypeImportDeclaration :: Typed.TypedName Syntax.SingleTypeImportDeclaration+singleTypeImportDeclarationSingleTypeImportDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.SingleTypeImportDeclaration")++-- | DSL injection for the assignment variant of hydra.java.syntax.StatementExpression+statementExpressionAssignment :: Typed.TypedTerm Syntax.Assignment -> Typed.TypedTerm Syntax.StatementExpression+statementExpressionAssignment x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "assignment"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the classInstanceCreation variant of hydra.java.syntax.StatementExpression+statementExpressionClassInstanceCreation :: Typed.TypedTerm Syntax.ClassInstanceCreationExpression -> Typed.TypedTerm Syntax.StatementExpression+statementExpressionClassInstanceCreation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classInstanceCreation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the methodInvocation variant of hydra.java.syntax.StatementExpression+statementExpressionMethodInvocation :: Typed.TypedTerm Syntax.MethodInvocation -> Typed.TypedTerm Syntax.StatementExpression+statementExpressionMethodInvocation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "methodInvocation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the postDecrement variant of hydra.java.syntax.StatementExpression+statementExpressionPostDecrement :: Typed.TypedTerm Syntax.PostDecrementExpression -> Typed.TypedTerm Syntax.StatementExpression+statementExpressionPostDecrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "postDecrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the postIncrement variant of hydra.java.syntax.StatementExpression+statementExpressionPostIncrement :: Typed.TypedTerm Syntax.PostIncrementExpression -> Typed.TypedTerm Syntax.StatementExpression+statementExpressionPostIncrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "postIncrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the preDecrement variant of hydra.java.syntax.StatementExpression+statementExpressionPreDecrement :: Typed.TypedTerm Syntax.PreDecrementExpression -> Typed.TypedTerm Syntax.StatementExpression+statementExpressionPreDecrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "preDecrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the preIncrement variant of hydra.java.syntax.StatementExpression+statementExpressionPreIncrement :: Typed.TypedTerm Syntax.PreIncrementExpression -> Typed.TypedTerm Syntax.StatementExpression+statementExpressionPreIncrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "preIncrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.StatementExpression+statementExpressionStatementExpression :: Typed.TypedName Syntax.StatementExpression+statementExpressionStatementExpression = Typed.TypedName (Model.Name "hydra.java.syntax.StatementExpression")++-- | DSL injection for the for variant of hydra.java.syntax.Statement+statementFor :: Typed.TypedTerm Syntax.ForStatement -> Typed.TypedTerm Syntax.Statement+statementFor x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Statement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "for"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ifThen variant of hydra.java.syntax.Statement+statementIfThen :: Typed.TypedTerm Syntax.IfThenStatement -> Typed.TypedTerm Syntax.Statement+statementIfThen x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Statement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "ifThen"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ifThenElse variant of hydra.java.syntax.Statement+statementIfThenElse :: Typed.TypedTerm Syntax.IfThenElseStatement -> Typed.TypedTerm Syntax.Statement+statementIfThenElse x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Statement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "ifThenElse"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the labeled variant of hydra.java.syntax.Statement+statementLabeled :: Typed.TypedTerm Syntax.LabeledStatement -> Typed.TypedTerm Syntax.Statement+statementLabeled x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Statement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "labeled"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the for variant of hydra.java.syntax.StatementNoShortIf+statementNoShortIfFor :: Typed.TypedTerm Syntax.ForStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+statementNoShortIfFor x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementNoShortIf"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "for"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ifThenElse variant of hydra.java.syntax.StatementNoShortIf+statementNoShortIfIfThenElse :: Typed.TypedTerm Syntax.IfThenElseStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+statementNoShortIfIfThenElse x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementNoShortIf"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "ifThenElse"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the labeled variant of hydra.java.syntax.StatementNoShortIf+statementNoShortIfLabeled :: Typed.TypedTerm Syntax.LabeledStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+statementNoShortIfLabeled x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementNoShortIf"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "labeled"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.StatementNoShortIf+statementNoShortIfStatementNoShortIf :: Typed.TypedName Syntax.StatementNoShortIf+statementNoShortIfStatementNoShortIf = Typed.TypedName (Model.Name "hydra.java.syntax.StatementNoShortIf")++-- | DSL injection for the while variant of hydra.java.syntax.StatementNoShortIf+statementNoShortIfWhile :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+statementNoShortIfWhile x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementNoShortIf"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "while"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the withoutTrailing variant of hydra.java.syntax.StatementNoShortIf+statementNoShortIfWithoutTrailing :: Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement -> Typed.TypedTerm Syntax.StatementNoShortIf+statementNoShortIfWithoutTrailing x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementNoShortIf"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "withoutTrailing"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.Statement+statementStatement :: Typed.TypedName Syntax.Statement+statementStatement = Typed.TypedName (Model.Name "hydra.java.syntax.Statement")++-- | DSL injection for the while variant of hydra.java.syntax.Statement+statementWhile :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm Syntax.Statement+statementWhile x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Statement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "while"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the withoutTrailing variant of hydra.java.syntax.Statement+statementWithoutTrailing :: Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement -> Typed.TypedTerm Syntax.Statement+statementWithoutTrailing x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Statement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "withoutTrailing"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the assert variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementAssert :: Typed.TypedTerm Syntax.AssertStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementAssert x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "assert"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the block variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementBlock x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the break variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementBreak :: Typed.TypedTerm Syntax.BreakStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementBreak x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "break"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the continue variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementContinue :: Typed.TypedTerm Syntax.ContinueStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementContinue x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "continue"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the do variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementDo :: Typed.TypedTerm Syntax.DoStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementDo x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "do"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the empty variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementEmpty :: Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementEmpty =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "empty"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the expression variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementExpression :: Typed.TypedTerm Syntax.ExpressionStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the return variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementReturn :: Typed.TypedTerm Syntax.ReturnStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementReturn x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "return"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementStatementWithoutTrailingSubstatement :: Typed.TypedName Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementStatementWithoutTrailingSubstatement =+ Typed.TypedName (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement")++-- | DSL injection for the switch variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementSwitch :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementSwitch x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "switch"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the synchronized variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementSynchronized :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementSynchronized x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "synchronized"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the throw variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementThrow :: Typed.TypedTerm Syntax.ThrowStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementThrow x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "throw"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the try variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementTry :: Typed.TypedTerm Syntax.TryStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementTry x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "try"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the yield variant of hydra.java.syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementYield :: Typed.TypedTerm Syntax.YieldStatement -> Typed.TypedTerm Syntax.StatementWithoutTrailingSubstatement+statementWithoutTrailingSubstatementYield x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "yield"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for the hydra.java.syntax.StaticImportOnDemandDeclaration wrapper+staticImportOnDemandDeclaration :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.StaticImportOnDemandDeclaration+staticImportOnDemandDeclaration x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.StaticImportOnDemandDeclaration"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.StaticImportOnDemandDeclaration+staticImportOnDemandDeclarationStaticImportOnDemandDeclaration :: Typed.TypedName Syntax.StaticImportOnDemandDeclaration+staticImportOnDemandDeclarationStaticImportOnDemandDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.StaticImportOnDemandDeclaration")++-- | DSL constructor for the hydra.java.syntax.StaticInitializer wrapper+staticInitializer :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.StaticInitializer+staticInitializer x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.StaticInitializer"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.StaticInitializer+staticInitializerStaticInitializer :: Typed.TypedName Syntax.StaticInitializer+staticInitializerStaticInitializer = Typed.TypedName (Model.Name "hydra.java.syntax.StaticInitializer")++-- | DSL constructor for the hydra.java.syntax.StringLiteral wrapper+stringLiteral :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.StringLiteral+stringLiteral x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.StringLiteral"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.StringLiteral+stringLiteralStringLiteral :: Typed.TypedName Syntax.StringLiteral+stringLiteralStringLiteral = Typed.TypedName (Model.Name "hydra.java.syntax.StringLiteral")++-- | DSL injection for the legacy variant of hydra.java.syntax.SwitchBlock+switchBlockLegacy :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm Syntax.SwitchBlock+switchBlockLegacy x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlock"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "legacy"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the rules variant of hydra.java.syntax.SwitchBlock+switchBlockRules :: Typed.TypedTerm [Syntax.SwitchRule] -> Typed.TypedTerm Syntax.SwitchBlock+switchBlockRules x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlock"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "rules"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.SwitchBlockStatementGroup+switchBlockStatementGroup :: Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.SwitchBlockStatementGroup+switchBlockStatementGroup labels statements =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "labels"),+ Model.fieldTerm = (Typed.unTypedTerm labels)},+ Model.Field {+ Model.fieldName = (Model.Name "statements"),+ Model.fieldTerm = (Typed.unTypedTerm statements)}]}))++-- | DSL accessor for the labels field of hydra.java.syntax.SwitchBlockStatementGroup+switchBlockStatementGroupLabels :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.SwitchLabel]+switchBlockStatementGroupLabels x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"),+ Model.projectionFieldName = (Model.Name "labels")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the statements field of hydra.java.syntax.SwitchBlockStatementGroup+switchBlockStatementGroupStatements :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.BlockStatement]+switchBlockStatementGroupStatements x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"),+ Model.projectionFieldName = (Model.Name "statements")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SwitchBlockStatementGroup+switchBlockStatementGroupSwitchBlockStatementGroup :: Typed.TypedName Syntax.SwitchBlockStatementGroup+switchBlockStatementGroupSwitchBlockStatementGroup =+ Typed.TypedName (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup")++-- | DSL updater for the labels field of hydra.java.syntax.SwitchBlockStatementGroup+switchBlockStatementGroupWithLabels :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm Syntax.SwitchBlockStatementGroup+switchBlockStatementGroupWithLabels original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "labels"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "statements"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"),+ Model.projectionFieldName = (Model.Name "statements")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the statements field of hydra.java.syntax.SwitchBlockStatementGroup+switchBlockStatementGroupWithStatements :: Typed.TypedTerm Syntax.SwitchBlockStatementGroup -> Typed.TypedTerm [Syntax.BlockStatement] -> Typed.TypedTerm Syntax.SwitchBlockStatementGroup+switchBlockStatementGroupWithStatements original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "labels"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"),+ Model.projectionFieldName = (Model.Name "labels")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "statements"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL name token for hydra.java.syntax.SwitchBlock+switchBlockSwitchBlock :: Typed.TypedName Syntax.SwitchBlock+switchBlockSwitchBlock = Typed.TypedName (Model.Name "hydra.java.syntax.SwitchBlock")++-- | DSL constructor for hydra.java.syntax.SwitchBlock_Legacy+switchBlock_Legacy :: Typed.TypedTerm [Syntax.SwitchBlockStatementGroup] -> Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm Syntax.SwitchBlock_Legacy+switchBlock_Legacy groups trailingLabels =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchBlock_Legacy"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "groups"),+ Model.fieldTerm = (Typed.unTypedTerm groups)},+ Model.Field {+ Model.fieldName = (Model.Name "trailingLabels"),+ Model.fieldTerm = (Typed.unTypedTerm trailingLabels)}]}))++-- | DSL accessor for the groups field of hydra.java.syntax.SwitchBlock_Legacy+switchBlock_LegacyGroups :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchBlockStatementGroup]+switchBlock_LegacyGroups x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlock_Legacy"),+ Model.projectionFieldName = (Model.Name "groups")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SwitchBlock_Legacy+switchBlock_LegacySwitchBlock_Legacy :: Typed.TypedName Syntax.SwitchBlock_Legacy+switchBlock_LegacySwitchBlock_Legacy = Typed.TypedName (Model.Name "hydra.java.syntax.SwitchBlock_Legacy")++-- | DSL accessor for the trailingLabels field of hydra.java.syntax.SwitchBlock_Legacy+switchBlock_LegacyTrailingLabels :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchLabel]+switchBlock_LegacyTrailingLabels x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlock_Legacy"),+ Model.projectionFieldName = (Model.Name "trailingLabels")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the groups field of hydra.java.syntax.SwitchBlock_Legacy+switchBlock_LegacyWithGroups :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchBlockStatementGroup] -> Typed.TypedTerm Syntax.SwitchBlock_Legacy+switchBlock_LegacyWithGroups original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchBlock_Legacy"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "groups"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "trailingLabels"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlock_Legacy"),+ Model.projectionFieldName = (Model.Name "trailingLabels")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the trailingLabels field of hydra.java.syntax.SwitchBlock_Legacy+switchBlock_LegacyWithTrailingLabels :: Typed.TypedTerm Syntax.SwitchBlock_Legacy -> Typed.TypedTerm [Syntax.SwitchLabel] -> Typed.TypedTerm Syntax.SwitchBlock_Legacy+switchBlock_LegacyWithTrailingLabels original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchBlock_Legacy"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "groups"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchBlock_Legacy"),+ Model.projectionFieldName = (Model.Name "groups")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "trailingLabels"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.SwitchExpression+switchExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchExpression+switchExpression cond block =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm block)}]}))++-- | DSL accessor for the block field of hydra.java.syntax.SwitchExpression+switchExpressionBlock :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.SwitchBlock+switchExpressionBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchExpression"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.SwitchExpression+switchExpressionCond :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.Expression+switchExpressionCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchExpression"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SwitchExpression+switchExpressionSwitchExpression :: Typed.TypedName Syntax.SwitchExpression+switchExpressionSwitchExpression = Typed.TypedName (Model.Name "hydra.java.syntax.SwitchExpression")++-- | DSL updater for the block field of hydra.java.syntax.SwitchExpression+switchExpressionWithBlock :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchExpression+switchExpressionWithBlock original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchExpression"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.SwitchExpression+switchExpressionWithCond :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchExpression+switchExpressionWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchExpression"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the case variant of hydra.java.syntax.SwitchLabel+switchLabelCase :: Typed.TypedTerm [Syntax.CaseConstant] -> Typed.TypedTerm Syntax.SwitchLabel+switchLabelCase x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchLabel"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "case"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the casePattern variant of hydra.java.syntax.SwitchLabel+switchLabelCasePattern :: Typed.TypedTerm Syntax.CasePattern -> Typed.TypedTerm Syntax.SwitchLabel+switchLabelCasePattern x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchLabel"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "casePattern"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the default variant of hydra.java.syntax.SwitchLabel+switchLabelDefault :: Typed.TypedTerm Syntax.SwitchLabel+switchLabelDefault =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchLabel"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "default"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the null variant of hydra.java.syntax.SwitchLabel+switchLabelNull :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.SwitchLabel+switchLabelNull x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchLabel"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "null"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.SwitchLabel+switchLabelSwitchLabel :: Typed.TypedName Syntax.SwitchLabel+switchLabelSwitchLabel = Typed.TypedName (Model.Name "hydra.java.syntax.SwitchLabel")++-- | DSL constructor for hydra.java.syntax.SwitchRule+switchRule :: Typed.TypedTerm Syntax.SwitchLabel -> Typed.TypedTerm Syntax.SwitchRule_Body -> Typed.TypedTerm Syntax.SwitchRule+switchRule label body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchRule"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "label"),+ Model.fieldTerm = (Typed.unTypedTerm label)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.SwitchRule+switchRuleBody :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchRule_Body+switchRuleBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchRule"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the label field of hydra.java.syntax.SwitchRule+switchRuleLabel :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchLabel+switchRuleLabel x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchRule"),+ Model.projectionFieldName = (Model.Name "label")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SwitchRule+switchRuleSwitchRule :: Typed.TypedName Syntax.SwitchRule+switchRuleSwitchRule = Typed.TypedName (Model.Name "hydra.java.syntax.SwitchRule")++-- | DSL updater for the body field of hydra.java.syntax.SwitchRule+switchRuleWithBody :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchRule_Body -> Typed.TypedTerm Syntax.SwitchRule+switchRuleWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchRule"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "label"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchRule"),+ Model.projectionFieldName = (Model.Name "label")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the label field of hydra.java.syntax.SwitchRule+switchRuleWithLabel :: Typed.TypedTerm Syntax.SwitchRule -> Typed.TypedTerm Syntax.SwitchLabel -> Typed.TypedTerm Syntax.SwitchRule+switchRuleWithLabel original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchRule"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "label"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchRule"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the block variant of hydra.java.syntax.SwitchRule_Body+switchRule_BodyBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.SwitchRule_Body+switchRule_BodyBlock x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchRule_Body"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the expression variant of hydra.java.syntax.SwitchRule_Body+switchRule_BodyExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchRule_Body+switchRule_BodyExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchRule_Body"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.SwitchRule_Body+switchRule_BodySwitchRule_Body :: Typed.TypedName Syntax.SwitchRule_Body+switchRule_BodySwitchRule_Body = Typed.TypedName (Model.Name "hydra.java.syntax.SwitchRule_Body")++-- | DSL injection for the throw variant of hydra.java.syntax.SwitchRule_Body+switchRule_BodyThrow :: Typed.TypedTerm Syntax.ThrowStatement -> Typed.TypedTerm Syntax.SwitchRule_Body+switchRule_BodyThrow x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.SwitchRule_Body"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "throw"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.SwitchStatement+switchStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchStatement+switchStatement cond block =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm block)}]}))++-- | DSL accessor for the block field of hydra.java.syntax.SwitchStatement+switchStatementBlock :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.SwitchBlock+switchStatementBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.SwitchStatement+switchStatementCond :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.Expression+switchStatementCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SwitchStatement+switchStatementSwitchStatement :: Typed.TypedName Syntax.SwitchStatement+switchStatementSwitchStatement = Typed.TypedName (Model.Name "hydra.java.syntax.SwitchStatement")++-- | DSL updater for the block field of hydra.java.syntax.SwitchStatement+switchStatementWithBlock :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.SwitchBlock -> Typed.TypedTerm Syntax.SwitchStatement+switchStatementWithBlock original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.SwitchStatement+switchStatementWithCond :: Typed.TypedTerm Syntax.SwitchStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SwitchStatement+switchStatementWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SwitchStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SwitchStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.SynchronizedStatement+synchronizedStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.SynchronizedStatement+synchronizedStatement expression block =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SynchronizedStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm expression)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm block)}]}))++-- | DSL accessor for the block field of hydra.java.syntax.SynchronizedStatement+synchronizedStatementBlock :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Block+synchronizedStatementBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SynchronizedStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the expression field of hydra.java.syntax.SynchronizedStatement+synchronizedStatementExpression :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Expression+synchronizedStatementExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SynchronizedStatement"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.SynchronizedStatement+synchronizedStatementSynchronizedStatement :: Typed.TypedName Syntax.SynchronizedStatement+synchronizedStatementSynchronizedStatement = Typed.TypedName (Model.Name "hydra.java.syntax.SynchronizedStatement")++-- | DSL updater for the block field of hydra.java.syntax.SynchronizedStatement+synchronizedStatementWithBlock :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.SynchronizedStatement+synchronizedStatementWithBlock original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SynchronizedStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SynchronizedStatement"),+ Model.projectionFieldName = (Model.Name "expression")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the expression field of hydra.java.syntax.SynchronizedStatement+synchronizedStatementWithExpression :: Typed.TypedTerm Syntax.SynchronizedStatement -> Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.SynchronizedStatement+synchronizedStatementWithExpression original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.SynchronizedStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.SynchronizedStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.TextBlock wrapper+textBlock :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.TextBlock+textBlock x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.TextBlock"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TextBlock+textBlockTextBlock :: Typed.TypedName Syntax.TextBlock+textBlockTextBlock = Typed.TypedName (Model.Name "hydra.java.syntax.TextBlock")++-- | DSL constructor for the hydra.java.syntax.ThrowStatement wrapper+throwStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.ThrowStatement+throwStatement x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.ThrowStatement"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.ThrowStatement+throwStatementThrowStatement :: Typed.TypedName Syntax.ThrowStatement+throwStatementThrowStatement = Typed.TypedName (Model.Name "hydra.java.syntax.ThrowStatement")++-- | DSL constructor for the hydra.java.syntax.Throws wrapper+throws :: Typed.TypedTerm [Syntax.ExceptionType] -> Typed.TypedTerm Syntax.Throws+throws x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.Throws"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.Throws+throwsThrows :: Typed.TypedName Syntax.Throws+throwsThrows = Typed.TypedName (Model.Name "hydra.java.syntax.Throws")++-- | DSL injection for the class variant of hydra.java.syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationClass :: Typed.TypedTerm Syntax.ClassDeclaration -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationClass x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "class"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the interface variant of hydra.java.syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationInterface :: Typed.TypedTerm Syntax.InterfaceDeclaration -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "interface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the none variant of hydra.java.syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationNone :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationNone =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "none"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationTopLevelClassOrInterfaceDeclaration :: Typed.TypedName Syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationTopLevelClassOrInterfaceDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration")++-- | DSL constructor for hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithComments :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithComments value comments =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm value)},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Typed.unTypedTerm comments)}]}))++-- | DSL accessor for the comments field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsComments :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm (Maybe String)+topLevelClassOrInterfaceDeclarationWithCommentsComments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "comments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsTopLevelClassOrInterfaceDeclarationWithComments :: Typed.TypedName Syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsTopLevelClassOrInterfaceDeclarationWithComments =+ Typed.TypedName (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments")++-- | DSL accessor for the value field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsValue :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration+topLevelClassOrInterfaceDeclarationWithCommentsValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the comments field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsWithComments :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsWithComments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "value")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the value field of hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsWithValue :: Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclaration -> Typed.TypedTerm Syntax.TopLevelClassOrInterfaceDeclarationWithComments+topLevelClassOrInterfaceDeclarationWithCommentsWithValue original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "value"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "comments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"),+ Model.projectionFieldName = (Model.Name "comments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the simple variant of hydra.java.syntax.TryStatement+tryStatementSimple :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.TryStatement+tryStatementSimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TryStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.TryStatement+tryStatementTryStatement :: Typed.TypedName Syntax.TryStatement+tryStatementTryStatement = Typed.TypedName (Model.Name "hydra.java.syntax.TryStatement")++-- | DSL injection for the withFinally variant of hydra.java.syntax.TryStatement+tryStatementWithFinally :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.TryStatement+tryStatementWithFinally x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TryStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "withFinally"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the withResources variant of hydra.java.syntax.TryStatement+tryStatementWithResources :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.TryStatement+tryStatementWithResources x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TryStatement"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "withResources"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.TryStatement_Simple+tryStatement_Simple :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.Catches -> Typed.TypedTerm Syntax.TryStatement_Simple+tryStatement_Simple block catches =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryStatement_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm block)},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Typed.unTypedTerm catches)}]}))++-- | DSL accessor for the block field of hydra.java.syntax.TryStatement_Simple+tryStatement_SimpleBlock :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Block+tryStatement_SimpleBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_Simple"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the catches field of hydra.java.syntax.TryStatement_Simple+tryStatement_SimpleCatches :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Catches+tryStatement_SimpleCatches x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_Simple"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TryStatement_Simple+tryStatement_SimpleTryStatement_Simple :: Typed.TypedName Syntax.TryStatement_Simple+tryStatement_SimpleTryStatement_Simple = Typed.TypedName (Model.Name "hydra.java.syntax.TryStatement_Simple")++-- | DSL updater for the block field of hydra.java.syntax.TryStatement_Simple+tryStatement_SimpleWithBlock :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.TryStatement_Simple+tryStatement_SimpleWithBlock original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryStatement_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_Simple"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the catches field of hydra.java.syntax.TryStatement_Simple+tryStatement_SimpleWithCatches :: Typed.TypedTerm Syntax.TryStatement_Simple -> Typed.TypedTerm Syntax.Catches -> Typed.TypedTerm Syntax.TryStatement_Simple+tryStatement_SimpleWithCatches original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryStatement_Simple"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_Simple"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinally :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm Syntax.Finally -> Typed.TypedTerm Syntax.TryStatement_WithFinally+tryStatement_WithFinally block catches finally =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm block)},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Typed.unTypedTerm catches)},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Typed.unTypedTerm finally)}]}))++-- | DSL accessor for the block field of hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinallyBlock :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Block+tryStatement_WithFinallyBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the catches field of hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinallyCatches :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm (Maybe Syntax.Catches)+tryStatement_WithFinallyCatches x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the finally field of hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinallyFinally :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Finally+tryStatement_WithFinallyFinally x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "finally")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinallyTryStatement_WithFinally :: Typed.TypedName Syntax.TryStatement_WithFinally+tryStatement_WithFinallyTryStatement_WithFinally =+ Typed.TypedName (Model.Name "hydra.java.syntax.TryStatement_WithFinally")++-- | DSL updater for the block field of hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinallyWithBlock :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.TryStatement_WithFinally+tryStatement_WithFinallyWithBlock original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "finally")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the catches field of hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinallyWithCatches :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm Syntax.TryStatement_WithFinally+tryStatement_WithFinallyWithCatches original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "finally")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the finally field of hydra.java.syntax.TryStatement_WithFinally+tryStatement_WithFinallyWithFinally :: Typed.TypedTerm Syntax.TryStatement_WithFinally -> Typed.TypedTerm Syntax.Finally -> Typed.TypedTerm Syntax.TryStatement_WithFinally+tryStatement_WithFinallyWithFinally original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryStatement_WithFinally"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatement :: Typed.TypedTerm Syntax.ResourceSpecification -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm (Maybe Syntax.Finally) -> Typed.TypedTerm Syntax.TryWithResourcesStatement+tryWithResourcesStatement resourceSpecification block catches finally =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "resourceSpecification"),+ Model.fieldTerm = (Typed.unTypedTerm resourceSpecification)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm block)},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Typed.unTypedTerm catches)},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Typed.unTypedTerm finally)}]}))++-- | DSL accessor for the block field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementBlock :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.Block+tryWithResourcesStatementBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the catches field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementCatches :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Catches)+tryWithResourcesStatementCatches x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the finally field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementFinally :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Finally)+tryWithResourcesStatementFinally x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "finally")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the resourceSpecification field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementResourceSpecification :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.ResourceSpecification+tryWithResourcesStatementResourceSpecification x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "resourceSpecification")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementTryWithResourcesStatement :: Typed.TypedName Syntax.TryWithResourcesStatement+tryWithResourcesStatementTryWithResourcesStatement =+ Typed.TypedName (Model.Name "hydra.java.syntax.TryWithResourcesStatement")++-- | DSL updater for the block field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementWithBlock :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.Block -> Typed.TypedTerm Syntax.TryWithResourcesStatement+tryWithResourcesStatementWithBlock original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "resourceSpecification"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "resourceSpecification")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "finally")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the catches field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementWithCatches :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Catches) -> Typed.TypedTerm Syntax.TryWithResourcesStatement+tryWithResourcesStatementWithCatches original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "resourceSpecification"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "resourceSpecification")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "finally")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the finally field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementWithFinally :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm (Maybe Syntax.Finally) -> Typed.TypedTerm Syntax.TryWithResourcesStatement+tryWithResourcesStatementWithFinally original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "resourceSpecification"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "resourceSpecification")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the resourceSpecification field of hydra.java.syntax.TryWithResourcesStatement+tryWithResourcesStatementWithResourceSpecification :: Typed.TypedTerm Syntax.TryWithResourcesStatement -> Typed.TypedTerm Syntax.ResourceSpecification -> Typed.TypedTerm Syntax.TryWithResourcesStatement+tryWithResourcesStatementWithResourceSpecification original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "resourceSpecification"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "block"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "block")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "catches"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "catches")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "finally"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TryWithResourcesStatement"),+ Model.projectionFieldName = (Model.Name "finally")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the reference variant of hydra.java.syntax.TypeArgument+typeArgumentReference :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.TypeArgument+typeArgumentReference x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeArgument"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "reference"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.TypeArgument+typeArgumentTypeArgument :: Typed.TypedName Syntax.TypeArgument+typeArgumentTypeArgument = Typed.TypedName (Model.Name "hydra.java.syntax.TypeArgument")++-- | DSL injection for the wildcard variant of hydra.java.syntax.TypeArgument+typeArgumentWildcard :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm Syntax.TypeArgument+typeArgumentWildcard x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeArgument"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "wildcard"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the arguments variant of hydra.java.syntax.TypeArgumentsOrDiamond+typeArgumentsOrDiamondArguments :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.TypeArgumentsOrDiamond+typeArgumentsOrDiamondArguments x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeArgumentsOrDiamond"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the diamond variant of hydra.java.syntax.TypeArgumentsOrDiamond+typeArgumentsOrDiamondDiamond :: Typed.TypedTerm Syntax.TypeArgumentsOrDiamond+typeArgumentsOrDiamondDiamond =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeArgumentsOrDiamond"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "diamond"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.TypeArgumentsOrDiamond+typeArgumentsOrDiamondTypeArgumentsOrDiamond :: Typed.TypedName Syntax.TypeArgumentsOrDiamond+typeArgumentsOrDiamondTypeArgumentsOrDiamond = Typed.TypedName (Model.Name "hydra.java.syntax.TypeArgumentsOrDiamond")++-- | DSL injection for the classOrInterface variant of hydra.java.syntax.TypeBound+typeBoundClassOrInterface :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm Syntax.TypeBound+typeBoundClassOrInterface x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeBound"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.TypeBound+typeBoundTypeBound :: Typed.TypedName Syntax.TypeBound+typeBoundTypeBound = Typed.TypedName (Model.Name "hydra.java.syntax.TypeBound")++-- | DSL injection for the variable variant of hydra.java.syntax.TypeBound+typeBoundVariable :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.TypeBound+typeBoundVariable x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeBound"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "variable"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.java.syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterface :: Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterface type_ additional =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "additional"),+ Model.fieldTerm = (Typed.unTypedTerm additional)}]}))++-- | DSL accessor for the additional field of hydra.java.syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceAdditional :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm [Syntax.AdditionalBound]+typeBound_ClassOrInterfaceAdditional x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "additional")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceType :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType+typeBound_ClassOrInterfaceType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceTypeBound_ClassOrInterface :: Typed.TypedName Syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceTypeBound_ClassOrInterface =+ Typed.TypedName (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface")++-- | DSL updater for the additional field of hydra.java.syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceWithAdditional :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm [Syntax.AdditionalBound] -> Typed.TypedTerm Syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceWithAdditional original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "additional"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the type field of hydra.java.syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceWithType :: Typed.TypedTerm Syntax.TypeBound_ClassOrInterface -> Typed.TypedTerm Syntax.ClassOrInterfaceType -> Typed.TypedTerm Syntax.TypeBound_ClassOrInterface+typeBound_ClassOrInterfaceWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "additional"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"),+ Model.projectionFieldName = (Model.Name "additional")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.TypeIdentifier wrapper+typeIdentifier :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.TypeIdentifier+typeIdentifier x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.TypeIdentifier"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypeIdentifier+typeIdentifierTypeIdentifier :: Typed.TypedName Syntax.TypeIdentifier+typeIdentifierTypeIdentifier = Typed.TypedName (Model.Name "hydra.java.syntax.TypeIdentifier")++-- | DSL constructor for the hydra.java.syntax.TypeImportOnDemandDeclaration wrapper+typeImportOnDemandDeclaration :: Typed.TypedTerm Syntax.PackageOrTypeName -> Typed.TypedTerm Syntax.TypeImportOnDemandDeclaration+typeImportOnDemandDeclaration x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.TypeImportOnDemandDeclaration"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypeImportOnDemandDeclaration+typeImportOnDemandDeclarationTypeImportOnDemandDeclaration :: Typed.TypedName Syntax.TypeImportOnDemandDeclaration+typeImportOnDemandDeclarationTypeImportOnDemandDeclaration =+ Typed.TypedName (Model.Name "hydra.java.syntax.TypeImportOnDemandDeclaration")++-- | DSL constructor for hydra.java.syntax.TypeName+typeName :: Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm (Maybe Syntax.PackageOrTypeName) -> Typed.TypedTerm Syntax.TypeName+typeName identifier qualifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm qualifier)}]}))++-- | DSL injection for the array variant of hydra.java.syntax.TypeNameArray+typeNameArrayArray :: Typed.TypedTerm Syntax.TypeNameArray -> Typed.TypedTerm Syntax.TypeNameArray+typeNameArrayArray x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeNameArray"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "array"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the simple variant of hydra.java.syntax.TypeNameArray+typeNameArraySimple :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.TypeNameArray+typeNameArraySimple x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.TypeNameArray"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "simple"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.TypeNameArray+typeNameArrayTypeNameArray :: Typed.TypedName Syntax.TypeNameArray+typeNameArrayTypeNameArray = Typed.TypedName (Model.Name "hydra.java.syntax.TypeNameArray")++-- | DSL accessor for the identifier field of hydra.java.syntax.TypeName+typeNameIdentifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.TypeIdentifier+typeNameIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeName"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qualifier field of hydra.java.syntax.TypeName+typeNameQualifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm (Maybe Syntax.PackageOrTypeName)+typeNameQualifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeName"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypeName+typeNameTypeName :: Typed.TypedName Syntax.TypeName+typeNameTypeName = Typed.TypedName (Model.Name "hydra.java.syntax.TypeName")++-- | DSL updater for the identifier field of hydra.java.syntax.TypeName+typeNameWithIdentifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeName+typeNameWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeName"),+ Model.projectionFieldName = (Model.Name "qualifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the qualifier field of hydra.java.syntax.TypeName+typeNameWithQualifier :: Typed.TypedTerm Syntax.TypeName -> Typed.TypedTerm (Maybe Syntax.PackageOrTypeName) -> Typed.TypedTerm Syntax.TypeName+typeNameWithQualifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeName"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeName"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "qualifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.java.syntax.TypeParameter+typeParameter :: Typed.TypedTerm [Syntax.TypeParameterModifier] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm (Maybe Syntax.TypeBound) -> Typed.TypedTerm Syntax.TypeParameter+typeParameter modifiers identifier bound =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "bound"),+ Model.fieldTerm = (Typed.unTypedTerm bound)}]}))++-- | DSL accessor for the bound field of hydra.java.syntax.TypeParameter+typeParameterBound :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm (Maybe Syntax.TypeBound)+typeParameterBound x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "bound")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.TypeParameter+typeParameterIdentifier :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm Syntax.TypeIdentifier+typeParameterIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for the hydra.java.syntax.TypeParameterModifier wrapper+typeParameterModifier :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.TypeParameterModifier+typeParameterModifier x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.TypeParameterModifier"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypeParameterModifier+typeParameterModifierTypeParameterModifier :: Typed.TypedName Syntax.TypeParameterModifier+typeParameterModifierTypeParameterModifier = Typed.TypedName (Model.Name "hydra.java.syntax.TypeParameterModifier")++-- | DSL accessor for the modifiers field of hydra.java.syntax.TypeParameter+typeParameterModifiers :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm [Syntax.TypeParameterModifier]+typeParameterModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypeParameter+typeParameterTypeParameter :: Typed.TypedName Syntax.TypeParameter+typeParameterTypeParameter = Typed.TypedName (Model.Name "hydra.java.syntax.TypeParameter")++-- | DSL updater for the bound field of hydra.java.syntax.TypeParameter+typeParameterWithBound :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm (Maybe Syntax.TypeBound) -> Typed.TypedTerm Syntax.TypeParameter+typeParameterWithBound original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "bound"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.TypeParameter+typeParameterWithIdentifier :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeParameter+typeParameterWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "bound"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "bound")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.TypeParameter+typeParameterWithModifiers :: Typed.TypedTerm Syntax.TypeParameter -> Typed.TypedTerm [Syntax.TypeParameterModifier] -> Typed.TypedTerm Syntax.TypeParameter+typeParameterWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "bound"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeParameter"),+ Model.projectionFieldName = (Model.Name "bound")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.java.syntax.TypePattern wrapper+typePattern :: Typed.TypedTerm Syntax.LocalVariableDeclaration -> Typed.TypedTerm Syntax.TypePattern+typePattern x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.TypePattern"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypePattern+typePatternTypePattern :: Typed.TypedName Syntax.TypePattern+typePatternTypePattern = Typed.TypedName (Model.Name "hydra.java.syntax.TypePattern")++-- | DSL injection for the primitive variant of hydra.java.syntax.Type+typePrimitive :: Typed.TypedTerm Syntax.PrimitiveTypeWithAnnotations -> Typed.TypedTerm Syntax.Type+typePrimitive x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Type"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "primitive"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the reference variant of hydra.java.syntax.Type+typeReference :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.Type+typeReference x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.Type"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "reference"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.Type+typeType :: Typed.TypedName Syntax.Type+typeType = Typed.TypedName (Model.Name "hydra.java.syntax.Type")++-- | DSL constructor for hydra.java.syntax.TypeVariable+typeVariable :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeVariable+typeVariable annotations identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeVariable"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.TypeVariable+typeVariableAnnotations :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm [Syntax.Annotation]+typeVariableAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeVariable"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.TypeVariable+typeVariableIdentifier :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.TypeIdentifier+typeVariableIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeVariable"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.TypeVariable+typeVariableTypeVariable :: Typed.TypedName Syntax.TypeVariable+typeVariableTypeVariable = Typed.TypedName (Model.Name "hydra.java.syntax.TypeVariable")++-- | DSL updater for the annotations field of hydra.java.syntax.TypeVariable+typeVariableWithAnnotations :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.TypeVariable+typeVariableWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeVariable"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeVariable"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.TypeVariable+typeVariableWithIdentifier :: Typed.TypedTerm Syntax.TypeVariable -> Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.TypeVariable+typeVariableWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.TypeVariable"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.TypeVariable"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the body of hydra.java.syntax.AdditionalBound+unAdditionalBound :: Typed.TypedTerm Syntax.AdditionalBound -> Typed.TypedTerm Syntax.InterfaceType+unAdditionalBound x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.AdditionalBound")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.AmbiguousName+unAmbiguousName :: Typed.TypedTerm Syntax.AmbiguousName -> Typed.TypedTerm [Syntax.Identifier]+unAmbiguousName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.AmbiguousName")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.AndExpression+unAndExpression :: Typed.TypedTerm Syntax.AndExpression -> Typed.TypedTerm [Syntax.EqualityExpression]+unAndExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.AndExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.AnnotationInterfaceBody+unAnnotationInterfaceBody :: Typed.TypedTerm Syntax.AnnotationInterfaceBody -> Typed.TypedTerm [Syntax.AnnotationInterfaceMemberDeclaration]+unAnnotationInterfaceBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.AnnotationInterfaceBody")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ArrayInitializer+unArrayInitializer :: Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm [[Syntax.VariableInitializer]]+unArrayInitializer x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ArrayInitializer")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.Block+unBlock :: Typed.TypedTerm Syntax.Block -> Typed.TypedTerm [Syntax.BlockStatement]+unBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.Block")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.BreakStatement+unBreakStatement :: Typed.TypedTerm Syntax.BreakStatement -> Typed.TypedTerm (Maybe Syntax.Identifier)+unBreakStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.BreakStatement")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.CaseConstant+unCaseConstant :: Typed.TypedTerm Syntax.CaseConstant -> Typed.TypedTerm Syntax.ConditionalExpression+unCaseConstant x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.CaseConstant")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.Catches+unCatches :: Typed.TypedTerm Syntax.Catches -> Typed.TypedTerm [Syntax.CatchClause]+unCatches x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.Catches")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ClassBody+unClassBody :: Typed.TypedTerm Syntax.ClassBody -> Typed.TypedTerm [Syntax.ClassBodyDeclarationWithComments]+unClassBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ClassBody")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ConditionalAndExpression+unConditionalAndExpression :: Typed.TypedTerm Syntax.ConditionalAndExpression -> Typed.TypedTerm [Syntax.InclusiveOrExpression]+unConditionalAndExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ConditionalAndExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ConditionalOrExpression+unConditionalOrExpression :: Typed.TypedTerm Syntax.ConditionalOrExpression -> Typed.TypedTerm [Syntax.ConditionalAndExpression]+unConditionalOrExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ConditionalOrExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ConstantExpression+unConstantExpression :: Typed.TypedTerm Syntax.ConstantExpression -> Typed.TypedTerm Syntax.Expression+unConstantExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ConstantExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ContinueStatement+unContinueStatement :: Typed.TypedTerm Syntax.ContinueStatement -> Typed.TypedTerm (Maybe Syntax.Identifier)+unContinueStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ContinueStatement")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.DefaultValue+unDefaultValue :: Typed.TypedTerm Syntax.DefaultValue -> Typed.TypedTerm Syntax.ElementValue+unDefaultValue x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.DefaultValue")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.Dims+unDims :: Typed.TypedTerm Syntax.Dims -> Typed.TypedTerm [[Syntax.Annotation]]+unDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.Dims")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ElementValueArrayInitializer+unElementValueArrayInitializer :: Typed.TypedTerm Syntax.ElementValueArrayInitializer -> Typed.TypedTerm [Syntax.ElementValue]+unElementValueArrayInitializer x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ElementValueArrayInitializer")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.EnumBody+unEnumBody :: Typed.TypedTerm Syntax.EnumBody -> Typed.TypedTerm [Syntax.EnumBody_Element]+unEnumBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.EnumBody")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.EnumConstantModifier+unEnumConstantModifier :: Typed.TypedTerm Syntax.EnumConstantModifier -> Typed.TypedTerm Syntax.Annotation+unEnumConstantModifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.EnumConstantModifier")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ExclusiveOrExpression+unExclusiveOrExpression :: Typed.TypedTerm Syntax.ExclusiveOrExpression -> Typed.TypedTerm [Syntax.AndExpression]+unExclusiveOrExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ExclusiveOrExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ExpressionStatement+unExpressionStatement :: Typed.TypedTerm Syntax.ExpressionStatement -> Typed.TypedTerm Syntax.StatementExpression+unExpressionStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ExpressionStatement")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.Finally+unFinally :: Typed.TypedTerm Syntax.Finally -> Typed.TypedTerm Syntax.Block+unFinally x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.Finally")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.FloatingPointLiteral+unFloatingPointLiteral :: Typed.TypedTerm Syntax.FloatingPointLiteral -> Typed.TypedTerm Double+unFloatingPointLiteral x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.FloatingPointLiteral")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ForUpdate+unForUpdate :: Typed.TypedTerm Syntax.ForUpdate -> Typed.TypedTerm [Syntax.StatementExpression]+unForUpdate x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ForUpdate")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.Guard+unGuard :: Typed.TypedTerm Syntax.Guard -> Typed.TypedTerm Syntax.Expression+unGuard x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.Guard")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.Identifier+unIdentifier :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm String+unIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.Identifier")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.InclusiveOrExpression+unInclusiveOrExpression :: Typed.TypedTerm Syntax.InclusiveOrExpression -> Typed.TypedTerm [Syntax.ExclusiveOrExpression]+unInclusiveOrExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.InclusiveOrExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.InstanceInitializer+unInstanceInitializer :: Typed.TypedTerm Syntax.InstanceInitializer -> Typed.TypedTerm Syntax.Block+unInstanceInitializer x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.InstanceInitializer")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.IntegerLiteral+unIntegerLiteral :: Typed.TypedTerm Syntax.IntegerLiteral -> Typed.TypedTerm Integer+unIntegerLiteral x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.IntegerLiteral")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.InterfaceBody+unInterfaceBody :: Typed.TypedTerm Syntax.InterfaceBody -> Typed.TypedTerm [Syntax.InterfaceMemberDeclarationWithComments]+unInterfaceBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.InterfaceBody")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.InterfaceType+unInterfaceType :: Typed.TypedTerm Syntax.InterfaceType -> Typed.TypedTerm Syntax.ClassType+unInterfaceType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.InterfaceType")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.LocalVariableDeclarationStatement+unLocalVariableDeclarationStatement :: Typed.TypedTerm Syntax.LocalVariableDeclarationStatement -> Typed.TypedTerm Syntax.LocalVariableDeclaration+unLocalVariableDeclarationStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.LocalVariableDeclarationStatement")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.MarkerAnnotation+unMarkerAnnotation :: Typed.TypedTerm Syntax.MarkerAnnotation -> Typed.TypedTerm Syntax.TypeName+unMarkerAnnotation x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.MarkerAnnotation")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.MethodName+unMethodName :: Typed.TypedTerm Syntax.MethodName -> Typed.TypedTerm Syntax.Identifier+unMethodName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.MethodName")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.MethodReference_Array+unMethodReference_Array :: Typed.TypedTerm Syntax.MethodReference_Array -> Typed.TypedTerm Syntax.ArrayType+unMethodReference_Array x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.MethodReference_Array")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.PackageModifier+unPackageModifier :: Typed.TypedTerm Syntax.PackageModifier -> Typed.TypedTerm Syntax.Annotation+unPackageModifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.PackageModifier")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.PackageName+unPackageName :: Typed.TypedTerm Syntax.PackageName -> Typed.TypedTerm [Syntax.Identifier]+unPackageName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.PackageName")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.PackageOrTypeName+unPackageOrTypeName :: Typed.TypedTerm Syntax.PackageOrTypeName -> Typed.TypedTerm [Syntax.Identifier]+unPackageOrTypeName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.PackageOrTypeName")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.PostDecrementExpression+unPostDecrementExpression :: Typed.TypedTerm Syntax.PostDecrementExpression -> Typed.TypedTerm Syntax.PostfixExpression+unPostDecrementExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.PostDecrementExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.PostIncrementExpression+unPostIncrementExpression :: Typed.TypedTerm Syntax.PostIncrementExpression -> Typed.TypedTerm Syntax.PostfixExpression+unPostIncrementExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.PostIncrementExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.PreDecrementExpression+unPreDecrementExpression :: Typed.TypedTerm Syntax.PreDecrementExpression -> Typed.TypedTerm Syntax.UnaryExpression+unPreDecrementExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.PreDecrementExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.PreIncrementExpression+unPreIncrementExpression :: Typed.TypedTerm Syntax.PreIncrementExpression -> Typed.TypedTerm Syntax.UnaryExpression+unPreIncrementExpression x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.PreIncrementExpression")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.RecordBody+unRecordBody :: Typed.TypedTerm Syntax.RecordBody -> Typed.TypedTerm [Syntax.RecordBodyDeclaration]+unRecordBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.RecordBody")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.RecordComponentModifier+unRecordComponentModifier :: Typed.TypedTerm Syntax.RecordComponentModifier -> Typed.TypedTerm Syntax.Annotation+unRecordComponentModifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.RecordComponentModifier")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.RecordHeader+unRecordHeader :: Typed.TypedTerm Syntax.RecordHeader -> Typed.TypedTerm [Syntax.RecordComponent]+unRecordHeader x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.RecordHeader")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ResourceSpecification+unResourceSpecification :: Typed.TypedTerm Syntax.ResourceSpecification -> Typed.TypedTerm [Syntax.Resource]+unResourceSpecification x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ResourceSpecification")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ReturnStatement+unReturnStatement :: Typed.TypedTerm Syntax.ReturnStatement -> Typed.TypedTerm (Maybe Syntax.Expression)+unReturnStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ReturnStatement")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.SimpleTypeName+unSimpleTypeName :: Typed.TypedTerm Syntax.SimpleTypeName -> Typed.TypedTerm Syntax.TypeIdentifier+unSimpleTypeName x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.SimpleTypeName")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.SingleTypeImportDeclaration+unSingleTypeImportDeclaration :: Typed.TypedTerm Syntax.SingleTypeImportDeclaration -> Typed.TypedTerm Syntax.TypeName+unSingleTypeImportDeclaration x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.SingleTypeImportDeclaration")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.StaticImportOnDemandDeclaration+unStaticImportOnDemandDeclaration :: Typed.TypedTerm Syntax.StaticImportOnDemandDeclaration -> Typed.TypedTerm Syntax.TypeName+unStaticImportOnDemandDeclaration x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.StaticImportOnDemandDeclaration")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.StaticInitializer+unStaticInitializer :: Typed.TypedTerm Syntax.StaticInitializer -> Typed.TypedTerm Syntax.Block+unStaticInitializer x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.StaticInitializer")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.StringLiteral+unStringLiteral :: Typed.TypedTerm Syntax.StringLiteral -> Typed.TypedTerm String+unStringLiteral x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.StringLiteral")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.TextBlock+unTextBlock :: Typed.TypedTerm Syntax.TextBlock -> Typed.TypedTerm String+unTextBlock x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.TextBlock")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.ThrowStatement+unThrowStatement :: Typed.TypedTerm Syntax.ThrowStatement -> Typed.TypedTerm Syntax.Expression+unThrowStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.ThrowStatement")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.Throws+unThrows :: Typed.TypedTerm Syntax.Throws -> Typed.TypedTerm [Syntax.ExceptionType]+unThrows x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.Throws")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.TypeIdentifier+unTypeIdentifier :: Typed.TypedTerm Syntax.TypeIdentifier -> Typed.TypedTerm Syntax.Identifier+unTypeIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.TypeIdentifier")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.TypeImportOnDemandDeclaration+unTypeImportOnDemandDeclaration :: Typed.TypedTerm Syntax.TypeImportOnDemandDeclaration -> Typed.TypedTerm Syntax.PackageOrTypeName+unTypeImportOnDemandDeclaration x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.TypeImportOnDemandDeclaration")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.TypeParameterModifier+unTypeParameterModifier :: Typed.TypedTerm Syntax.TypeParameterModifier -> Typed.TypedTerm Syntax.Annotation+unTypeParameterModifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.TypeParameterModifier")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.TypePattern+unTypePattern :: Typed.TypedTerm Syntax.TypePattern -> Typed.TypedTerm Syntax.LocalVariableDeclaration+unTypePattern x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.TypePattern")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.UnannClassType+unUnannClassType :: Typed.TypedTerm Syntax.UnannClassType -> Typed.TypedTerm Syntax.ClassType+unUnannClassType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.UnannClassType")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.UnannType+unUnannType :: Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.Type+unUnannType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.UnannType")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.java.syntax.YieldStatement+unYieldStatement :: Typed.TypedTerm Syntax.YieldStatement -> Typed.TypedTerm Syntax.Expression+unYieldStatement x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.java.syntax.YieldStatement")),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for the hydra.java.syntax.UnannClassType wrapper+unannClassType :: Typed.TypedTerm Syntax.ClassType -> Typed.TypedTerm Syntax.UnannClassType+unannClassType x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.UnannClassType"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.UnannClassType+unannClassTypeUnannClassType :: Typed.TypedName Syntax.UnannClassType+unannClassTypeUnannClassType = Typed.TypedName (Model.Name "hydra.java.syntax.UnannClassType")++-- | DSL constructor for the hydra.java.syntax.UnannType wrapper+unannType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.UnannType+unannType x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.UnannType"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.UnannType+unannTypeUnannType :: Typed.TypedName Syntax.UnannType+unannTypeUnannType = Typed.TypedName (Model.Name "hydra.java.syntax.UnannType")++-- | DSL injection for the minus variant of hydra.java.syntax.UnaryExpression+unaryExpressionMinus :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpression+unaryExpressionMinus x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "minus"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the cast variant of hydra.java.syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusCast :: Typed.TypedTerm Syntax.CastExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusCast x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "cast"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the not variant of hydra.java.syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusNot :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusNot x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "not"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the postfix variant of hydra.java.syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusPostfix :: Typed.TypedTerm Syntax.PostfixExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusPostfix x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "postfix"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the switchExpression variant of hydra.java.syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusSwitchExpression :: Typed.TypedTerm Syntax.SwitchExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusSwitchExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "switchExpression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the tilde variant of hydra.java.syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusTilde :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusTilde x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "tilde"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusUnaryExpressionNotPlusMinus :: Typed.TypedName Syntax.UnaryExpressionNotPlusMinus+unaryExpressionNotPlusMinusUnaryExpressionNotPlusMinus =+ Typed.TypedName (Model.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus")++-- | DSL injection for the other variant of hydra.java.syntax.UnaryExpression+unaryExpressionOther :: Typed.TypedTerm Syntax.UnaryExpressionNotPlusMinus -> Typed.TypedTerm Syntax.UnaryExpression+unaryExpressionOther x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "other"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the plus variant of hydra.java.syntax.UnaryExpression+unaryExpressionPlus :: Typed.TypedTerm Syntax.UnaryExpression -> Typed.TypedTerm Syntax.UnaryExpression+unaryExpressionPlus x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "plus"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the preDecrement variant of hydra.java.syntax.UnaryExpression+unaryExpressionPreDecrement :: Typed.TypedTerm Syntax.PreDecrementExpression -> Typed.TypedTerm Syntax.UnaryExpression+unaryExpressionPreDecrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "preDecrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the preIncrement variant of hydra.java.syntax.UnaryExpression+unaryExpressionPreIncrement :: Typed.TypedTerm Syntax.PreIncrementExpression -> Typed.TypedTerm Syntax.UnaryExpression+unaryExpressionPreIncrement x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.UnaryExpression"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "preIncrement"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.UnaryExpression+unaryExpressionUnaryExpression :: Typed.TypedName Syntax.UnaryExpression+unaryExpressionUnaryExpression = Typed.TypedName (Model.Name "hydra.java.syntax.UnaryExpression")++-- | DSL constructor for hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpression :: Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpression typeArguments classOrInterface arguments body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm typeArguments)},+ Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm classOrInterface)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm arguments)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the arguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.Expression]+unqualifiedClassInstanceCreationExpressionArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionBody :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassBody)+unqualifiedClassInstanceCreationExpressionBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the classOrInterface field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionClassOrInterface :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate+unqualifiedClassInstanceCreationExpressionClassOrInterface x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "classOrInterface")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typeArguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionTypeArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.TypeArgument]+unqualifiedClassInstanceCreationExpressionTypeArguments x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionUnqualifiedClassInstanceCreationExpression :: Typed.TypedName Syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionUnqualifiedClassInstanceCreationExpression =+ Typed.TypedName (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression")++-- | DSL updater for the arguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.Expression] -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "classOrInterface")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the body field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithBody :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm (Maybe Syntax.ClassBody) -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "classOrInterface")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the classOrInterface field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithClassOrInterface :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm Syntax.ClassOrInterfaceTypeToInstantiate -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithClassOrInterface original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "typeArguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typeArguments field of hydra.java.syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithTypeArguments :: Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression -> Typed.TypedTerm [Syntax.TypeArgument] -> Typed.TypedTerm Syntax.UnqualifiedClassInstanceCreationExpression+unqualifiedClassInstanceCreationExpressionWithTypeArguments original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "typeArguments"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "classOrInterface"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "classOrInterface")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "arguments"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "arguments")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the expressionName variant of hydra.java.syntax.VariableAccess+variableAccessExpressionName :: Typed.TypedTerm Syntax.ExpressionName -> Typed.TypedTerm Syntax.VariableAccess+variableAccessExpressionName x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.VariableAccess"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expressionName"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the fieldAccess variant of hydra.java.syntax.VariableAccess+variableAccessFieldAccess :: Typed.TypedTerm Syntax.FieldAccess -> Typed.TypedTerm Syntax.VariableAccess+variableAccessFieldAccess x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.VariableAccess"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "fieldAccess"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.VariableAccess+variableAccessVariableAccess :: Typed.TypedName Syntax.VariableAccess+variableAccessVariableAccess = Typed.TypedName (Model.Name "hydra.java.syntax.VariableAccess")++-- | DSL constructor for hydra.java.syntax.VariableArityParameter+variableArityParameter :: Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityParameter+variableArityParameter modifiers type_ annotations identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.VariableArityParameter+variableArityParameterAnnotations :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.Annotation]+variableArityParameterAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.VariableArityParameter+variableArityParameterIdentifier :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.Identifier+variableArityParameterIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.VariableArityParameter+variableArityParameterModifiers :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.VariableModifier]+variableArityParameterModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.VariableArityParameter+variableArityParameterType :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.UnannType+variableArityParameterType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.VariableArityParameter+variableArityParameterVariableArityParameter :: Typed.TypedName Syntax.VariableArityParameter+variableArityParameterVariableArityParameter = Typed.TypedName (Model.Name "hydra.java.syntax.VariableArityParameter")++-- | DSL updater for the annotations field of hydra.java.syntax.VariableArityParameter+variableArityParameterWithAnnotations :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.VariableArityParameter+variableArityParameterWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.VariableArityParameter+variableArityParameterWithIdentifier :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityParameter+variableArityParameterWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.VariableArityParameter+variableArityParameterWithModifiers :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm [Syntax.VariableModifier] -> Typed.TypedTerm Syntax.VariableArityParameter+variableArityParameterWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.VariableArityParameter+variableArityParameterWithType :: Typed.TypedTerm Syntax.VariableArityParameter -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.VariableArityParameter+variableArityParameterWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityParameter"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponent :: Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityRecordComponent+variableArityRecordComponent modifiers type_ annotations identifier =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm modifiers)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm type_)},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentAnnotations :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.Annotation]+variableArityRecordComponentAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentIdentifier :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.Identifier+variableArityRecordComponentIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the modifiers field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentModifiers :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.RecordComponentModifier]+variableArityRecordComponentModifiers x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the type field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentType :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.UnannType+variableArityRecordComponentType x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentVariableArityRecordComponent :: Typed.TypedName Syntax.VariableArityRecordComponent+variableArityRecordComponentVariableArityRecordComponent =+ Typed.TypedName (Model.Name "hydra.java.syntax.VariableArityRecordComponent")++-- | DSL updater for the annotations field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentWithAnnotations :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.VariableArityRecordComponent+variableArityRecordComponentWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentWithIdentifier :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableArityRecordComponent+variableArityRecordComponentWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the modifiers field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentWithModifiers :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm [Syntax.RecordComponentModifier] -> Typed.TypedTerm Syntax.VariableArityRecordComponent+variableArityRecordComponentWithModifiers original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "type")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the type field of hydra.java.syntax.VariableArityRecordComponent+variableArityRecordComponentWithType :: Typed.TypedTerm Syntax.VariableArityRecordComponent -> Typed.TypedTerm Syntax.UnannType -> Typed.TypedTerm Syntax.VariableArityRecordComponent+variableArityRecordComponentWithType original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "modifiers"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "modifiers")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "type"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableArityRecordComponent"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.VariableDeclarator+variableDeclarator :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm (Maybe Syntax.VariableInitializer) -> Typed.TypedTerm Syntax.VariableDeclarator+variableDeclarator id initializer =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm id)},+ Model.Field {+ Model.fieldName = (Model.Name "initializer"),+ Model.fieldTerm = (Typed.unTypedTerm initializer)}]}))++-- | DSL accessor for the id field of hydra.java.syntax.VariableDeclarator+variableDeclaratorId :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm Syntax.VariableDeclaratorId+variableDeclaratorId x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclarator"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.java.syntax.VariableDeclaratorId+variableDeclaratorId2 :: Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.VariableDeclaratorId+variableDeclaratorId2 identifier dims =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableDeclaratorId"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm identifier)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm dims)}]}))++-- | DSL accessor for the dims field of hydra.java.syntax.VariableDeclaratorId+variableDeclaratorIdDims :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm (Maybe Syntax.Dims)+variableDeclaratorIdDims x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclaratorId"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the identifier field of hydra.java.syntax.VariableDeclaratorId+variableDeclaratorIdIdentifier :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.Identifier+variableDeclaratorIdIdentifier x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclaratorId"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.VariableDeclaratorId+variableDeclaratorIdVariableDeclaratorId :: Typed.TypedName Syntax.VariableDeclaratorId+variableDeclaratorIdVariableDeclaratorId = Typed.TypedName (Model.Name "hydra.java.syntax.VariableDeclaratorId")++-- | DSL updater for the dims field of hydra.java.syntax.VariableDeclaratorId+variableDeclaratorIdWithDims :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm (Maybe Syntax.Dims) -> Typed.TypedTerm Syntax.VariableDeclaratorId+variableDeclaratorIdWithDims original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableDeclaratorId"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclaratorId"),+ Model.projectionFieldName = (Model.Name "identifier")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the identifier field of hydra.java.syntax.VariableDeclaratorId+variableDeclaratorIdWithIdentifier :: Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.Identifier -> Typed.TypedTerm Syntax.VariableDeclaratorId+variableDeclaratorIdWithIdentifier original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableDeclaratorId"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "identifier"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "dims"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclaratorId"),+ Model.projectionFieldName = (Model.Name "dims")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL accessor for the initializer field of hydra.java.syntax.VariableDeclarator+variableDeclaratorInitializer :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm (Maybe Syntax.VariableInitializer)+variableDeclaratorInitializer x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclarator"),+ Model.projectionFieldName = (Model.Name "initializer")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.VariableDeclarator+variableDeclaratorVariableDeclarator :: Typed.TypedName Syntax.VariableDeclarator+variableDeclaratorVariableDeclarator = Typed.TypedName (Model.Name "hydra.java.syntax.VariableDeclarator")++-- | DSL updater for the id field of hydra.java.syntax.VariableDeclarator+variableDeclaratorWithId :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm Syntax.VariableDeclaratorId -> Typed.TypedTerm Syntax.VariableDeclarator+variableDeclaratorWithId original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "initializer"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclarator"),+ Model.projectionFieldName = (Model.Name "initializer")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the initializer field of hydra.java.syntax.VariableDeclarator+variableDeclaratorWithInitializer :: Typed.TypedTerm Syntax.VariableDeclarator -> Typed.TypedTerm (Maybe Syntax.VariableInitializer) -> Typed.TypedTerm Syntax.VariableDeclarator+variableDeclaratorWithInitializer original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.VariableDeclarator"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "id"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.VariableDeclarator"),+ Model.projectionFieldName = (Model.Name "id")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "initializer"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the arrayInitializer variant of hydra.java.syntax.VariableInitializer+variableInitializerArrayInitializer :: Typed.TypedTerm Syntax.ArrayInitializer -> Typed.TypedTerm Syntax.VariableInitializer+variableInitializerArrayInitializer x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.VariableInitializer"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "arrayInitializer"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the expression variant of hydra.java.syntax.VariableInitializer+variableInitializerExpression :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.VariableInitializer+variableInitializerExpression x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.VariableInitializer"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "expression"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.VariableInitializer+variableInitializerVariableInitializer :: Typed.TypedName Syntax.VariableInitializer+variableInitializerVariableInitializer = Typed.TypedName (Model.Name "hydra.java.syntax.VariableInitializer")++-- | DSL injection for the annotation variant of hydra.java.syntax.VariableModifier+variableModifierAnnotation :: Typed.TypedTerm Syntax.Annotation -> Typed.TypedTerm Syntax.VariableModifier+variableModifierAnnotation x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.VariableModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "annotation"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the final variant of hydra.java.syntax.VariableModifier+variableModifierFinal :: Typed.TypedTerm Syntax.VariableModifier+variableModifierFinal =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.VariableModifier"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "final"),+ Model.fieldTerm = Model.TermUnit}}))++-- | DSL name token for hydra.java.syntax.VariableModifier+variableModifierVariableModifier :: Typed.TypedName Syntax.VariableModifier+variableModifierVariableModifier = Typed.TypedName (Model.Name "hydra.java.syntax.VariableModifier")++-- | DSL constructor for hydra.java.syntax.WhileStatement+whileStatement :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.WhileStatement+whileStatement cond body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.WhileStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.WhileStatement+whileStatementBody :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm Syntax.Statement+whileStatementBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.WhileStatement+whileStatementCond :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm (Maybe Syntax.Expression)+whileStatementCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.java.syntax.WhileStatementNoShortIf+whileStatementNoShortIf :: Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.WhileStatementNoShortIf+whileStatementNoShortIf cond body =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.WhileStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm cond)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.java.syntax.WhileStatementNoShortIf+whileStatementNoShortIfBody :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf+whileStatementNoShortIfBody x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.java.syntax.WhileStatementNoShortIf+whileStatementNoShortIfCond :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression)+whileStatementNoShortIfCond x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.WhileStatementNoShortIf+whileStatementNoShortIfWhileStatementNoShortIf :: Typed.TypedName Syntax.WhileStatementNoShortIf+whileStatementNoShortIfWhileStatementNoShortIf = Typed.TypedName (Model.Name "hydra.java.syntax.WhileStatementNoShortIf")++-- | DSL updater for the body field of hydra.java.syntax.WhileStatementNoShortIf+whileStatementNoShortIfWithBody :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm Syntax.StatementNoShortIf -> Typed.TypedTerm Syntax.WhileStatementNoShortIf+whileStatementNoShortIfWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.WhileStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.WhileStatementNoShortIf+whileStatementNoShortIfWithCond :: Typed.TypedTerm Syntax.WhileStatementNoShortIf -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.WhileStatementNoShortIf+whileStatementNoShortIfWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.WhileStatementNoShortIf"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatementNoShortIf"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL name token for hydra.java.syntax.WhileStatement+whileStatementWhileStatement :: Typed.TypedName Syntax.WhileStatement+whileStatementWhileStatement = Typed.TypedName (Model.Name "hydra.java.syntax.WhileStatement")++-- | DSL updater for the body field of hydra.java.syntax.WhileStatement+whileStatementWithBody :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm Syntax.Statement -> Typed.TypedTerm Syntax.WhileStatement+whileStatementWithBody original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.WhileStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatement"),+ Model.projectionFieldName = (Model.Name "cond")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.java.syntax.WhileStatement+whileStatementWithCond :: Typed.TypedTerm Syntax.WhileStatement -> Typed.TypedTerm (Maybe Syntax.Expression) -> Typed.TypedTerm Syntax.WhileStatement+whileStatementWithCond original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.WhileStatement"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "cond"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "body"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.WhileStatement"),+ Model.projectionFieldName = (Model.Name "body")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.java.syntax.Wildcard+wildcard :: Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm (Maybe Syntax.WildcardBounds) -> Typed.TypedTerm Syntax.Wildcard+wildcard annotations wildcard =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Wildcard"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm annotations)},+ Model.Field {+ Model.fieldName = (Model.Name "wildcard"),+ Model.fieldTerm = (Typed.unTypedTerm wildcard)}]}))++-- | DSL accessor for the annotations field of hydra.java.syntax.Wildcard+wildcardAnnotations :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm [Syntax.Annotation]+wildcardAnnotations x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Wildcard"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL injection for the extends variant of hydra.java.syntax.WildcardBounds+wildcardBoundsExtends :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.WildcardBounds+wildcardBoundsExtends x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.WildcardBounds"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "extends"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the super variant of hydra.java.syntax.WildcardBounds+wildcardBoundsSuper :: Typed.TypedTerm Syntax.ReferenceType -> Typed.TypedTerm Syntax.WildcardBounds+wildcardBoundsSuper x =+ Typed.TypedTerm (Model.TermInject (Model.Injection {+ Model.injectionTypeName = (Model.Name "hydra.java.syntax.WildcardBounds"),+ Model.injectionField = Model.Field {+ Model.fieldName = (Model.Name "super"),+ Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL name token for hydra.java.syntax.WildcardBounds+wildcardBoundsWildcardBounds :: Typed.TypedName Syntax.WildcardBounds+wildcardBoundsWildcardBounds = Typed.TypedName (Model.Name "hydra.java.syntax.WildcardBounds")++-- | DSL name token for hydra.java.syntax.Wildcard+wildcardWildcard :: Typed.TypedName Syntax.Wildcard+wildcardWildcard = Typed.TypedName (Model.Name "hydra.java.syntax.Wildcard")++-- | DSL accessor for the wildcard field of hydra.java.syntax.Wildcard+wildcardWildcard2 :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm (Maybe Syntax.WildcardBounds)+wildcardWildcard2 x =+ Typed.TypedTerm (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Wildcard"),+ Model.projectionFieldName = (Model.Name "wildcard")})),+ Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annotations field of hydra.java.syntax.Wildcard+wildcardWithAnnotations :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm [Syntax.Annotation] -> Typed.TypedTerm Syntax.Wildcard+wildcardWithAnnotations original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Wildcard"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)},+ Model.Field {+ Model.fieldName = (Model.Name "wildcard"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Wildcard"),+ Model.projectionFieldName = (Model.Name "wildcard")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the wildcard field of hydra.java.syntax.Wildcard+wildcardWithWildcard :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm (Maybe Syntax.WildcardBounds) -> Typed.TypedTerm Syntax.Wildcard+wildcardWithWildcard original newVal =+ Typed.TypedTerm (Model.TermRecord (Model.Record {+ Model.recordTypeName = (Model.Name "hydra.java.syntax.Wildcard"),+ Model.recordFields = [+ Model.Field {+ Model.fieldName = (Model.Name "annotations"),+ Model.fieldTerm = (Model.TermApplication (Model.Application {+ Model.applicationFunction = (Model.TermProject (Model.Projection {+ Model.projectionTypeName = (Model.Name "hydra.java.syntax.Wildcard"),+ Model.projectionFieldName = (Model.Name "annotations")})),+ Model.applicationArgument = (Typed.unTypedTerm original)}))},+ Model.Field {+ Model.fieldName = (Model.Name "wildcard"),+ Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.java.syntax.YieldStatement wrapper+yieldStatement :: Typed.TypedTerm Syntax.Expression -> Typed.TypedTerm Syntax.YieldStatement+yieldStatement x =+ Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+ Model.wrappedTermTypeName = (Model.Name "hydra.java.syntax.YieldStatement"),+ Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL name token for hydra.java.syntax.YieldStatement+yieldStatementYieldStatement :: Typed.TypedName Syntax.YieldStatement+yieldStatementYieldStatement = Typed.TypedName (Model.Name "hydra.java.syntax.YieldStatement")
src/main/haskell/Hydra/Java/Environment.hs view
@@ -4,11 +4,11 @@ module Hydra.Java.Environment where -import qualified Hydra.Core as Core-import qualified Hydra.Graph as Graph+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Typing as Typing import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Typing as Typing import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -29,17 +29,17 @@ JavaSymbolClassLocalVariable deriving (Eq, Ord, Read, Show) -_JavaSymbolClass = Core.Name "hydra.java.environment.JavaSymbolClass"+_JavaSymbolClass = Model.Name "hydra.java.environment.JavaSymbolClass" -_JavaSymbolClass_constant = Core.Name "constant"+_JavaSymbolClass_constant = Model.Name "constant" -_JavaSymbolClass_nullaryFunction = Core.Name "nullaryFunction"+_JavaSymbolClass_nullaryFunction = Model.Name "nullaryFunction" -_JavaSymbolClass_hoistedLambda = Core.Name "hoistedLambda"+_JavaSymbolClass_hoistedLambda = Model.Name "hoistedLambda" -_JavaSymbolClass_unaryFunction = Core.Name "unaryFunction"+_JavaSymbolClass_unaryFunction = Model.Name "unaryFunction" -_JavaSymbolClass_localVariable = Core.Name "localVariable"+_JavaSymbolClass_localVariable = Model.Name "localVariable" -- | Feature flags for the target Java version data JavaFeatures =@@ -48,9 +48,9 @@ javaFeaturesSupportsDiamondOperator :: Bool} deriving (Eq, Ord, Read, Show) -_JavaFeatures = Core.Name "hydra.java.environment.JavaFeatures"+_JavaFeatures = Model.Name "hydra.java.environment.JavaFeatures" -_JavaFeatures_supportsDiamondOperator = Core.Name "supportsDiamondOperator"+_JavaFeatures_supportsDiamondOperator = Model.Name "supportsDiamondOperator" -- | Aliases and context for Java code generation data Aliases =@@ -60,56 +60,56 @@ -- | Maps module names to Java package names aliasesPackages :: (M.Map Packaging.ModuleName Syntax.PackageName), -- | Variables bound in pattern matching branches- aliasesBranchVars :: (S.Set Core.Name),+ aliasesBranchVars :: (S.Set Model.Name), -- | Variables that are self-recursive- aliasesRecursiveVars :: (S.Set Core.Name),+ aliasesRecursiveVars :: (S.Set Model.Name), -- | Type parameters that are in scope (from method-level type parameters)- aliasesInScopeTypeParams :: (S.Set Core.Name),+ aliasesInScopeTypeParams :: (S.Set Model.Name), -- | Local variables that have polymorphic types (declared with raw types)- aliasesPolymorphicLocals :: (S.Set Core.Name),+ aliasesPolymorphicLocals :: (S.Set Model.Name), -- | All in-scope Java variable names (for avoiding lambda parameter shadowing)- aliasesInScopeJavaVars :: (S.Set Core.Name),+ aliasesInScopeJavaVars :: (S.Set Model.Name), -- | Variable renames for avoiding shadowing (maps Hydra name to Java name)- aliasesVarRenames :: (M.Map Core.Name Core.Name),+ aliasesVarRenames :: (M.Map Model.Name Model.Name), -- | Lambda-bound variables (including hoisted captures with qualified names)- aliasesLambdaVars :: (S.Set Core.Name),+ aliasesLambdaVars :: (S.Set Model.Name), -- | Type variable substitution: maps fresh inference variable names to canonical scheme variable names- aliasesTypeVarSubst :: (M.Map Core.Name Core.Name),+ aliasesTypeVarSubst :: (M.Map Model.Name Model.Name), -- | Type variables that actually appear in the method's formal parameter types- aliasesTrustedTypeVars :: (S.Set Core.Name),+ aliasesTrustedTypeVars :: (S.Set Model.Name), -- | The enclosing method's codomain (return type), used for casting pair expressions- aliasesMethodCodomain :: (Maybe Core.Type),+ aliasesMethodCodomain :: (Maybe Model.Type), -- | Variables that have been thunked (wrapped in Supplier) for lazy evaluation- aliasesThunkedVars :: (S.Set Core.Name)}+ aliasesThunkedVars :: (S.Set Model.Name)} deriving (Eq, Ord, Read, Show) -_Aliases = Core.Name "hydra.java.environment.Aliases"+_Aliases = Model.Name "hydra.java.environment.Aliases" -_Aliases_currentNamespace = Core.Name "currentNamespace"+_Aliases_currentNamespace = Model.Name "currentNamespace" -_Aliases_packages = Core.Name "packages"+_Aliases_packages = Model.Name "packages" -_Aliases_branchVars = Core.Name "branchVars"+_Aliases_branchVars = Model.Name "branchVars" -_Aliases_recursiveVars = Core.Name "recursiveVars"+_Aliases_recursiveVars = Model.Name "recursiveVars" -_Aliases_inScopeTypeParams = Core.Name "inScopeTypeParams"+_Aliases_inScopeTypeParams = Model.Name "inScopeTypeParams" -_Aliases_polymorphicLocals = Core.Name "polymorphicLocals"+_Aliases_polymorphicLocals = Model.Name "polymorphicLocals" -_Aliases_inScopeJavaVars = Core.Name "inScopeJavaVars"+_Aliases_inScopeJavaVars = Model.Name "inScopeJavaVars" -_Aliases_varRenames = Core.Name "varRenames"+_Aliases_varRenames = Model.Name "varRenames" -_Aliases_lambdaVars = Core.Name "lambdaVars"+_Aliases_lambdaVars = Model.Name "lambdaVars" -_Aliases_typeVarSubst = Core.Name "typeVarSubst"+_Aliases_typeVarSubst = Model.Name "typeVarSubst" -_Aliases_trustedTypeVars = Core.Name "trustedTypeVars"+_Aliases_trustedTypeVars = Model.Name "trustedTypeVars" -_Aliases_methodCodomain = Core.Name "methodCodomain"+_Aliases_methodCodomain = Model.Name "methodCodomain" -_Aliases_thunkedVars = Core.Name "thunkedVars"+_Aliases_thunkedVars = Model.Name "thunkedVars" -- | Environment for Java code generation data JavaEnvironment =@@ -119,8 +119,8 @@ -- | Graph context for type inference javaEnvironmentGraph :: Graph.Graph} -_JavaEnvironment = Core.Name "hydra.java.environment.JavaEnvironment"+_JavaEnvironment = Model.Name "hydra.java.environment.JavaEnvironment" -_JavaEnvironment_aliases = Core.Name "aliases"+_JavaEnvironment_aliases = Model.Name "aliases" -_JavaEnvironment_graph = Core.Name "graph"+_JavaEnvironment_graph = Model.Name "graph"
+ src/main/haskell/Hydra/Java/Gradle.hs view
@@ -0,0 +1,54 @@+-- Note: this is an automatically generated file. Do not edit.++-- | Build configuration for Gradle-built distribution packages.++module Hydra.Java.Gradle where++import qualified Hydra.Core.File as File+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void++-- | Configuration for the Gradle antlr plugin's grammar generation (generateGrammarSource).+data AntlrConfig =+ AntlrConfig {+ -- | Arguments passed to the ANTLR tool, e.g. ["-visitor"] or ["-visitor", "-listener"]. Faithful to ANTLR's command-line interface; covers all ANTLR flags without enumerating them.+ antlrConfigArguments :: [String],+ -- | Directory into which ANTLR emits generated lexer/parser sources, relative to the package root (e.g. "build/generated-src/antlr/main"). The host also folds this into the main source set.+ antlrConfigOutputDirectory :: File.FilePath}+ deriving (Eq, Ord, Read, Show)++_AntlrConfig = Model.Name "hydra.java.gradle.AntlrConfig"++_AntlrConfig_arguments = Model.Name "arguments"++_AntlrConfig_outputDirectory = Model.Name "outputDirectory"++-- | The build configuration for a single Gradle-built distribution package, beyond its generated sources.+data GradleBuildConfiguration =+ GradleBuildConfiguration {+ -- | Third-party (non-project) dependencies required by the package. Inter-package dependencies within the project are derived separately and are not listed here. Each dependency's scope (api/runtime/test/tool) is significant; its name carries the Maven group and artifact separated by a colon.+ gradleBuildConfigurationDependencies :: [Packaging.PackageDependency],+ -- | Source paths or patterns to exclude from compilation, relative to the package root.+ gradleBuildConfigurationExcludes :: [String],+ -- | Additional source directories to fold into the package's main source set, beyond the generated and overlaid sources (e.g. a directory of build-tool-generated sources).+ gradleBuildConfigurationExtraSourceDirs :: [File.FilePath],+ -- | Gradle plugin identifiers to apply to the build, e.g. "antlr". Applied in the given order.+ gradleBuildConfigurationPlugins :: [String],+ -- | ANTLR grammar-generation configuration, present when the package uses the antlr plugin. When given, the host emits the generateGrammarSource configuration and the compileJava-depends-on-generateGrammarSource ordering. Modeled as structured vocabulary rather than a raw Groovy fragment.+ gradleBuildConfigurationAntlr :: (Maybe AntlrConfig)}+ deriving (Eq, Ord, Read, Show)++_GradleBuildConfiguration = Model.Name "hydra.java.gradle.GradleBuildConfiguration"++_GradleBuildConfiguration_dependencies = Model.Name "dependencies"++_GradleBuildConfiguration_excludes = Model.Name "excludes"++_GradleBuildConfiguration_extraSourceDirs = Model.Name "extraSourceDirs"++_GradleBuildConfiguration_plugins = Model.Name "plugins"++_GradleBuildConfiguration_antlr = Model.Name "antlr"
src/main/haskell/Hydra/Java/Language.hs view
@@ -4,33 +4,33 @@ module Hydra.Java.Language where -import qualified Hydra.Ast as Ast-import qualified Hydra.Classes as Classes-import qualified Hydra.Coders as Coders-import qualified Hydra.Core as Core-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Errors as Errors-import qualified Hydra.File as File-import qualified Hydra.Graph as Graph-import qualified Hydra.Json.Model as Model-import qualified Hydra.Lexical as Lexical-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Classes as Classes+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.File as File+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Lexical as Lexical+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Sets as Sets+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -73,16 +73,16 @@ Variants.LiteralVariantString] floatTypes = Sets.fromList [- Core.FloatTypeFloat32,- Core.FloatTypeFloat64]+ Model.FloatTypeFloat32,+ Model.FloatTypeFloat64] integerTypes = Sets.fromList [- Core.IntegerTypeBigint,- Core.IntegerTypeInt8,- Core.IntegerTypeInt16,- Core.IntegerTypeInt32,- Core.IntegerTypeInt64,- Core.IntegerTypeUint16]+ Model.IntegerTypeBigint,+ Model.IntegerTypeInt8,+ Model.IntegerTypeInt16,+ Model.IntegerTypeInt32,+ Model.IntegerTypeInt64,+ Model.IntegerTypeUint16] termVariants = Sets.fromList [ Variants.TermVariantApplication,@@ -140,8 +140,11 @@ keywords, literals]) where- specialNames = [- "Elements"]+ specialNames =+ [+ "Elements",+ "PartialVisitor",+ "Visitor"] classNames = [ "AbstractMethodError",
src/main/haskell/Hydra/Java/Names.hs view
@@ -4,31 +4,31 @@ module Hydra.Java.Names where -import qualified Hydra.Ast as Ast-import qualified Hydra.Classes as Classes-import qualified Hydra.Coders as Coders-import qualified Hydra.Core as Core-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Errors as Errors-import qualified Hydra.Graph as Graph+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Classes as Classes+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Json.Model as Model-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -51,7 +51,7 @@ hashCodeMethodName :: String hashCodeMethodName = "hashCode" --- | The hydra.core package name+-- | The hydra.core.model package name hydraCorePackageName :: Maybe Syntax.PackageName hydraCorePackageName = Just (javaPackageName [@@ -62,11 +62,12 @@ hydraOrdinalMethodName :: String hydraOrdinalMethodName = "hydraOrdinal" --- | The hydra.overlay.java.util package name+-- | The hydra.core.overlay.java.util package name hydraUtilPackageName :: Maybe Syntax.PackageName hydraUtilPackageName = Just (javaPackageName [ "hydra",+ "core", "overlay", "java", "util"])
src/main/haskell/Hydra/Java/Serde.hs view
@@ -4,43 +4,43 @@ module Hydra.Java.Serde where -import qualified Hydra.Ast as Ast-import qualified Hydra.Classes as Classes-import qualified Hydra.Coders as Coders-import qualified Hydra.Constants as Constants-import qualified Hydra.Core as Core-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Errors as Errors-import qualified Hydra.Formatting as Formatting-import qualified Hydra.Graph as Graph+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Classes as Classes+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Constants as Constants+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.Formatting as Formatting+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Overlay.Haskell.Lib.Equality as Equality+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Literals as Literals+import qualified Hydra.Core.Overlay.Haskell.Lib.Logic as Logic+import qualified Hydra.Core.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Core.Overlay.Haskell.Lib.Ordering as Ordering+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Names as Names+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Print.Docs as Docs+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Serialization as Serialization+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Json.Model as Model import qualified Hydra.Jvm.Serde as Serde-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Literals as Literals-import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic-import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals-import qualified Hydra.Overlay.Haskell.Lib.Ordering as Ordering-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings-import qualified Hydra.Names as Names-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Print.Docs as Docs-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational-import qualified Hydra.Serialization as Serialization-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -650,7 +650,7 @@ interfaceTypeToExpr :: Syntax.InterfaceType -> Ast.Expr interfaceTypeToExpr it = classTypeToExpr (Syntax.unInterfaceType it) --- | Render a hydra.packaging.EntityReference as Javadoc link syntax+-- | Render a hydra.core.packaging.EntityReference as Javadoc link syntax javaDocEntityRef :: Packaging.EntityReference -> String javaDocEntityRef ref = case ref of
src/main/haskell/Hydra/Java/Syntax.hs view
@@ -6,3575 +6,3575 @@ module Hydra.Java.Syntax where -import qualified Hydra.Core as Core-import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void--newtype Identifier =- Identifier {- unIdentifier :: String}- deriving (Eq, Ord, Read, Show)--_Identifier = Core.Name "hydra.java.syntax.Identifier"--newtype TypeIdentifier =- TypeIdentifier {- unTypeIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_TypeIdentifier = Core.Name "hydra.java.syntax.TypeIdentifier"--data Literal =- LiteralNull |- LiteralInteger IntegerLiteral |- LiteralFloatingPoint FloatingPointLiteral |- LiteralBoolean Bool |- LiteralCharacter Int |- LiteralString StringLiteral |- LiteralTextBlock TextBlock- deriving (Eq, Ord, Read, Show)--_Literal = Core.Name "hydra.java.syntax.Literal"--_Literal_null = Core.Name "null"--_Literal_integer = Core.Name "integer"--_Literal_floatingPoint = Core.Name "floatingPoint"--_Literal_boolean = Core.Name "boolean"--_Literal_character = Core.Name "character"--_Literal_string = Core.Name "string"--_Literal_textBlock = Core.Name "textBlock"---- | Note: this is an approximation which ignores encoding-newtype IntegerLiteral =- IntegerLiteral {- unIntegerLiteral :: Integer}- deriving (Eq, Ord, Read, Show)--_IntegerLiteral = Core.Name "hydra.java.syntax.IntegerLiteral"---- | Note: this is an approximation which ignores encoding-newtype FloatingPointLiteral =- FloatingPointLiteral {- unFloatingPointLiteral :: Double}- deriving (Eq, Ord, Read, Show)--_FloatingPointLiteral = Core.Name "hydra.java.syntax.FloatingPointLiteral"---- | Note: this is an approximation which ignores encoding-newtype StringLiteral =- StringLiteral {- unStringLiteral :: String}- deriving (Eq, Ord, Read, Show)--_StringLiteral = Core.Name "hydra.java.syntax.StringLiteral"---- | Note: this is an approximation which ignores encoding and incidental whitespace stripping-newtype TextBlock =- TextBlock {- unTextBlock :: String}- deriving (Eq, Ord, Read, Show)--_TextBlock = Core.Name "hydra.java.syntax.TextBlock"--data Type =- TypePrimitive PrimitiveTypeWithAnnotations |- TypeReference ReferenceType- deriving (Eq, Ord, Read, Show)--_Type = Core.Name "hydra.java.syntax.Type"--_Type_primitive = Core.Name "primitive"--_Type_reference = Core.Name "reference"--data PrimitiveTypeWithAnnotations =- PrimitiveTypeWithAnnotations {- primitiveTypeWithAnnotationsType :: PrimitiveType,- primitiveTypeWithAnnotationsAnnotations :: [Annotation]}- deriving (Eq, Ord, Read, Show)--_PrimitiveTypeWithAnnotations = Core.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"--_PrimitiveTypeWithAnnotations_type = Core.Name "type"--_PrimitiveTypeWithAnnotations_annotations = Core.Name "annotations"--data PrimitiveType =- PrimitiveTypeNumeric NumericType |- PrimitiveTypeBoolean- deriving (Eq, Ord, Read, Show)--_PrimitiveType = Core.Name "hydra.java.syntax.PrimitiveType"--_PrimitiveType_numeric = Core.Name "numeric"--_PrimitiveType_boolean = Core.Name "boolean"--data NumericType =- NumericTypeIntegral IntegralType |- NumericTypeFloatingPoint FloatingPointType- deriving (Eq, Ord, Read, Show)--_NumericType = Core.Name "hydra.java.syntax.NumericType"--_NumericType_integral = Core.Name "integral"--_NumericType_floatingPoint = Core.Name "floatingPoint"--data IntegralType =- IntegralTypeByte |- IntegralTypeShort |- IntegralTypeInt |- IntegralTypeLong |- IntegralTypeChar- deriving (Eq, Ord, Read, Show)--_IntegralType = Core.Name "hydra.java.syntax.IntegralType"--_IntegralType_byte = Core.Name "byte"--_IntegralType_short = Core.Name "short"--_IntegralType_int = Core.Name "int"--_IntegralType_long = Core.Name "long"--_IntegralType_char = Core.Name "char"--data FloatingPointType =- FloatingPointTypeFloat |- FloatingPointTypeDouble- deriving (Eq, Ord, Read, Show)--_FloatingPointType = Core.Name "hydra.java.syntax.FloatingPointType"--_FloatingPointType_float = Core.Name "float"--_FloatingPointType_double = Core.Name "double"--data ReferenceType =- ReferenceTypeClassOrInterface ClassOrInterfaceType |- ReferenceTypeVariable TypeVariable |- ReferenceTypeArray ArrayType- deriving (Eq, Ord, Read, Show)--_ReferenceType = Core.Name "hydra.java.syntax.ReferenceType"--_ReferenceType_classOrInterface = Core.Name "classOrInterface"--_ReferenceType_variable = Core.Name "variable"--_ReferenceType_array = Core.Name "array"--data ClassOrInterfaceType =- ClassOrInterfaceTypeClass ClassType |- ClassOrInterfaceTypeInterface InterfaceType- deriving (Eq, Ord, Read, Show)--_ClassOrInterfaceType = Core.Name "hydra.java.syntax.ClassOrInterfaceType"--_ClassOrInterfaceType_class = Core.Name "class"--_ClassOrInterfaceType_interface = Core.Name "interface"--data ClassType =- ClassType {- classTypeAnnotations :: [Annotation],- classTypeQualifier :: ClassTypeQualifier,- classTypeIdentifier :: TypeIdentifier,- classTypeArguments :: [TypeArgument]}- deriving (Eq, Ord, Read, Show)--_ClassType = Core.Name "hydra.java.syntax.ClassType"--_ClassType_annotations = Core.Name "annotations"--_ClassType_qualifier = Core.Name "qualifier"--_ClassType_identifier = Core.Name "identifier"--_ClassType_arguments = Core.Name "arguments"--data ClassTypeQualifier =- ClassTypeQualifierNone |- ClassTypeQualifierPackage PackageName |- ClassTypeQualifierParent ClassOrInterfaceType- deriving (Eq, Ord, Read, Show)--_ClassTypeQualifier = Core.Name "hydra.java.syntax.ClassTypeQualifier"--_ClassTypeQualifier_none = Core.Name "none"--_ClassTypeQualifier_package = Core.Name "package"--_ClassTypeQualifier_parent = Core.Name "parent"--newtype InterfaceType =- InterfaceType {- unInterfaceType :: ClassType}- deriving (Eq, Ord, Read, Show)--_InterfaceType = Core.Name "hydra.java.syntax.InterfaceType"--data TypeVariable =- TypeVariable {- typeVariableAnnotations :: [Annotation],- typeVariableIdentifier :: TypeIdentifier}- deriving (Eq, Ord, Read, Show)--_TypeVariable = Core.Name "hydra.java.syntax.TypeVariable"--_TypeVariable_annotations = Core.Name "annotations"--_TypeVariable_identifier = Core.Name "identifier"--data ArrayType =- ArrayType {- arrayTypeDims :: Dims,- arrayTypeVariant :: ArrayType_Variant}- deriving (Eq, Ord, Read, Show)--_ArrayType = Core.Name "hydra.java.syntax.ArrayType"--_ArrayType_dims = Core.Name "dims"--_ArrayType_variant = Core.Name "variant"--data ArrayType_Variant =- ArrayType_VariantPrimitive PrimitiveTypeWithAnnotations |- ArrayType_VariantClassOrInterface ClassOrInterfaceType |- ArrayType_VariantVariable TypeVariable- deriving (Eq, Ord, Read, Show)--_ArrayType_Variant = Core.Name "hydra.java.syntax.ArrayType_Variant"--_ArrayType_Variant_primitive = Core.Name "primitive"--_ArrayType_Variant_classOrInterface = Core.Name "classOrInterface"--_ArrayType_Variant_variable = Core.Name "variable"--newtype Dims =- Dims {- unDims :: [[Annotation]]}- deriving (Eq, Ord, Read, Show)--_Dims = Core.Name "hydra.java.syntax.Dims"--data TypeParameter =- TypeParameter {- typeParameterModifiers :: [TypeParameterModifier],- typeParameterIdentifier :: TypeIdentifier,- typeParameterBound :: (Maybe TypeBound)}- deriving (Eq, Ord, Read, Show)--_TypeParameter = Core.Name "hydra.java.syntax.TypeParameter"--_TypeParameter_modifiers = Core.Name "modifiers"--_TypeParameter_identifier = Core.Name "identifier"--_TypeParameter_bound = Core.Name "bound"--newtype TypeParameterModifier =- TypeParameterModifier {- unTypeParameterModifier :: Annotation}- deriving (Eq, Ord, Read, Show)--_TypeParameterModifier = Core.Name "hydra.java.syntax.TypeParameterModifier"--data TypeBound =- TypeBoundVariable TypeVariable |- TypeBoundClassOrInterface TypeBound_ClassOrInterface- deriving (Eq, Ord, Read, Show)--_TypeBound = Core.Name "hydra.java.syntax.TypeBound"--_TypeBound_variable = Core.Name "variable"--_TypeBound_classOrInterface = Core.Name "classOrInterface"--data TypeBound_ClassOrInterface =- TypeBound_ClassOrInterface {- typeBound_ClassOrInterfaceType :: ClassOrInterfaceType,- typeBound_ClassOrInterfaceAdditional :: [AdditionalBound]}- deriving (Eq, Ord, Read, Show)--_TypeBound_ClassOrInterface = Core.Name "hydra.java.syntax.TypeBound_ClassOrInterface"--_TypeBound_ClassOrInterface_type = Core.Name "type"--_TypeBound_ClassOrInterface_additional = Core.Name "additional"--newtype AdditionalBound =- AdditionalBound {- unAdditionalBound :: InterfaceType}- deriving (Eq, Ord, Read, Show)--_AdditionalBound = Core.Name "hydra.java.syntax.AdditionalBound"--data TypeArgument =- TypeArgumentReference ReferenceType |- TypeArgumentWildcard Wildcard- deriving (Eq, Ord, Read, Show)--_TypeArgument = Core.Name "hydra.java.syntax.TypeArgument"--_TypeArgument_reference = Core.Name "reference"--_TypeArgument_wildcard = Core.Name "wildcard"--data Wildcard =- Wildcard {- wildcardAnnotations :: [Annotation],- wildcardWildcard :: (Maybe WildcardBounds)}- deriving (Eq, Ord, Read, Show)--_Wildcard = Core.Name "hydra.java.syntax.Wildcard"--_Wildcard_annotations = Core.Name "annotations"--_Wildcard_wildcard = Core.Name "wildcard"--data WildcardBounds =- WildcardBoundsExtends ReferenceType |- WildcardBoundsSuper ReferenceType- deriving (Eq, Ord, Read, Show)--_WildcardBounds = Core.Name "hydra.java.syntax.WildcardBounds"--_WildcardBounds_extends = Core.Name "extends"--_WildcardBounds_super = Core.Name "super"--data ModuleName =- ModuleName {- moduleNameIdentifier :: Identifier,- moduleNameName :: (Maybe ModuleName)}- deriving (Eq, Ord, Read, Show)--_ModuleName = Core.Name "hydra.java.syntax.ModuleName"--_ModuleName_identifier = Core.Name "identifier"--_ModuleName_name = Core.Name "name"--newtype PackageName =- PackageName {- unPackageName :: [Identifier]}- deriving (Eq, Ord, Read, Show)--_PackageName = Core.Name "hydra.java.syntax.PackageName"--data TypeName =- TypeName {- typeNameIdentifier :: TypeIdentifier,- typeNameQualifier :: (Maybe PackageOrTypeName)}- deriving (Eq, Ord, Read, Show)--_TypeName = Core.Name "hydra.java.syntax.TypeName"--_TypeName_identifier = Core.Name "identifier"--_TypeName_qualifier = Core.Name "qualifier"--data ExpressionName =- ExpressionName {- expressionNameQualifier :: (Maybe AmbiguousName),- expressionNameIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_ExpressionName = Core.Name "hydra.java.syntax.ExpressionName"--_ExpressionName_qualifier = Core.Name "qualifier"--_ExpressionName_identifier = Core.Name "identifier"--newtype MethodName =- MethodName {- unMethodName :: Identifier}- deriving (Eq, Ord, Read, Show)--_MethodName = Core.Name "hydra.java.syntax.MethodName"--newtype PackageOrTypeName =- PackageOrTypeName {- unPackageOrTypeName :: [Identifier]}- deriving (Eq, Ord, Read, Show)--_PackageOrTypeName = Core.Name "hydra.java.syntax.PackageOrTypeName"--newtype AmbiguousName =- AmbiguousName {- unAmbiguousName :: [Identifier]}- deriving (Eq, Ord, Read, Show)--_AmbiguousName = Core.Name "hydra.java.syntax.AmbiguousName"--data CompilationUnit =- CompilationUnitOrdinary OrdinaryCompilationUnit |- CompilationUnitModular ModularCompilationUnit- deriving (Eq, Ord, Read, Show)--_CompilationUnit = Core.Name "hydra.java.syntax.CompilationUnit"--_CompilationUnit_ordinary = Core.Name "ordinary"--_CompilationUnit_modular = Core.Name "modular"--data OrdinaryCompilationUnit =- OrdinaryCompilationUnit {- ordinaryCompilationUnitPackage :: (Maybe PackageDeclaration),- ordinaryCompilationUnitImports :: [ImportDeclaration],- ordinaryCompilationUnitTypes :: [TopLevelClassOrInterfaceDeclarationWithComments]}- deriving (Eq, Ord, Read, Show)--_OrdinaryCompilationUnit = Core.Name "hydra.java.syntax.OrdinaryCompilationUnit"--_OrdinaryCompilationUnit_package = Core.Name "package"--_OrdinaryCompilationUnit_imports = Core.Name "imports"--_OrdinaryCompilationUnit_types = Core.Name "types"--data ModularCompilationUnit =- ModularCompilationUnit {- modularCompilationUnitImports :: [ImportDeclaration],- modularCompilationUnitModule :: ModuleDeclaration}- deriving (Eq, Ord, Read, Show)--_ModularCompilationUnit = Core.Name "hydra.java.syntax.ModularCompilationUnit"--_ModularCompilationUnit_imports = Core.Name "imports"--_ModularCompilationUnit_module = Core.Name "module"--data PackageDeclaration =- PackageDeclaration {- packageDeclarationModifiers :: [PackageModifier],- packageDeclarationIdentifiers :: [Identifier]}- deriving (Eq, Ord, Read, Show)--_PackageDeclaration = Core.Name "hydra.java.syntax.PackageDeclaration"--_PackageDeclaration_modifiers = Core.Name "modifiers"--_PackageDeclaration_identifiers = Core.Name "identifiers"--newtype PackageModifier =- PackageModifier {- unPackageModifier :: Annotation}- deriving (Eq, Ord, Read, Show)--_PackageModifier = Core.Name "hydra.java.syntax.PackageModifier"--data ImportDeclaration =- ImportDeclarationSingleType SingleTypeImportDeclaration |- ImportDeclarationTypeImportOnDemand TypeImportOnDemandDeclaration |- ImportDeclarationSingleStaticImport SingleStaticImportDeclaration |- ImportDeclarationStaticImportOnDemand StaticImportOnDemandDeclaration- deriving (Eq, Ord, Read, Show)--_ImportDeclaration = Core.Name "hydra.java.syntax.ImportDeclaration"--_ImportDeclaration_singleType = Core.Name "singleType"--_ImportDeclaration_typeImportOnDemand = Core.Name "typeImportOnDemand"--_ImportDeclaration_singleStaticImport = Core.Name "singleStaticImport"--_ImportDeclaration_staticImportOnDemand = Core.Name "staticImportOnDemand"--newtype SingleTypeImportDeclaration =- SingleTypeImportDeclaration {- unSingleTypeImportDeclaration :: TypeName}- deriving (Eq, Ord, Read, Show)--_SingleTypeImportDeclaration = Core.Name "hydra.java.syntax.SingleTypeImportDeclaration"--newtype TypeImportOnDemandDeclaration =- TypeImportOnDemandDeclaration {- unTypeImportOnDemandDeclaration :: PackageOrTypeName}- deriving (Eq, Ord, Read, Show)--_TypeImportOnDemandDeclaration = Core.Name "hydra.java.syntax.TypeImportOnDemandDeclaration"--data SingleStaticImportDeclaration =- SingleStaticImportDeclaration {- singleStaticImportDeclarationTypeName :: TypeName,- singleStaticImportDeclarationIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_SingleStaticImportDeclaration = Core.Name "hydra.java.syntax.SingleStaticImportDeclaration"--_SingleStaticImportDeclaration_typeName = Core.Name "typeName"--_SingleStaticImportDeclaration_identifier = Core.Name "identifier"--newtype StaticImportOnDemandDeclaration =- StaticImportOnDemandDeclaration {- unStaticImportOnDemandDeclaration :: TypeName}- deriving (Eq, Ord, Read, Show)--_StaticImportOnDemandDeclaration = Core.Name "hydra.java.syntax.StaticImportOnDemandDeclaration"--data TopLevelClassOrInterfaceDeclaration =- TopLevelClassOrInterfaceDeclarationClass ClassDeclaration |- TopLevelClassOrInterfaceDeclarationInterface InterfaceDeclaration |- TopLevelClassOrInterfaceDeclarationNone- deriving (Eq, Ord, Read, Show)--_TopLevelClassOrInterfaceDeclaration = Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"--_TopLevelClassOrInterfaceDeclaration_class = Core.Name "class"--_TopLevelClassOrInterfaceDeclaration_interface = Core.Name "interface"--_TopLevelClassOrInterfaceDeclaration_none = Core.Name "none"--data TopLevelClassOrInterfaceDeclarationWithComments =- TopLevelClassOrInterfaceDeclarationWithComments {- topLevelClassOrInterfaceDeclarationWithCommentsValue :: TopLevelClassOrInterfaceDeclaration,- topLevelClassOrInterfaceDeclarationWithCommentsComments :: (Maybe String)}- deriving (Eq, Ord, Read, Show)--_TopLevelClassOrInterfaceDeclarationWithComments =- Core.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"--_TopLevelClassOrInterfaceDeclarationWithComments_value = Core.Name "value"--_TopLevelClassOrInterfaceDeclarationWithComments_comments = Core.Name "comments"--data ModuleDeclaration =- ModuleDeclaration {- moduleDeclarationAnnotations :: [Annotation],- moduleDeclarationOpen :: Bool,- moduleDeclarationIdentifiers :: [Identifier],- moduleDeclarationDirectives :: [ModuleDirective]}- deriving (Eq, Ord, Read, Show)--_ModuleDeclaration = Core.Name "hydra.java.syntax.ModuleDeclaration"--_ModuleDeclaration_annotations = Core.Name "annotations"--_ModuleDeclaration_open = Core.Name "open"--_ModuleDeclaration_identifiers = Core.Name "identifiers"--_ModuleDeclaration_directives = Core.Name "directives"--data ModuleDirective =- ModuleDirectiveRequires ModuleDirective_Requires |- ModuleDirectiveExports ModuleDirective_ExportsOrOpens |- ModuleDirectiveOpens ModuleDirective_ExportsOrOpens |- ModuleDirectiveUses TypeName |- ModuleDirectiveProvides ModuleDirective_Provides- deriving (Eq, Ord, Read, Show)--_ModuleDirective = Core.Name "hydra.java.syntax.ModuleDirective"--_ModuleDirective_requires = Core.Name "requires"--_ModuleDirective_exports = Core.Name "exports"--_ModuleDirective_opens = Core.Name "opens"--_ModuleDirective_uses = Core.Name "uses"--_ModuleDirective_provides = Core.Name "provides"--data ModuleDirective_Requires =- ModuleDirective_Requires {- moduleDirective_RequiresModifiers :: [RequiresModifier],- moduleDirective_RequiresModule :: ModuleName}- deriving (Eq, Ord, Read, Show)--_ModuleDirective_Requires = Core.Name "hydra.java.syntax.ModuleDirective_Requires"--_ModuleDirective_Requires_modifiers = Core.Name "modifiers"--_ModuleDirective_Requires_module = Core.Name "module"--data ModuleDirective_ExportsOrOpens =- ModuleDirective_ExportsOrOpens {- moduleDirective_ExportsOrOpensPackage :: PackageName,- -- | At least one module- moduleDirective_ExportsOrOpensModules :: [ModuleName]}- deriving (Eq, Ord, Read, Show)--_ModuleDirective_ExportsOrOpens = Core.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"--_ModuleDirective_ExportsOrOpens_package = Core.Name "package"--_ModuleDirective_ExportsOrOpens_modules = Core.Name "modules"--data ModuleDirective_Provides =- ModuleDirective_Provides {- moduleDirective_ProvidesTo :: TypeName,- -- | At least one type- moduleDirective_ProvidesWith :: [TypeName]}- deriving (Eq, Ord, Read, Show)--_ModuleDirective_Provides = Core.Name "hydra.java.syntax.ModuleDirective_Provides"--_ModuleDirective_Provides_to = Core.Name "to"--_ModuleDirective_Provides_with = Core.Name "with"--data RequiresModifier =- RequiresModifierTransitive |- RequiresModifierStatic- deriving (Eq, Ord, Read, Show)--_RequiresModifier = Core.Name "hydra.java.syntax.RequiresModifier"--_RequiresModifier_transitive = Core.Name "transitive"--_RequiresModifier_static = Core.Name "static"--data ClassDeclaration =- ClassDeclarationNormal NormalClassDeclaration |- ClassDeclarationEnum EnumDeclaration |- ClassDeclarationRecord RecordDeclaration- deriving (Eq, Ord, Read, Show)--_ClassDeclaration = Core.Name "hydra.java.syntax.ClassDeclaration"--_ClassDeclaration_normal = Core.Name "normal"--_ClassDeclaration_enum = Core.Name "enum"--_ClassDeclaration_record = Core.Name "record"--data NormalClassDeclaration =- NormalClassDeclaration {- normalClassDeclarationModifiers :: [ClassModifier],- normalClassDeclarationIdentifier :: TypeIdentifier,- normalClassDeclarationParameters :: [TypeParameter],- normalClassDeclarationExtends :: (Maybe ClassType),- normalClassDeclarationImplements :: [InterfaceType],- normalClassDeclarationPermits :: [TypeName],- normalClassDeclarationBody :: ClassBody}- deriving (Eq, Ord, Read, Show)--_NormalClassDeclaration = Core.Name "hydra.java.syntax.NormalClassDeclaration"--_NormalClassDeclaration_modifiers = Core.Name "modifiers"--_NormalClassDeclaration_identifier = Core.Name "identifier"--_NormalClassDeclaration_parameters = Core.Name "parameters"--_NormalClassDeclaration_extends = Core.Name "extends"--_NormalClassDeclaration_implements = Core.Name "implements"--_NormalClassDeclaration_permits = Core.Name "permits"--_NormalClassDeclaration_body = Core.Name "body"--data ClassModifier =- ClassModifierAnnotation Annotation |- ClassModifierPublic |- ClassModifierProtected |- ClassModifierPrivate |- ClassModifierAbstract |- ClassModifierStatic |- ClassModifierFinal |- ClassModifierSealed |- ClassModifierNonSealed |- ClassModifierStrictfp- deriving (Eq, Ord, Read, Show)--_ClassModifier = Core.Name "hydra.java.syntax.ClassModifier"--_ClassModifier_annotation = Core.Name "annotation"--_ClassModifier_public = Core.Name "public"--_ClassModifier_protected = Core.Name "protected"--_ClassModifier_private = Core.Name "private"--_ClassModifier_abstract = Core.Name "abstract"--_ClassModifier_static = Core.Name "static"--_ClassModifier_final = Core.Name "final"--_ClassModifier_sealed = Core.Name "sealed"--_ClassModifier_nonSealed = Core.Name "nonSealed"--_ClassModifier_strictfp = Core.Name "strictfp"--newtype ClassBody =- ClassBody {- unClassBody :: [ClassBodyDeclarationWithComments]}- deriving (Eq, Ord, Read, Show)--_ClassBody = Core.Name "hydra.java.syntax.ClassBody"--data ClassBodyDeclaration =- ClassBodyDeclarationClassMember ClassMemberDeclaration |- ClassBodyDeclarationInstanceInitializer InstanceInitializer |- ClassBodyDeclarationStaticInitializer StaticInitializer |- ClassBodyDeclarationConstructorDeclaration ConstructorDeclaration- deriving (Eq, Ord, Read, Show)--_ClassBodyDeclaration = Core.Name "hydra.java.syntax.ClassBodyDeclaration"--_ClassBodyDeclaration_classMember = Core.Name "classMember"--_ClassBodyDeclaration_instanceInitializer = Core.Name "instanceInitializer"--_ClassBodyDeclaration_staticInitializer = Core.Name "staticInitializer"--_ClassBodyDeclaration_constructorDeclaration = Core.Name "constructorDeclaration"--data ClassBodyDeclarationWithComments =- ClassBodyDeclarationWithComments {- classBodyDeclarationWithCommentsValue :: ClassBodyDeclaration,- classBodyDeclarationWithCommentsComments :: (Maybe String)}- deriving (Eq, Ord, Read, Show)--_ClassBodyDeclarationWithComments = Core.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"--_ClassBodyDeclarationWithComments_value = Core.Name "value"--_ClassBodyDeclarationWithComments_comments = Core.Name "comments"--data ClassMemberDeclaration =- ClassMemberDeclarationField FieldDeclaration |- ClassMemberDeclarationMethod MethodDeclaration |- ClassMemberDeclarationClass ClassDeclaration |- ClassMemberDeclarationInterface InterfaceDeclaration |- ClassMemberDeclarationNone- deriving (Eq, Ord, Read, Show)--_ClassMemberDeclaration = Core.Name "hydra.java.syntax.ClassMemberDeclaration"--_ClassMemberDeclaration_field = Core.Name "field"--_ClassMemberDeclaration_method = Core.Name "method"--_ClassMemberDeclaration_class = Core.Name "class"--_ClassMemberDeclaration_interface = Core.Name "interface"--_ClassMemberDeclaration_none = Core.Name "none"--data FieldDeclaration =- FieldDeclaration {- fieldDeclarationModifiers :: [FieldModifier],- fieldDeclarationUnannType :: UnannType,- fieldDeclarationVariableDeclarators :: [VariableDeclarator]}- deriving (Eq, Ord, Read, Show)--_FieldDeclaration = Core.Name "hydra.java.syntax.FieldDeclaration"--_FieldDeclaration_modifiers = Core.Name "modifiers"--_FieldDeclaration_unannType = Core.Name "unannType"--_FieldDeclaration_variableDeclarators = Core.Name "variableDeclarators"--data FieldModifier =- FieldModifierAnnotation Annotation |- FieldModifierPublic |- FieldModifierProtected |- FieldModifierPrivate |- FieldModifierStatic |- FieldModifierFinal |- FieldModifierTransient |- FieldModifierVolatile- deriving (Eq, Ord, Read, Show)--_FieldModifier = Core.Name "hydra.java.syntax.FieldModifier"--_FieldModifier_annotation = Core.Name "annotation"--_FieldModifier_public = Core.Name "public"--_FieldModifier_protected = Core.Name "protected"--_FieldModifier_private = Core.Name "private"--_FieldModifier_static = Core.Name "static"--_FieldModifier_final = Core.Name "final"--_FieldModifier_transient = Core.Name "transient"--_FieldModifier_volatile = Core.Name "volatile"--data VariableDeclarator =- VariableDeclarator {- variableDeclaratorId :: VariableDeclaratorId,- variableDeclaratorInitializer :: (Maybe VariableInitializer)}- deriving (Eq, Ord, Read, Show)--_VariableDeclarator = Core.Name "hydra.java.syntax.VariableDeclarator"--_VariableDeclarator_id = Core.Name "id"--_VariableDeclarator_initializer = Core.Name "initializer"--data VariableDeclaratorId =- VariableDeclaratorId {- variableDeclaratorIdIdentifier :: Identifier,- variableDeclaratorIdDims :: (Maybe Dims)}- deriving (Eq, Ord, Read, Show)--_VariableDeclaratorId = Core.Name "hydra.java.syntax.VariableDeclaratorId"--_VariableDeclaratorId_identifier = Core.Name "identifier"--_VariableDeclaratorId_dims = Core.Name "dims"--data VariableInitializer =- VariableInitializerExpression Expression |- VariableInitializerArrayInitializer ArrayInitializer- deriving (Eq, Ord, Read, Show)--_VariableInitializer = Core.Name "hydra.java.syntax.VariableInitializer"--_VariableInitializer_expression = Core.Name "expression"--_VariableInitializer_arrayInitializer = Core.Name "arrayInitializer"---- | A Type which does not allow annotations-newtype UnannType =- UnannType {- unUnannType :: Type}- deriving (Eq, Ord, Read, Show)--_UnannType = Core.Name "hydra.java.syntax.UnannType"---- | A ClassType which does not allow annotations-newtype UnannClassType =- UnannClassType {- unUnannClassType :: ClassType}- deriving (Eq, Ord, Read, Show)--_UnannClassType = Core.Name "hydra.java.syntax.UnannClassType"--data MethodDeclaration =- MethodDeclaration {- -- | Note: simple methods cannot have annotations- methodDeclarationAnnotations :: [Annotation],- methodDeclarationModifiers :: [MethodModifier],- methodDeclarationHeader :: MethodHeader,- methodDeclarationBody :: MethodBody}- deriving (Eq, Ord, Read, Show)--_MethodDeclaration = Core.Name "hydra.java.syntax.MethodDeclaration"--_MethodDeclaration_annotations = Core.Name "annotations"--_MethodDeclaration_modifiers = Core.Name "modifiers"--_MethodDeclaration_header = Core.Name "header"--_MethodDeclaration_body = Core.Name "body"--data MethodModifier =- MethodModifierAnnotation Annotation |- MethodModifierPublic |- MethodModifierProtected |- MethodModifierPrivate |- MethodModifierAbstract |- MethodModifierStatic |- MethodModifierFinal |- MethodModifierSynchronized |- MethodModifierNative |- MethodModifierStrictfp- deriving (Eq, Ord, Read, Show)--_MethodModifier = Core.Name "hydra.java.syntax.MethodModifier"--_MethodModifier_annotation = Core.Name "annotation"--_MethodModifier_public = Core.Name "public"--_MethodModifier_protected = Core.Name "protected"--_MethodModifier_private = Core.Name "private"--_MethodModifier_abstract = Core.Name "abstract"--_MethodModifier_static = Core.Name "static"--_MethodModifier_final = Core.Name "final"--_MethodModifier_synchronized = Core.Name "synchronized"--_MethodModifier_native = Core.Name "native"--_MethodModifier_strictfp = Core.Name "strictfp"--data MethodHeader =- MethodHeader {- methodHeaderParameters :: [TypeParameter],- methodHeaderResult :: Result,- methodHeaderDeclarator :: MethodDeclarator,- methodHeaderThrows :: (Maybe Throws)}- deriving (Eq, Ord, Read, Show)--_MethodHeader = Core.Name "hydra.java.syntax.MethodHeader"--_MethodHeader_parameters = Core.Name "parameters"--_MethodHeader_result = Core.Name "result"--_MethodHeader_declarator = Core.Name "declarator"--_MethodHeader_throws = Core.Name "throws"--data Result =- ResultType UnannType |- ResultVoid- deriving (Eq, Ord, Read, Show)--_Result = Core.Name "hydra.java.syntax.Result"--_Result_type = Core.Name "type"--_Result_void = Core.Name "void"--data MethodDeclarator =- MethodDeclarator {- methodDeclaratorIdentifier :: Identifier,- methodDeclaratorReceiverParameter :: (Maybe ReceiverParameter),- methodDeclaratorFormalParameters :: [FormalParameter]}- deriving (Eq, Ord, Read, Show)--_MethodDeclarator = Core.Name "hydra.java.syntax.MethodDeclarator"--_MethodDeclarator_identifier = Core.Name "identifier"--_MethodDeclarator_receiverParameter = Core.Name "receiverParameter"--_MethodDeclarator_formalParameters = Core.Name "formalParameters"--data ReceiverParameter =- ReceiverParameter {- receiverParameterAnnotations :: [Annotation],- receiverParameterUnannType :: UnannType,- receiverParameterIdentifier :: (Maybe Identifier)}- deriving (Eq, Ord, Read, Show)--_ReceiverParameter = Core.Name "hydra.java.syntax.ReceiverParameter"--_ReceiverParameter_annotations = Core.Name "annotations"--_ReceiverParameter_unannType = Core.Name "unannType"--_ReceiverParameter_identifier = Core.Name "identifier"--data FormalParameter =- FormalParameterSimple FormalParameter_Simple |- FormalParameterVariableArity VariableArityParameter- deriving (Eq, Ord, Read, Show)--_FormalParameter = Core.Name "hydra.java.syntax.FormalParameter"--_FormalParameter_simple = Core.Name "simple"--_FormalParameter_variableArity = Core.Name "variableArity"--data FormalParameter_Simple =- FormalParameter_Simple {- formalParameter_SimpleModifiers :: [VariableModifier],- formalParameter_SimpleType :: UnannType,- formalParameter_SimpleId :: VariableDeclaratorId}- deriving (Eq, Ord, Read, Show)--_FormalParameter_Simple = Core.Name "hydra.java.syntax.FormalParameter_Simple"--_FormalParameter_Simple_modifiers = Core.Name "modifiers"--_FormalParameter_Simple_type = Core.Name "type"--_FormalParameter_Simple_id = Core.Name "id"--data VariableArityParameter =- VariableArityParameter {- variableArityParameterModifiers :: [VariableModifier],- variableArityParameterType :: UnannType,- variableArityParameterAnnotations :: [Annotation],- variableArityParameterIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_VariableArityParameter = Core.Name "hydra.java.syntax.VariableArityParameter"--_VariableArityParameter_modifiers = Core.Name "modifiers"--_VariableArityParameter_type = Core.Name "type"--_VariableArityParameter_annotations = Core.Name "annotations"--_VariableArityParameter_identifier = Core.Name "identifier"--data VariableModifier =- VariableModifierAnnotation Annotation |- VariableModifierFinal- deriving (Eq, Ord, Read, Show)--_VariableModifier = Core.Name "hydra.java.syntax.VariableModifier"--_VariableModifier_annotation = Core.Name "annotation"--_VariableModifier_final = Core.Name "final"--newtype Throws =- Throws {- unThrows :: [ExceptionType]}- deriving (Eq, Ord, Read, Show)--_Throws = Core.Name "hydra.java.syntax.Throws"--data ExceptionType =- ExceptionTypeClass ClassType |- ExceptionTypeVariable TypeVariable- deriving (Eq, Ord, Read, Show)--_ExceptionType = Core.Name "hydra.java.syntax.ExceptionType"--_ExceptionType_class = Core.Name "class"--_ExceptionType_variable = Core.Name "variable"--data MethodBody =- MethodBodyBlock Block |- MethodBodyNone- deriving (Eq, Ord, Read, Show)--_MethodBody = Core.Name "hydra.java.syntax.MethodBody"--_MethodBody_block = Core.Name "block"--_MethodBody_none = Core.Name "none"--newtype InstanceInitializer =- InstanceInitializer {- unInstanceInitializer :: Block}- deriving (Eq, Ord, Read, Show)--_InstanceInitializer = Core.Name "hydra.java.syntax.InstanceInitializer"--newtype StaticInitializer =- StaticInitializer {- unStaticInitializer :: Block}- deriving (Eq, Ord, Read, Show)--_StaticInitializer = Core.Name "hydra.java.syntax.StaticInitializer"--data ConstructorDeclaration =- ConstructorDeclaration {- constructorDeclarationModifiers :: [ConstructorModifier],- constructorDeclarationConstructor :: ConstructorDeclarator,- constructorDeclarationThrows :: (Maybe Throws),- constructorDeclarationBody :: ConstructorBody}- deriving (Eq, Ord, Read, Show)--_ConstructorDeclaration = Core.Name "hydra.java.syntax.ConstructorDeclaration"--_ConstructorDeclaration_modifiers = Core.Name "modifiers"--_ConstructorDeclaration_constructor = Core.Name "constructor"--_ConstructorDeclaration_throws = Core.Name "throws"--_ConstructorDeclaration_body = Core.Name "body"--data ConstructorModifier =- ConstructorModifierAnnotation Annotation |- ConstructorModifierPublic |- ConstructorModifierProtected |- ConstructorModifierPrivate- deriving (Eq, Ord, Read, Show)--_ConstructorModifier = Core.Name "hydra.java.syntax.ConstructorModifier"--_ConstructorModifier_annotation = Core.Name "annotation"--_ConstructorModifier_public = Core.Name "public"--_ConstructorModifier_protected = Core.Name "protected"--_ConstructorModifier_private = Core.Name "private"--data ConstructorDeclarator =- ConstructorDeclarator {- constructorDeclaratorParameters :: [TypeParameter],- constructorDeclaratorName :: SimpleTypeName,- constructorDeclaratorReceiverParameter :: (Maybe ReceiverParameter),- constructorDeclaratorFormalParameters :: [FormalParameter]}- deriving (Eq, Ord, Read, Show)--_ConstructorDeclarator = Core.Name "hydra.java.syntax.ConstructorDeclarator"--_ConstructorDeclarator_parameters = Core.Name "parameters"--_ConstructorDeclarator_name = Core.Name "name"--_ConstructorDeclarator_receiverParameter = Core.Name "receiverParameter"--_ConstructorDeclarator_formalParameters = Core.Name "formalParameters"--newtype SimpleTypeName =- SimpleTypeName {- unSimpleTypeName :: TypeIdentifier}- deriving (Eq, Ord, Read, Show)--_SimpleTypeName = Core.Name "hydra.java.syntax.SimpleTypeName"--data ConstructorBody =- ConstructorBody {- constructorBodyInvocation :: (Maybe ExplicitConstructorInvocation),- constructorBodyStatements :: [BlockStatement]}- deriving (Eq, Ord, Read, Show)--_ConstructorBody = Core.Name "hydra.java.syntax.ConstructorBody"--_ConstructorBody_invocation = Core.Name "invocation"--_ConstructorBody_statements = Core.Name "statements"--data ExplicitConstructorInvocation =- ExplicitConstructorInvocation {- explicitConstructorInvocationTypeArguments :: [TypeArgument],- explicitConstructorInvocationArguments :: [Expression],- explicitConstructorInvocationVariant :: ExplicitConstructorInvocation_Variant}- deriving (Eq, Ord, Read, Show)--_ExplicitConstructorInvocation = Core.Name "hydra.java.syntax.ExplicitConstructorInvocation"--_ExplicitConstructorInvocation_typeArguments = Core.Name "typeArguments"--_ExplicitConstructorInvocation_arguments = Core.Name "arguments"--_ExplicitConstructorInvocation_variant = Core.Name "variant"--data ExplicitConstructorInvocation_Variant =- ExplicitConstructorInvocation_VariantThis |- ExplicitConstructorInvocation_VariantSuper (Maybe ExpressionName) |- ExplicitConstructorInvocation_VariantPrimary Primary- deriving (Eq, Ord, Read, Show)--_ExplicitConstructorInvocation_Variant = Core.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"--_ExplicitConstructorInvocation_Variant_this = Core.Name "this"--_ExplicitConstructorInvocation_Variant_super = Core.Name "super"--_ExplicitConstructorInvocation_Variant_primary = Core.Name "primary"--data EnumDeclaration =- EnumDeclaration {- enumDeclarationModifiers :: [ClassModifier],- enumDeclarationIdentifier :: TypeIdentifier,- enumDeclarationImplements :: [InterfaceType],- enumDeclarationBody :: EnumBody}- deriving (Eq, Ord, Read, Show)--_EnumDeclaration = Core.Name "hydra.java.syntax.EnumDeclaration"--_EnumDeclaration_modifiers = Core.Name "modifiers"--_EnumDeclaration_identifier = Core.Name "identifier"--_EnumDeclaration_implements = Core.Name "implements"--_EnumDeclaration_body = Core.Name "body"--newtype EnumBody =- EnumBody {- unEnumBody :: [EnumBody_Element]}- deriving (Eq, Ord, Read, Show)--_EnumBody = Core.Name "hydra.java.syntax.EnumBody"--data EnumBody_Element =- EnumBody_Element {- enumBody_ElementConstants :: [EnumConstant],- enumBody_ElementBodyDeclarations :: [ClassBodyDeclaration]}- deriving (Eq, Ord, Read, Show)--_EnumBody_Element = Core.Name "hydra.java.syntax.EnumBody_Element"--_EnumBody_Element_constants = Core.Name "constants"--_EnumBody_Element_bodyDeclarations = Core.Name "bodyDeclarations"--data EnumConstant =- EnumConstant {- enumConstantModifiers :: [EnumConstantModifier],- enumConstantIdentifier :: Identifier,- enumConstantArguments :: (Maybe [Expression]),- enumConstantBody :: (Maybe ClassBody)}- deriving (Eq, Ord, Read, Show)--_EnumConstant = Core.Name "hydra.java.syntax.EnumConstant"--_EnumConstant_modifiers = Core.Name "modifiers"--_EnumConstant_identifier = Core.Name "identifier"--_EnumConstant_arguments = Core.Name "arguments"--_EnumConstant_body = Core.Name "body"--newtype EnumConstantModifier =- EnumConstantModifier {- unEnumConstantModifier :: Annotation}- deriving (Eq, Ord, Read, Show)--_EnumConstantModifier = Core.Name "hydra.java.syntax.EnumConstantModifier"--data RecordDeclaration =- RecordDeclaration {- recordDeclarationModifiers :: [ClassModifier],- recordDeclarationIdentifier :: TypeIdentifier,- recordDeclarationParameters :: [TypeParameter],- recordDeclarationHeader :: RecordHeader,- recordDeclarationImplements :: [InterfaceType],- recordDeclarationBody :: RecordBody}- deriving (Eq, Ord, Read, Show)--_RecordDeclaration = Core.Name "hydra.java.syntax.RecordDeclaration"--_RecordDeclaration_modifiers = Core.Name "modifiers"--_RecordDeclaration_identifier = Core.Name "identifier"--_RecordDeclaration_parameters = Core.Name "parameters"--_RecordDeclaration_header = Core.Name "header"--_RecordDeclaration_implements = Core.Name "implements"--_RecordDeclaration_body = Core.Name "body"--newtype RecordHeader =- RecordHeader {- unRecordHeader :: [RecordComponent]}- deriving (Eq, Ord, Read, Show)--_RecordHeader = Core.Name "hydra.java.syntax.RecordHeader"--data RecordComponent =- RecordComponentSimple RecordComponent_Simple |- RecordComponentVariableArity VariableArityRecordComponent- deriving (Eq, Ord, Read, Show)--_RecordComponent = Core.Name "hydra.java.syntax.RecordComponent"--_RecordComponent_simple = Core.Name "simple"--_RecordComponent_variableArity = Core.Name "variableArity"--data RecordComponent_Simple =- RecordComponent_Simple {- recordComponent_SimpleModifiers :: [RecordComponentModifier],- recordComponent_SimpleType :: UnannType,- recordComponent_SimpleIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_RecordComponent_Simple = Core.Name "hydra.java.syntax.RecordComponent_Simple"--_RecordComponent_Simple_modifiers = Core.Name "modifiers"--_RecordComponent_Simple_type = Core.Name "type"--_RecordComponent_Simple_identifier = Core.Name "identifier"--data VariableArityRecordComponent =- VariableArityRecordComponent {- variableArityRecordComponentModifiers :: [RecordComponentModifier],- variableArityRecordComponentType :: UnannType,- variableArityRecordComponentAnnotations :: [Annotation],- variableArityRecordComponentIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_VariableArityRecordComponent = Core.Name "hydra.java.syntax.VariableArityRecordComponent"--_VariableArityRecordComponent_modifiers = Core.Name "modifiers"--_VariableArityRecordComponent_type = Core.Name "type"--_VariableArityRecordComponent_annotations = Core.Name "annotations"--_VariableArityRecordComponent_identifier = Core.Name "identifier"--newtype RecordComponentModifier =- RecordComponentModifier {- unRecordComponentModifier :: Annotation}- deriving (Eq, Ord, Read, Show)--_RecordComponentModifier = Core.Name "hydra.java.syntax.RecordComponentModifier"--newtype RecordBody =- RecordBody {- unRecordBody :: [RecordBodyDeclaration]}- deriving (Eq, Ord, Read, Show)--_RecordBody = Core.Name "hydra.java.syntax.RecordBody"--data RecordBodyDeclaration =- RecordBodyDeclarationClassBody ClassBodyDeclaration |- RecordBodyDeclarationCompactConstructor CompactConstructorDeclaration- deriving (Eq, Ord, Read, Show)--_RecordBodyDeclaration = Core.Name "hydra.java.syntax.RecordBodyDeclaration"--_RecordBodyDeclaration_classBody = Core.Name "classBody"--_RecordBodyDeclaration_compactConstructor = Core.Name "compactConstructor"--data CompactConstructorDeclaration =- CompactConstructorDeclaration {- compactConstructorDeclarationModifiers :: [ConstructorModifier],- compactConstructorDeclarationName :: SimpleTypeName,- compactConstructorDeclarationBody :: ConstructorBody}- deriving (Eq, Ord, Read, Show)--_CompactConstructorDeclaration = Core.Name "hydra.java.syntax.CompactConstructorDeclaration"--_CompactConstructorDeclaration_modifiers = Core.Name "modifiers"--_CompactConstructorDeclaration_name = Core.Name "name"--_CompactConstructorDeclaration_body = Core.Name "body"--data InterfaceDeclaration =- InterfaceDeclarationNormalInterface NormalInterfaceDeclaration |- InterfaceDeclarationAnnotationInterface AnnotationInterfaceDeclaration- deriving (Eq, Ord, Read, Show)--_InterfaceDeclaration = Core.Name "hydra.java.syntax.InterfaceDeclaration"--_InterfaceDeclaration_normalInterface = Core.Name "normalInterface"--_InterfaceDeclaration_annotationInterface = Core.Name "annotationInterface"--data NormalInterfaceDeclaration =- NormalInterfaceDeclaration {- normalInterfaceDeclarationModifiers :: [InterfaceModifier],- normalInterfaceDeclarationIdentifier :: TypeIdentifier,- normalInterfaceDeclarationParameters :: [TypeParameter],- normalInterfaceDeclarationExtends :: [InterfaceType],- normalInterfaceDeclarationPermits :: [TypeName],- normalInterfaceDeclarationBody :: InterfaceBody}- deriving (Eq, Ord, Read, Show)--_NormalInterfaceDeclaration = Core.Name "hydra.java.syntax.NormalInterfaceDeclaration"--_NormalInterfaceDeclaration_modifiers = Core.Name "modifiers"--_NormalInterfaceDeclaration_identifier = Core.Name "identifier"--_NormalInterfaceDeclaration_parameters = Core.Name "parameters"--_NormalInterfaceDeclaration_extends = Core.Name "extends"--_NormalInterfaceDeclaration_permits = Core.Name "permits"--_NormalInterfaceDeclaration_body = Core.Name "body"--data InterfaceModifier =- InterfaceModifierAnnotation Annotation |- InterfaceModifierPublic |- InterfaceModifierProtected |- InterfaceModifierPrivate |- InterfaceModifierAbstract |- InterfaceModifierStatic |- InterfaceModifierSealed |- InterfaceModifierNonSealed |- InterfaceModifierStrictfp- deriving (Eq, Ord, Read, Show)--_InterfaceModifier = Core.Name "hydra.java.syntax.InterfaceModifier"--_InterfaceModifier_annotation = Core.Name "annotation"--_InterfaceModifier_public = Core.Name "public"--_InterfaceModifier_protected = Core.Name "protected"--_InterfaceModifier_private = Core.Name "private"--_InterfaceModifier_abstract = Core.Name "abstract"--_InterfaceModifier_static = Core.Name "static"--_InterfaceModifier_sealed = Core.Name "sealed"--_InterfaceModifier_nonSealed = Core.Name "nonSealed"--_InterfaceModifier_strictfp = Core.Name "strictfp"--newtype InterfaceBody =- InterfaceBody {- unInterfaceBody :: [InterfaceMemberDeclarationWithComments]}- deriving (Eq, Ord, Read, Show)--_InterfaceBody = Core.Name "hydra.java.syntax.InterfaceBody"--data InterfaceMemberDeclaration =- InterfaceMemberDeclarationConstant ConstantDeclaration |- InterfaceMemberDeclarationInterfaceMethod InterfaceMethodDeclaration |- InterfaceMemberDeclarationClass ClassDeclaration |- InterfaceMemberDeclarationInterface InterfaceDeclaration- deriving (Eq, Ord, Read, Show)--_InterfaceMemberDeclaration = Core.Name "hydra.java.syntax.InterfaceMemberDeclaration"--_InterfaceMemberDeclaration_constant = Core.Name "constant"--_InterfaceMemberDeclaration_interfaceMethod = Core.Name "interfaceMethod"--_InterfaceMemberDeclaration_class = Core.Name "class"--_InterfaceMemberDeclaration_interface = Core.Name "interface"--data InterfaceMemberDeclarationWithComments =- InterfaceMemberDeclarationWithComments {- interfaceMemberDeclarationWithCommentsValue :: InterfaceMemberDeclaration,- interfaceMemberDeclarationWithCommentsComments :: (Maybe String)}- deriving (Eq, Ord, Read, Show)--_InterfaceMemberDeclarationWithComments = Core.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"--_InterfaceMemberDeclarationWithComments_value = Core.Name "value"--_InterfaceMemberDeclarationWithComments_comments = Core.Name "comments"--data ConstantDeclaration =- ConstantDeclaration {- constantDeclarationModifiers :: [ConstantModifier],- constantDeclarationType :: UnannType,- constantDeclarationVariables :: [VariableDeclarator]}- deriving (Eq, Ord, Read, Show)--_ConstantDeclaration = Core.Name "hydra.java.syntax.ConstantDeclaration"--_ConstantDeclaration_modifiers = Core.Name "modifiers"--_ConstantDeclaration_type = Core.Name "type"--_ConstantDeclaration_variables = Core.Name "variables"--data ConstantModifier =- ConstantModifierAnnotation Annotation |- ConstantModifierPublic |- ConstantModifierStatic |- ConstantModifierFinal- deriving (Eq, Ord, Read, Show)--_ConstantModifier = Core.Name "hydra.java.syntax.ConstantModifier"--_ConstantModifier_annotation = Core.Name "annotation"--_ConstantModifier_public = Core.Name "public"--_ConstantModifier_static = Core.Name "static"--_ConstantModifier_final = Core.Name "final"--data InterfaceMethodDeclaration =- InterfaceMethodDeclaration {- interfaceMethodDeclarationModifiers :: [InterfaceMethodModifier],- interfaceMethodDeclarationHeader :: MethodHeader,- interfaceMethodDeclarationBody :: MethodBody}- deriving (Eq, Ord, Read, Show)--_InterfaceMethodDeclaration = Core.Name "hydra.java.syntax.InterfaceMethodDeclaration"--_InterfaceMethodDeclaration_modifiers = Core.Name "modifiers"--_InterfaceMethodDeclaration_header = Core.Name "header"--_InterfaceMethodDeclaration_body = Core.Name "body"--data InterfaceMethodModifier =- InterfaceMethodModifierAnnotation Annotation |- InterfaceMethodModifierPublic |- InterfaceMethodModifierPrivate |- InterfaceMethodModifierAbstract |- InterfaceMethodModifierDefault |- InterfaceMethodModifierStatic |- InterfaceMethodModifierStrictfp- deriving (Eq, Ord, Read, Show)--_InterfaceMethodModifier = Core.Name "hydra.java.syntax.InterfaceMethodModifier"--_InterfaceMethodModifier_annotation = Core.Name "annotation"--_InterfaceMethodModifier_public = Core.Name "public"--_InterfaceMethodModifier_private = Core.Name "private"--_InterfaceMethodModifier_abstract = Core.Name "abstract"--_InterfaceMethodModifier_default = Core.Name "default"--_InterfaceMethodModifier_static = Core.Name "static"--_InterfaceMethodModifier_strictfp = Core.Name "strictfp"--data AnnotationInterfaceDeclaration =- AnnotationInterfaceDeclaration {- annotationInterfaceDeclarationModifiers :: [InterfaceModifier],- annotationInterfaceDeclarationIdentifier :: TypeIdentifier,- annotationInterfaceDeclarationBody :: AnnotationInterfaceBody}- deriving (Eq, Ord, Read, Show)--_AnnotationInterfaceDeclaration = Core.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"--_AnnotationInterfaceDeclaration_modifiers = Core.Name "modifiers"--_AnnotationInterfaceDeclaration_identifier = Core.Name "identifier"--_AnnotationInterfaceDeclaration_body = Core.Name "body"--newtype AnnotationInterfaceBody =- AnnotationInterfaceBody {- unAnnotationInterfaceBody :: [AnnotationInterfaceMemberDeclaration]}- deriving (Eq, Ord, Read, Show)--_AnnotationInterfaceBody = Core.Name "hydra.java.syntax.AnnotationInterfaceBody"--data AnnotationInterfaceMemberDeclaration =- AnnotationInterfaceMemberDeclarationAnnotationInterface AnnotationInterfaceElementDeclaration |- AnnotationInterfaceMemberDeclarationConstant ConstantDeclaration |- AnnotationInterfaceMemberDeclarationClass ClassDeclaration |- AnnotationInterfaceMemberDeclarationInterface InterfaceDeclaration- deriving (Eq, Ord, Read, Show)--_AnnotationInterfaceMemberDeclaration = Core.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"--_AnnotationInterfaceMemberDeclaration_annotationInterface = Core.Name "annotationInterface"--_AnnotationInterfaceMemberDeclaration_constant = Core.Name "constant"--_AnnotationInterfaceMemberDeclaration_class = Core.Name "class"--_AnnotationInterfaceMemberDeclaration_interface = Core.Name "interface"--data AnnotationInterfaceElementDeclaration =- AnnotationInterfaceElementDeclaration {- annotationInterfaceElementDeclarationModifiers :: [AnnotationInterfaceElementModifier],- annotationInterfaceElementDeclarationType :: UnannType,- annotationInterfaceElementDeclarationIdentifier :: Identifier,- annotationInterfaceElementDeclarationDims :: (Maybe Dims),- annotationInterfaceElementDeclarationDefault :: (Maybe DefaultValue)}- deriving (Eq, Ord, Read, Show)--_AnnotationInterfaceElementDeclaration = Core.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"--_AnnotationInterfaceElementDeclaration_modifiers = Core.Name "modifiers"--_AnnotationInterfaceElementDeclaration_type = Core.Name "type"--_AnnotationInterfaceElementDeclaration_identifier = Core.Name "identifier"--_AnnotationInterfaceElementDeclaration_dims = Core.Name "dims"--_AnnotationInterfaceElementDeclaration_default = Core.Name "default"--data AnnotationInterfaceElementModifier =- AnnotationInterfaceElementModifierAnnotation Annotation |- AnnotationInterfaceElementModifierPublic |- AnnotationInterfaceElementModifierAbstract- deriving (Eq, Ord, Read, Show)--_AnnotationInterfaceElementModifier = Core.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"--_AnnotationInterfaceElementModifier_annotation = Core.Name "annotation"--_AnnotationInterfaceElementModifier_public = Core.Name "public"--_AnnotationInterfaceElementModifier_abstract = Core.Name "abstract"--newtype DefaultValue =- DefaultValue {- unDefaultValue :: ElementValue}- deriving (Eq, Ord, Read, Show)--_DefaultValue = Core.Name "hydra.java.syntax.DefaultValue"--data Annotation =- AnnotationNormal NormalAnnotation |- AnnotationMarker MarkerAnnotation |- AnnotationSingleElement SingleElementAnnotation- deriving (Eq, Ord, Read, Show)--_Annotation = Core.Name "hydra.java.syntax.Annotation"--_Annotation_normal = Core.Name "normal"--_Annotation_marker = Core.Name "marker"--_Annotation_singleElement = Core.Name "singleElement"--data NormalAnnotation =- NormalAnnotation {- normalAnnotationTypeName :: TypeName,- normalAnnotationPairs :: [ElementValuePair]}- deriving (Eq, Ord, Read, Show)--_NormalAnnotation = Core.Name "hydra.java.syntax.NormalAnnotation"--_NormalAnnotation_typeName = Core.Name "typeName"--_NormalAnnotation_pairs = Core.Name "pairs"--data ElementValuePair =- ElementValuePair {- elementValuePairKey :: Identifier,- elementValuePairValue :: ElementValue}- deriving (Eq, Ord, Read, Show)--_ElementValuePair = Core.Name "hydra.java.syntax.ElementValuePair"--_ElementValuePair_key = Core.Name "key"--_ElementValuePair_value = Core.Name "value"--data ElementValue =- ElementValueConditionalExpression ConditionalExpression |- ElementValueElementValueArrayInitializer ElementValueArrayInitializer |- ElementValueAnnotation Annotation- deriving (Eq, Ord, Read, Show)--_ElementValue = Core.Name "hydra.java.syntax.ElementValue"--_ElementValue_conditionalExpression = Core.Name "conditionalExpression"--_ElementValue_elementValueArrayInitializer = Core.Name "elementValueArrayInitializer"--_ElementValue_annotation = Core.Name "annotation"--newtype ElementValueArrayInitializer =- ElementValueArrayInitializer {- unElementValueArrayInitializer :: [ElementValue]}- deriving (Eq, Ord, Read, Show)--_ElementValueArrayInitializer = Core.Name "hydra.java.syntax.ElementValueArrayInitializer"--newtype MarkerAnnotation =- MarkerAnnotation {- unMarkerAnnotation :: TypeName}- deriving (Eq, Ord, Read, Show)--_MarkerAnnotation = Core.Name "hydra.java.syntax.MarkerAnnotation"--data SingleElementAnnotation =- SingleElementAnnotation {- singleElementAnnotationName :: TypeName,- singleElementAnnotationValue :: (Maybe ElementValue)}- deriving (Eq, Ord, Read, Show)--_SingleElementAnnotation = Core.Name "hydra.java.syntax.SingleElementAnnotation"--_SingleElementAnnotation_name = Core.Name "name"--_SingleElementAnnotation_value = Core.Name "value"--newtype ArrayInitializer =- ArrayInitializer {- unArrayInitializer :: [[VariableInitializer]]}- deriving (Eq, Ord, Read, Show)--_ArrayInitializer = Core.Name "hydra.java.syntax.ArrayInitializer"--newtype Block =- Block {- unBlock :: [BlockStatement]}- deriving (Eq, Ord, Read, Show)--_Block = Core.Name "hydra.java.syntax.Block"--data BlockStatement =- BlockStatementLocalVariableDeclaration LocalVariableDeclarationStatement |- BlockStatementLocalClassOrInterface LocalClassOrInterfaceDeclaration |- BlockStatementStatement Statement- deriving (Eq, Ord, Read, Show)--_BlockStatement = Core.Name "hydra.java.syntax.BlockStatement"--_BlockStatement_localVariableDeclaration = Core.Name "localVariableDeclaration"--_BlockStatement_localClassOrInterface = Core.Name "localClassOrInterface"--_BlockStatement_statement = Core.Name "statement"--data LocalClassOrInterfaceDeclaration =- LocalClassOrInterfaceDeclarationClass ClassDeclaration |- LocalClassOrInterfaceDeclarationNormalInterface NormalInterfaceDeclaration- deriving (Eq, Ord, Read, Show)--_LocalClassOrInterfaceDeclaration = Core.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration"--_LocalClassOrInterfaceDeclaration_class = Core.Name "class"--_LocalClassOrInterfaceDeclaration_normalInterface = Core.Name "normalInterface"--newtype LocalVariableDeclarationStatement =- LocalVariableDeclarationStatement {- unLocalVariableDeclarationStatement :: LocalVariableDeclaration}- deriving (Eq, Ord, Read, Show)--_LocalVariableDeclarationStatement = Core.Name "hydra.java.syntax.LocalVariableDeclarationStatement"--data LocalVariableDeclaration =- LocalVariableDeclaration {- localVariableDeclarationModifiers :: [VariableModifier],- localVariableDeclarationType :: LocalVariableType,- localVariableDeclarationDeclarators :: [VariableDeclarator]}- deriving (Eq, Ord, Read, Show)--_LocalVariableDeclaration = Core.Name "hydra.java.syntax.LocalVariableDeclaration"--_LocalVariableDeclaration_modifiers = Core.Name "modifiers"--_LocalVariableDeclaration_type = Core.Name "type"--_LocalVariableDeclaration_declarators = Core.Name "declarators"--data LocalVariableType =- LocalVariableTypeType UnannType |- LocalVariableTypeVar- deriving (Eq, Ord, Read, Show)--_LocalVariableType = Core.Name "hydra.java.syntax.LocalVariableType"--_LocalVariableType_type = Core.Name "type"--_LocalVariableType_var = Core.Name "var"--data Statement =- StatementWithoutTrailing StatementWithoutTrailingSubstatement |- StatementLabeled LabeledStatement |- StatementIfThen IfThenStatement |- StatementIfThenElse IfThenElseStatement |- StatementWhile WhileStatement |- StatementFor ForStatement- deriving (Eq, Ord, Read, Show)--_Statement = Core.Name "hydra.java.syntax.Statement"--_Statement_withoutTrailing = Core.Name "withoutTrailing"--_Statement_labeled = Core.Name "labeled"--_Statement_ifThen = Core.Name "ifThen"--_Statement_ifThenElse = Core.Name "ifThenElse"--_Statement_while = Core.Name "while"--_Statement_for = Core.Name "for"--data StatementNoShortIf =- StatementNoShortIfWithoutTrailing StatementWithoutTrailingSubstatement |- StatementNoShortIfLabeled LabeledStatementNoShortIf |- StatementNoShortIfIfThenElse IfThenElseStatementNoShortIf |- StatementNoShortIfWhile WhileStatementNoShortIf |- StatementNoShortIfFor ForStatementNoShortIf- deriving (Eq, Ord, Read, Show)--_StatementNoShortIf = Core.Name "hydra.java.syntax.StatementNoShortIf"--_StatementNoShortIf_withoutTrailing = Core.Name "withoutTrailing"--_StatementNoShortIf_labeled = Core.Name "labeled"--_StatementNoShortIf_ifThenElse = Core.Name "ifThenElse"--_StatementNoShortIf_while = Core.Name "while"--_StatementNoShortIf_for = Core.Name "for"--data StatementWithoutTrailingSubstatement =- StatementWithoutTrailingSubstatementBlock Block |- StatementWithoutTrailingSubstatementEmpty |- StatementWithoutTrailingSubstatementExpression ExpressionStatement |- StatementWithoutTrailingSubstatementAssert AssertStatement |- StatementWithoutTrailingSubstatementSwitch SwitchStatement |- StatementWithoutTrailingSubstatementDo DoStatement |- StatementWithoutTrailingSubstatementBreak BreakStatement |- StatementWithoutTrailingSubstatementContinue ContinueStatement |- StatementWithoutTrailingSubstatementReturn ReturnStatement |- StatementWithoutTrailingSubstatementSynchronized SynchronizedStatement |- StatementWithoutTrailingSubstatementThrow ThrowStatement |- StatementWithoutTrailingSubstatementTry TryStatement |- StatementWithoutTrailingSubstatementYield YieldStatement- deriving (Eq, Ord, Read, Show)--_StatementWithoutTrailingSubstatement = Core.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"--_StatementWithoutTrailingSubstatement_block = Core.Name "block"--_StatementWithoutTrailingSubstatement_empty = Core.Name "empty"--_StatementWithoutTrailingSubstatement_expression = Core.Name "expression"--_StatementWithoutTrailingSubstatement_assert = Core.Name "assert"--_StatementWithoutTrailingSubstatement_switch = Core.Name "switch"--_StatementWithoutTrailingSubstatement_do = Core.Name "do"--_StatementWithoutTrailingSubstatement_break = Core.Name "break"--_StatementWithoutTrailingSubstatement_continue = Core.Name "continue"--_StatementWithoutTrailingSubstatement_return = Core.Name "return"--_StatementWithoutTrailingSubstatement_synchronized = Core.Name "synchronized"--_StatementWithoutTrailingSubstatement_throw = Core.Name "throw"--_StatementWithoutTrailingSubstatement_try = Core.Name "try"--_StatementWithoutTrailingSubstatement_yield = Core.Name "yield"--data LabeledStatement =- LabeledStatement {- labeledStatementIdentifier :: Identifier,- labeledStatementStatement :: Statement}- deriving (Eq, Ord, Read, Show)--_LabeledStatement = Core.Name "hydra.java.syntax.LabeledStatement"--_LabeledStatement_identifier = Core.Name "identifier"--_LabeledStatement_statement = Core.Name "statement"--data LabeledStatementNoShortIf =- LabeledStatementNoShortIf {- labeledStatementNoShortIfIdentifier :: Identifier,- labeledStatementNoShortIfStatement :: StatementNoShortIf}- deriving (Eq, Ord, Read, Show)--_LabeledStatementNoShortIf = Core.Name "hydra.java.syntax.LabeledStatementNoShortIf"--_LabeledStatementNoShortIf_identifier = Core.Name "identifier"--_LabeledStatementNoShortIf_statement = Core.Name "statement"--newtype ExpressionStatement =- ExpressionStatement {- unExpressionStatement :: StatementExpression}- deriving (Eq, Ord, Read, Show)--_ExpressionStatement = Core.Name "hydra.java.syntax.ExpressionStatement"--data StatementExpression =- StatementExpressionAssignment Assignment |- StatementExpressionPreIncrement PreIncrementExpression |- StatementExpressionPreDecrement PreDecrementExpression |- StatementExpressionPostIncrement PostIncrementExpression |- StatementExpressionPostDecrement PostDecrementExpression |- StatementExpressionMethodInvocation MethodInvocation |- StatementExpressionClassInstanceCreation ClassInstanceCreationExpression- deriving (Eq, Ord, Read, Show)--_StatementExpression = Core.Name "hydra.java.syntax.StatementExpression"--_StatementExpression_assignment = Core.Name "assignment"--_StatementExpression_preIncrement = Core.Name "preIncrement"--_StatementExpression_preDecrement = Core.Name "preDecrement"--_StatementExpression_postIncrement = Core.Name "postIncrement"--_StatementExpression_postDecrement = Core.Name "postDecrement"--_StatementExpression_methodInvocation = Core.Name "methodInvocation"--_StatementExpression_classInstanceCreation = Core.Name "classInstanceCreation"--data IfThenStatement =- IfThenStatement {- ifThenStatementExpression :: Expression,- ifThenStatementStatement :: Statement}- deriving (Eq, Ord, Read, Show)--_IfThenStatement = Core.Name "hydra.java.syntax.IfThenStatement"--_IfThenStatement_expression = Core.Name "expression"--_IfThenStatement_statement = Core.Name "statement"--data IfThenElseStatement =- IfThenElseStatement {- ifThenElseStatementCond :: (Maybe Expression),- ifThenElseStatementThen :: StatementNoShortIf,- ifThenElseStatementElse :: Statement}- deriving (Eq, Ord, Read, Show)--_IfThenElseStatement = Core.Name "hydra.java.syntax.IfThenElseStatement"--_IfThenElseStatement_cond = Core.Name "cond"--_IfThenElseStatement_then = Core.Name "then"--_IfThenElseStatement_else = Core.Name "else"--data IfThenElseStatementNoShortIf =- IfThenElseStatementNoShortIf {- ifThenElseStatementNoShortIfCond :: (Maybe Expression),- ifThenElseStatementNoShortIfThen :: StatementNoShortIf,- ifThenElseStatementNoShortIfElse :: StatementNoShortIf}- deriving (Eq, Ord, Read, Show)--_IfThenElseStatementNoShortIf = Core.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"--_IfThenElseStatementNoShortIf_cond = Core.Name "cond"--_IfThenElseStatementNoShortIf_then = Core.Name "then"--_IfThenElseStatementNoShortIf_else = Core.Name "else"--data AssertStatement =- AssertStatementSingle Expression |- AssertStatementPair AssertStatement_Pair- deriving (Eq, Ord, Read, Show)--_AssertStatement = Core.Name "hydra.java.syntax.AssertStatement"--_AssertStatement_single = Core.Name "single"--_AssertStatement_pair = Core.Name "pair"--data AssertStatement_Pair =- AssertStatement_Pair {- assertStatement_PairFirst :: Expression,- assertStatement_PairSecond :: Expression}- deriving (Eq, Ord, Read, Show)--_AssertStatement_Pair = Core.Name "hydra.java.syntax.AssertStatement_Pair"--_AssertStatement_Pair_first = Core.Name "first"--_AssertStatement_Pair_second = Core.Name "second"--data SwitchStatement =- SwitchStatement {- switchStatementCond :: Expression,- switchStatementBlock :: SwitchBlock}- deriving (Eq, Ord, Read, Show)--_SwitchStatement = Core.Name "hydra.java.syntax.SwitchStatement"--_SwitchStatement_cond = Core.Name "cond"--_SwitchStatement_block = Core.Name "block"--data SwitchBlock =- SwitchBlockRules [SwitchRule] |- SwitchBlockLegacy SwitchBlock_Legacy- deriving (Eq, Ord, Read, Show)--_SwitchBlock = Core.Name "hydra.java.syntax.SwitchBlock"--_SwitchBlock_rules = Core.Name "rules"--_SwitchBlock_legacy = Core.Name "legacy"--data SwitchBlock_Legacy =- SwitchBlock_Legacy {- switchBlock_LegacyGroups :: [SwitchBlockStatementGroup],- switchBlock_LegacyTrailingLabels :: [SwitchLabel]}- deriving (Eq, Ord, Read, Show)--_SwitchBlock_Legacy = Core.Name "hydra.java.syntax.SwitchBlock_Legacy"--_SwitchBlock_Legacy_groups = Core.Name "groups"--_SwitchBlock_Legacy_trailingLabels = Core.Name "trailingLabels"--data SwitchRule =- SwitchRule {- switchRuleLabel :: SwitchLabel,- switchRuleBody :: SwitchRule_Body}- deriving (Eq, Ord, Read, Show)--_SwitchRule = Core.Name "hydra.java.syntax.SwitchRule"--_SwitchRule_label = Core.Name "label"--_SwitchRule_body = Core.Name "body"--data SwitchRule_Body =- SwitchRule_BodyExpression Expression |- SwitchRule_BodyBlock Block |- SwitchRule_BodyThrow ThrowStatement- deriving (Eq, Ord, Read, Show)--_SwitchRule_Body = Core.Name "hydra.java.syntax.SwitchRule_Body"--_SwitchRule_Body_expression = Core.Name "expression"--_SwitchRule_Body_block = Core.Name "block"--_SwitchRule_Body_throw = Core.Name "throw"--data SwitchBlockStatementGroup =- SwitchBlockStatementGroup {- switchBlockStatementGroupLabels :: [SwitchLabel],- switchBlockStatementGroupStatements :: [BlockStatement]}- deriving (Eq, Ord, Read, Show)--_SwitchBlockStatementGroup = Core.Name "hydra.java.syntax.SwitchBlockStatementGroup"--_SwitchBlockStatementGroup_labels = Core.Name "labels"--_SwitchBlockStatementGroup_statements = Core.Name "statements"--data SwitchLabel =- SwitchLabelCase [CaseConstant] |- SwitchLabelNull Bool |- SwitchLabelCasePattern CasePattern |- SwitchLabelDefault- deriving (Eq, Ord, Read, Show)--_SwitchLabel = Core.Name "hydra.java.syntax.SwitchLabel"--_SwitchLabel_case = Core.Name "case"--_SwitchLabel_null = Core.Name "null"--_SwitchLabel_casePattern = Core.Name "casePattern"--_SwitchLabel_default = Core.Name "default"--newtype CaseConstant =- CaseConstant {- unCaseConstant :: ConditionalExpression}- deriving (Eq, Ord, Read, Show)--_CaseConstant = Core.Name "hydra.java.syntax.CaseConstant"--data CasePattern =- CasePattern {- casePatternPattern :: Pattern,- casePatternGuard :: (Maybe Guard)}- deriving (Eq, Ord, Read, Show)--_CasePattern = Core.Name "hydra.java.syntax.CasePattern"--_CasePattern_pattern = Core.Name "pattern"--_CasePattern_guard = Core.Name "guard"--newtype Guard =- Guard {- unGuard :: Expression}- deriving (Eq, Ord, Read, Show)--_Guard = Core.Name "hydra.java.syntax.Guard"--data Pattern =- PatternType TypePattern |- PatternRecord RecordPattern- deriving (Eq, Ord, Read, Show)--_Pattern = Core.Name "hydra.java.syntax.Pattern"--_Pattern_type = Core.Name "type"--_Pattern_record = Core.Name "record"--newtype TypePattern =- TypePattern {- unTypePattern :: LocalVariableDeclaration}- deriving (Eq, Ord, Read, Show)--_TypePattern = Core.Name "hydra.java.syntax.TypePattern"--data RecordPattern =- RecordPattern {- recordPatternType :: ReferenceType,- recordPatternPatterns :: [Pattern]}- deriving (Eq, Ord, Read, Show)--_RecordPattern = Core.Name "hydra.java.syntax.RecordPattern"--_RecordPattern_type = Core.Name "type"--_RecordPattern_patterns = Core.Name "patterns"--data WhileStatement =- WhileStatement {- whileStatementCond :: (Maybe Expression),- whileStatementBody :: Statement}- deriving (Eq, Ord, Read, Show)--_WhileStatement = Core.Name "hydra.java.syntax.WhileStatement"--_WhileStatement_cond = Core.Name "cond"--_WhileStatement_body = Core.Name "body"--data WhileStatementNoShortIf =- WhileStatementNoShortIf {- whileStatementNoShortIfCond :: (Maybe Expression),- whileStatementNoShortIfBody :: StatementNoShortIf}- deriving (Eq, Ord, Read, Show)--_WhileStatementNoShortIf = Core.Name "hydra.java.syntax.WhileStatementNoShortIf"--_WhileStatementNoShortIf_cond = Core.Name "cond"--_WhileStatementNoShortIf_body = Core.Name "body"--data DoStatement =- DoStatement {- doStatementBody :: Statement,- doStatementCond :: Expression}- deriving (Eq, Ord, Read, Show)--_DoStatement = Core.Name "hydra.java.syntax.DoStatement"--_DoStatement_body = Core.Name "body"--_DoStatement_cond = Core.Name "cond"--data ForStatement =- ForStatementBasic BasicForStatement |- ForStatementEnhanced EnhancedForStatement- deriving (Eq, Ord, Read, Show)--_ForStatement = Core.Name "hydra.java.syntax.ForStatement"--_ForStatement_basic = Core.Name "basic"--_ForStatement_enhanced = Core.Name "enhanced"--data ForStatementNoShortIf =- ForStatementNoShortIfBasic BasicForStatementNoShortIf |- ForStatementNoShortIfEnhanced EnhancedForStatementNoShortIf- deriving (Eq, Ord, Read, Show)--_ForStatementNoShortIf = Core.Name "hydra.java.syntax.ForStatementNoShortIf"--_ForStatementNoShortIf_basic = Core.Name "basic"--_ForStatementNoShortIf_enhanced = Core.Name "enhanced"--data BasicForStatement =- BasicForStatement {- basicForStatementCond :: ForCond,- basicForStatementBody :: Statement}- deriving (Eq, Ord, Read, Show)--_BasicForStatement = Core.Name "hydra.java.syntax.BasicForStatement"--_BasicForStatement_cond = Core.Name "cond"--_BasicForStatement_body = Core.Name "body"--data ForCond =- ForCond {- forCondInit :: (Maybe ForInit),- forCondCond :: (Maybe Expression),- forCondUpdate :: (Maybe ForUpdate)}- deriving (Eq, Ord, Read, Show)--_ForCond = Core.Name "hydra.java.syntax.ForCond"--_ForCond_init = Core.Name "init"--_ForCond_cond = Core.Name "cond"--_ForCond_update = Core.Name "update"--data BasicForStatementNoShortIf =- BasicForStatementNoShortIf {- basicForStatementNoShortIfCond :: ForCond,- basicForStatementNoShortIfBody :: StatementNoShortIf}- deriving (Eq, Ord, Read, Show)--_BasicForStatementNoShortIf = Core.Name "hydra.java.syntax.BasicForStatementNoShortIf"--_BasicForStatementNoShortIf_cond = Core.Name "cond"--_BasicForStatementNoShortIf_body = Core.Name "body"--data ForInit =- ForInitStatements [StatementExpression] |- ForInitLocalVariable LocalVariableDeclaration- deriving (Eq, Ord, Read, Show)--_ForInit = Core.Name "hydra.java.syntax.ForInit"--_ForInit_statements = Core.Name "statements"--_ForInit_localVariable = Core.Name "localVariable"--newtype ForUpdate =- ForUpdate {- unForUpdate :: [StatementExpression]}- deriving (Eq, Ord, Read, Show)--_ForUpdate = Core.Name "hydra.java.syntax.ForUpdate"--data EnhancedForStatement =- EnhancedForStatement {- enhancedForStatementCond :: EnhancedForCond,- enhancedForStatementBody :: Statement}- deriving (Eq, Ord, Read, Show)--_EnhancedForStatement = Core.Name "hydra.java.syntax.EnhancedForStatement"--_EnhancedForStatement_cond = Core.Name "cond"--_EnhancedForStatement_body = Core.Name "body"--data EnhancedForCond =- EnhancedForCond {- enhancedForCondDeclaration :: LocalVariableDeclaration,- enhancedForCondExpression :: Expression}- deriving (Eq, Ord, Read, Show)--_EnhancedForCond = Core.Name "hydra.java.syntax.EnhancedForCond"--_EnhancedForCond_declaration = Core.Name "declaration"--_EnhancedForCond_expression = Core.Name "expression"--data EnhancedForStatementNoShortIf =- EnhancedForStatementNoShortIf {- enhancedForStatementNoShortIfCond :: EnhancedForCond,- enhancedForStatementNoShortIfBody :: StatementNoShortIf}- deriving (Eq, Ord, Read, Show)--_EnhancedForStatementNoShortIf = Core.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"--_EnhancedForStatementNoShortIf_cond = Core.Name "cond"--_EnhancedForStatementNoShortIf_body = Core.Name "body"--newtype BreakStatement =- BreakStatement {- unBreakStatement :: (Maybe Identifier)}- deriving (Eq, Ord, Read, Show)--_BreakStatement = Core.Name "hydra.java.syntax.BreakStatement"--newtype YieldStatement =- YieldStatement {- unYieldStatement :: Expression}- deriving (Eq, Ord, Read, Show)--_YieldStatement = Core.Name "hydra.java.syntax.YieldStatement"--newtype ContinueStatement =- ContinueStatement {- unContinueStatement :: (Maybe Identifier)}- deriving (Eq, Ord, Read, Show)--_ContinueStatement = Core.Name "hydra.java.syntax.ContinueStatement"--newtype ReturnStatement =- ReturnStatement {- unReturnStatement :: (Maybe Expression)}- deriving (Eq, Ord, Read, Show)--_ReturnStatement = Core.Name "hydra.java.syntax.ReturnStatement"--newtype ThrowStatement =- ThrowStatement {- unThrowStatement :: Expression}- deriving (Eq, Ord, Read, Show)--_ThrowStatement = Core.Name "hydra.java.syntax.ThrowStatement"--data SynchronizedStatement =- SynchronizedStatement {- synchronizedStatementExpression :: Expression,- synchronizedStatementBlock :: Block}- deriving (Eq, Ord, Read, Show)--_SynchronizedStatement = Core.Name "hydra.java.syntax.SynchronizedStatement"--_SynchronizedStatement_expression = Core.Name "expression"--_SynchronizedStatement_block = Core.Name "block"--data TryStatement =- TryStatementSimple TryStatement_Simple |- TryStatementWithFinally TryStatement_WithFinally |- TryStatementWithResources TryWithResourcesStatement- deriving (Eq, Ord, Read, Show)--_TryStatement = Core.Name "hydra.java.syntax.TryStatement"--_TryStatement_simple = Core.Name "simple"--_TryStatement_withFinally = Core.Name "withFinally"--_TryStatement_withResources = Core.Name "withResources"--data TryStatement_Simple =- TryStatement_Simple {- tryStatement_SimpleBlock :: Block,- tryStatement_SimpleCatches :: Catches}- deriving (Eq, Ord, Read, Show)--_TryStatement_Simple = Core.Name "hydra.java.syntax.TryStatement_Simple"--_TryStatement_Simple_block = Core.Name "block"--_TryStatement_Simple_catches = Core.Name "catches"--data TryStatement_WithFinally =- TryStatement_WithFinally {- tryStatement_WithFinallyBlock :: Block,- tryStatement_WithFinallyCatches :: (Maybe Catches),- tryStatement_WithFinallyFinally :: Finally}- deriving (Eq, Ord, Read, Show)--_TryStatement_WithFinally = Core.Name "hydra.java.syntax.TryStatement_WithFinally"--_TryStatement_WithFinally_block = Core.Name "block"--_TryStatement_WithFinally_catches = Core.Name "catches"--_TryStatement_WithFinally_finally = Core.Name "finally"--newtype Catches =- Catches {- unCatches :: [CatchClause]}- deriving (Eq, Ord, Read, Show)--_Catches = Core.Name "hydra.java.syntax.Catches"--data CatchClause =- CatchClause {- catchClauseParameter :: (Maybe CatchFormalParameter),- catchClauseBlock :: Block}- deriving (Eq, Ord, Read, Show)--_CatchClause = Core.Name "hydra.java.syntax.CatchClause"--_CatchClause_parameter = Core.Name "parameter"--_CatchClause_block = Core.Name "block"--data CatchFormalParameter =- CatchFormalParameter {- catchFormalParameterModifiers :: [VariableModifier],- catchFormalParameterType :: CatchType,- catchFormalParameterId :: VariableDeclaratorId}- deriving (Eq, Ord, Read, Show)--_CatchFormalParameter = Core.Name "hydra.java.syntax.CatchFormalParameter"--_CatchFormalParameter_modifiers = Core.Name "modifiers"--_CatchFormalParameter_type = Core.Name "type"--_CatchFormalParameter_id = Core.Name "id"--data CatchType =- CatchType {- catchTypeType :: UnannClassType,- catchTypeTypes :: [ClassType]}- deriving (Eq, Ord, Read, Show)--_CatchType = Core.Name "hydra.java.syntax.CatchType"--_CatchType_type = Core.Name "type"--_CatchType_types = Core.Name "types"--newtype Finally =- Finally {- unFinally :: Block}- deriving (Eq, Ord, Read, Show)--_Finally = Core.Name "hydra.java.syntax.Finally"--data TryWithResourcesStatement =- TryWithResourcesStatement {- tryWithResourcesStatementResourceSpecification :: ResourceSpecification,- tryWithResourcesStatementBlock :: Block,- tryWithResourcesStatementCatches :: (Maybe Catches),- tryWithResourcesStatementFinally :: (Maybe Finally)}- deriving (Eq, Ord, Read, Show)--_TryWithResourcesStatement = Core.Name "hydra.java.syntax.TryWithResourcesStatement"--_TryWithResourcesStatement_resourceSpecification = Core.Name "resourceSpecification"--_TryWithResourcesStatement_block = Core.Name "block"--_TryWithResourcesStatement_catches = Core.Name "catches"--_TryWithResourcesStatement_finally = Core.Name "finally"--newtype ResourceSpecification =- ResourceSpecification {- unResourceSpecification :: [Resource]}- deriving (Eq, Ord, Read, Show)--_ResourceSpecification = Core.Name "hydra.java.syntax.ResourceSpecification"--data Resource =- ResourceLocal Resource_Local |- ResourceVariable VariableAccess- deriving (Eq, Ord, Read, Show)--_Resource = Core.Name "hydra.java.syntax.Resource"--_Resource_local = Core.Name "local"--_Resource_variable = Core.Name "variable"--data Resource_Local =- Resource_Local {- resource_LocalModifiers :: [VariableModifier],- resource_LocalType :: LocalVariableType,- resource_LocalIdentifier :: Identifier,- resource_LocalExpression :: Expression}- deriving (Eq, Ord, Read, Show)--_Resource_Local = Core.Name "hydra.java.syntax.Resource_Local"--_Resource_Local_modifiers = Core.Name "modifiers"--_Resource_Local_type = Core.Name "type"--_Resource_Local_identifier = Core.Name "identifier"--_Resource_Local_expression = Core.Name "expression"--data VariableAccess =- VariableAccessExpressionName ExpressionName |- VariableAccessFieldAccess FieldAccess- deriving (Eq, Ord, Read, Show)--_VariableAccess = Core.Name "hydra.java.syntax.VariableAccess"--_VariableAccess_expressionName = Core.Name "expressionName"--_VariableAccess_fieldAccess = Core.Name "fieldAccess"--data Primary =- PrimaryNoNewArray PrimaryNoNewArrayExpression |- PrimaryArrayCreation ArrayCreationExpression- deriving (Eq, Ord, Read, Show)--_Primary = Core.Name "hydra.java.syntax.Primary"--_Primary_noNewArray = Core.Name "noNewArray"--_Primary_arrayCreation = Core.Name "arrayCreation"--data PrimaryNoNewArrayExpression =- PrimaryNoNewArrayExpressionLiteral Literal |- PrimaryNoNewArrayExpressionClassLiteral ClassLiteral |- PrimaryNoNewArrayExpressionThis |- PrimaryNoNewArrayExpressionDotThis TypeName |- PrimaryNoNewArrayExpressionParens Expression |- PrimaryNoNewArrayExpressionClassInstance ClassInstanceCreationExpression |- PrimaryNoNewArrayExpressionFieldAccess FieldAccess |- PrimaryNoNewArrayExpressionArrayAccess ArrayAccess |- PrimaryNoNewArrayExpressionMethodInvocation MethodInvocation |- PrimaryNoNewArrayExpressionMethodReference MethodReference- deriving (Eq, Ord, Read, Show)--_PrimaryNoNewArrayExpression = Core.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"--_PrimaryNoNewArrayExpression_literal = Core.Name "literal"--_PrimaryNoNewArrayExpression_classLiteral = Core.Name "classLiteral"--_PrimaryNoNewArrayExpression_this = Core.Name "this"--_PrimaryNoNewArrayExpression_dotThis = Core.Name "dotThis"--_PrimaryNoNewArrayExpression_parens = Core.Name "parens"--_PrimaryNoNewArrayExpression_classInstance = Core.Name "classInstance"--_PrimaryNoNewArrayExpression_fieldAccess = Core.Name "fieldAccess"--_PrimaryNoNewArrayExpression_arrayAccess = Core.Name "arrayAccess"--_PrimaryNoNewArrayExpression_methodInvocation = Core.Name "methodInvocation"--_PrimaryNoNewArrayExpression_methodReference = Core.Name "methodReference"--data ClassLiteral =- ClassLiteralType TypeNameArray |- ClassLiteralNumericType NumericTypeArray |- ClassLiteralBoolean BooleanArray |- ClassLiteralVoid- deriving (Eq, Ord, Read, Show)--_ClassLiteral = Core.Name "hydra.java.syntax.ClassLiteral"--_ClassLiteral_type = Core.Name "type"--_ClassLiteral_numericType = Core.Name "numericType"--_ClassLiteral_boolean = Core.Name "boolean"--_ClassLiteral_void = Core.Name "void"--data TypeNameArray =- TypeNameArraySimple TypeName |- TypeNameArrayArray TypeNameArray- deriving (Eq, Ord, Read, Show)--_TypeNameArray = Core.Name "hydra.java.syntax.TypeNameArray"--_TypeNameArray_simple = Core.Name "simple"--_TypeNameArray_array = Core.Name "array"--data NumericTypeArray =- NumericTypeArraySimple NumericType |- NumericTypeArrayArray NumericTypeArray- deriving (Eq, Ord, Read, Show)--_NumericTypeArray = Core.Name "hydra.java.syntax.NumericTypeArray"--_NumericTypeArray_simple = Core.Name "simple"--_NumericTypeArray_array = Core.Name "array"--data BooleanArray =- BooleanArraySimple |- BooleanArrayArray BooleanArray- deriving (Eq, Ord, Read, Show)--_BooleanArray = Core.Name "hydra.java.syntax.BooleanArray"--_BooleanArray_simple = Core.Name "simple"--_BooleanArray_array = Core.Name "array"--data ClassInstanceCreationExpression =- ClassInstanceCreationExpression {- classInstanceCreationExpressionQualifier :: (Maybe ClassInstanceCreationExpression_Qualifier),- classInstanceCreationExpressionExpression :: UnqualifiedClassInstanceCreationExpression}- deriving (Eq, Ord, Read, Show)--_ClassInstanceCreationExpression = Core.Name "hydra.java.syntax.ClassInstanceCreationExpression"--_ClassInstanceCreationExpression_qualifier = Core.Name "qualifier"--_ClassInstanceCreationExpression_expression = Core.Name "expression"--data ClassInstanceCreationExpression_Qualifier =- ClassInstanceCreationExpression_QualifierExpression ExpressionName |- ClassInstanceCreationExpression_QualifierPrimary Primary- deriving (Eq, Ord, Read, Show)--_ClassInstanceCreationExpression_Qualifier = Core.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier"--_ClassInstanceCreationExpression_Qualifier_expression = Core.Name "expression"--_ClassInstanceCreationExpression_Qualifier_primary = Core.Name "primary"--data UnqualifiedClassInstanceCreationExpression =- UnqualifiedClassInstanceCreationExpression {- unqualifiedClassInstanceCreationExpressionTypeArguments :: [TypeArgument],- unqualifiedClassInstanceCreationExpressionClassOrInterface :: ClassOrInterfaceTypeToInstantiate,- unqualifiedClassInstanceCreationExpressionArguments :: [Expression],- unqualifiedClassInstanceCreationExpressionBody :: (Maybe ClassBody)}- deriving (Eq, Ord, Read, Show)--_UnqualifiedClassInstanceCreationExpression = Core.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"--_UnqualifiedClassInstanceCreationExpression_typeArguments = Core.Name "typeArguments"--_UnqualifiedClassInstanceCreationExpression_classOrInterface = Core.Name "classOrInterface"--_UnqualifiedClassInstanceCreationExpression_arguments = Core.Name "arguments"--_UnqualifiedClassInstanceCreationExpression_body = Core.Name "body"--data ClassOrInterfaceTypeToInstantiate =- ClassOrInterfaceTypeToInstantiate {- classOrInterfaceTypeToInstantiateIdentifiers :: [AnnotatedIdentifier],- classOrInterfaceTypeToInstantiateTypeArguments :: (Maybe TypeArgumentsOrDiamond)}- deriving (Eq, Ord, Read, Show)--_ClassOrInterfaceTypeToInstantiate = Core.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"--_ClassOrInterfaceTypeToInstantiate_identifiers = Core.Name "identifiers"--_ClassOrInterfaceTypeToInstantiate_typeArguments = Core.Name "typeArguments"--data AnnotatedIdentifier =- AnnotatedIdentifier {- annotatedIdentifierAnnotations :: [Annotation],- annotatedIdentifierIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_AnnotatedIdentifier = Core.Name "hydra.java.syntax.AnnotatedIdentifier"--_AnnotatedIdentifier_annotations = Core.Name "annotations"--_AnnotatedIdentifier_identifier = Core.Name "identifier"--data TypeArgumentsOrDiamond =- TypeArgumentsOrDiamondArguments [TypeArgument] |- TypeArgumentsOrDiamondDiamond- deriving (Eq, Ord, Read, Show)--_TypeArgumentsOrDiamond = Core.Name "hydra.java.syntax.TypeArgumentsOrDiamond"--_TypeArgumentsOrDiamond_arguments = Core.Name "arguments"--_TypeArgumentsOrDiamond_diamond = Core.Name "diamond"--data FieldAccess =- FieldAccess {- fieldAccessQualifier :: FieldAccess_Qualifier,- fieldAccessIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_FieldAccess = Core.Name "hydra.java.syntax.FieldAccess"--_FieldAccess_qualifier = Core.Name "qualifier"--_FieldAccess_identifier = Core.Name "identifier"--data FieldAccess_Qualifier =- FieldAccess_QualifierPrimary Primary |- FieldAccess_QualifierSuper |- FieldAccess_QualifierTyped TypeName- deriving (Eq, Ord, Read, Show)--_FieldAccess_Qualifier = Core.Name "hydra.java.syntax.FieldAccess_Qualifier"--_FieldAccess_Qualifier_primary = Core.Name "primary"--_FieldAccess_Qualifier_super = Core.Name "super"--_FieldAccess_Qualifier_typed = Core.Name "typed"--data ArrayAccess =- ArrayAccess {- arrayAccessExpression :: (Maybe Expression),- arrayAccessVariant :: ArrayAccess_Variant}- deriving (Eq, Ord, Read, Show)--_ArrayAccess = Core.Name "hydra.java.syntax.ArrayAccess"--_ArrayAccess_expression = Core.Name "expression"--_ArrayAccess_variant = Core.Name "variant"--data ArrayAccess_Variant =- ArrayAccess_VariantName ExpressionName |- ArrayAccess_VariantPrimary PrimaryNoNewArrayExpression |- ArrayAccess_VariantArrayCreationWithInitializer ArrayCreationExpressionWithInitializer- deriving (Eq, Ord, Read, Show)--_ArrayAccess_Variant = Core.Name "hydra.java.syntax.ArrayAccess_Variant"--_ArrayAccess_Variant_name = Core.Name "name"--_ArrayAccess_Variant_primary = Core.Name "primary"--_ArrayAccess_Variant_arrayCreationWithInitializer = Core.Name "arrayCreationWithInitializer"--data MethodInvocation =- MethodInvocation {- methodInvocationHeader :: MethodInvocation_Header,- methodInvocationArguments :: [Expression]}- deriving (Eq, Ord, Read, Show)--_MethodInvocation = Core.Name "hydra.java.syntax.MethodInvocation"--_MethodInvocation_header = Core.Name "header"--_MethodInvocation_arguments = Core.Name "arguments"--data MethodInvocation_Header =- MethodInvocation_HeaderSimple MethodName |- MethodInvocation_HeaderComplex MethodInvocation_Complex- deriving (Eq, Ord, Read, Show)--_MethodInvocation_Header = Core.Name "hydra.java.syntax.MethodInvocation_Header"--_MethodInvocation_Header_simple = Core.Name "simple"--_MethodInvocation_Header_complex = Core.Name "complex"--data MethodInvocation_Complex =- MethodInvocation_Complex {- methodInvocation_ComplexVariant :: MethodInvocation_Variant,- methodInvocation_ComplexTypeArguments :: [TypeArgument],- methodInvocation_ComplexIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_MethodInvocation_Complex = Core.Name "hydra.java.syntax.MethodInvocation_Complex"--_MethodInvocation_Complex_variant = Core.Name "variant"--_MethodInvocation_Complex_typeArguments = Core.Name "typeArguments"--_MethodInvocation_Complex_identifier = Core.Name "identifier"--data MethodInvocation_Variant =- MethodInvocation_VariantType TypeName |- MethodInvocation_VariantExpression ExpressionName |- MethodInvocation_VariantPrimary Primary |- MethodInvocation_VariantSuper |- MethodInvocation_VariantTypeSuper TypeName- deriving (Eq, Ord, Read, Show)--_MethodInvocation_Variant = Core.Name "hydra.java.syntax.MethodInvocation_Variant"--_MethodInvocation_Variant_type = Core.Name "type"--_MethodInvocation_Variant_expression = Core.Name "expression"--_MethodInvocation_Variant_primary = Core.Name "primary"--_MethodInvocation_Variant_super = Core.Name "super"--_MethodInvocation_Variant_typeSuper = Core.Name "typeSuper"--data MethodReference =- MethodReferenceExpression MethodReference_Expression |- MethodReferencePrimary MethodReference_Primary |- MethodReferenceReferenceType MethodReference_ReferenceType |- MethodReferenceSuper MethodReference_Super |- MethodReferenceNew MethodReference_New |- MethodReferenceArray MethodReference_Array- deriving (Eq, Ord, Read, Show)--_MethodReference = Core.Name "hydra.java.syntax.MethodReference"--_MethodReference_expression = Core.Name "expression"--_MethodReference_primary = Core.Name "primary"--_MethodReference_referenceType = Core.Name "referenceType"--_MethodReference_super = Core.Name "super"--_MethodReference_new = Core.Name "new"--_MethodReference_array = Core.Name "array"--data MethodReference_Expression =- MethodReference_Expression {- methodReference_ExpressionName :: ExpressionName,- methodReference_ExpressionTypeArguments :: [TypeArgument],- methodReference_ExpressionIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_MethodReference_Expression = Core.Name "hydra.java.syntax.MethodReference_Expression"--_MethodReference_Expression_name = Core.Name "name"--_MethodReference_Expression_typeArguments = Core.Name "typeArguments"--_MethodReference_Expression_identifier = Core.Name "identifier"--data MethodReference_Primary =- MethodReference_Primary {- methodReference_PrimaryPrimary :: Primary,- methodReference_PrimaryTypeArguments :: [TypeArgument],- methodReference_PrimaryIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_MethodReference_Primary = Core.Name "hydra.java.syntax.MethodReference_Primary"--_MethodReference_Primary_primary = Core.Name "primary"--_MethodReference_Primary_typeArguments = Core.Name "typeArguments"--_MethodReference_Primary_identifier = Core.Name "identifier"--data MethodReference_ReferenceType =- MethodReference_ReferenceType {- methodReference_ReferenceTypeReferenceType :: ReferenceType,- methodReference_ReferenceTypeTypeArguments :: [TypeArgument],- methodReference_ReferenceTypeIdentifier :: Identifier}- deriving (Eq, Ord, Read, Show)--_MethodReference_ReferenceType = Core.Name "hydra.java.syntax.MethodReference_ReferenceType"--_MethodReference_ReferenceType_referenceType = Core.Name "referenceType"--_MethodReference_ReferenceType_typeArguments = Core.Name "typeArguments"--_MethodReference_ReferenceType_identifier = Core.Name "identifier"--data MethodReference_Super =- MethodReference_Super {- methodReference_SuperTypeArguments :: [TypeArgument],- methodReference_SuperIdentifier :: Identifier,- methodReference_SuperSuper :: Bool}- deriving (Eq, Ord, Read, Show)--_MethodReference_Super = Core.Name "hydra.java.syntax.MethodReference_Super"--_MethodReference_Super_typeArguments = Core.Name "typeArguments"--_MethodReference_Super_identifier = Core.Name "identifier"--_MethodReference_Super_super = Core.Name "super"--data MethodReference_New =- MethodReference_New {- methodReference_NewClassType :: ClassType,- methodReference_NewTypeArguments :: [TypeArgument]}- deriving (Eq, Ord, Read, Show)--_MethodReference_New = Core.Name "hydra.java.syntax.MethodReference_New"--_MethodReference_New_classType = Core.Name "classType"--_MethodReference_New_typeArguments = Core.Name "typeArguments"--newtype MethodReference_Array =- MethodReference_Array {- unMethodReference_Array :: ArrayType}- deriving (Eq, Ord, Read, Show)--_MethodReference_Array = Core.Name "hydra.java.syntax.MethodReference_Array"--data ArrayCreationExpression =- ArrayCreationExpressionNoInit ArrayCreationExpressionWithoutInitializer |- ArrayCreationExpressionWithInit ArrayCreationExpressionWithInitializer- deriving (Eq, Ord, Read, Show)--_ArrayCreationExpression = Core.Name "hydra.java.syntax.ArrayCreationExpression"--_ArrayCreationExpression_noInit = Core.Name "noInit"--_ArrayCreationExpression_withInit = Core.Name "withInit"--data ArrayCreationExpressionWithoutInitializer =- ArrayCreationExpressionWithoutInitializerPrimitive ArrayCreationExpressionWithoutInitializer_Primitive |- ArrayCreationExpressionWithoutInitializerClassOrInterface ArrayCreationExpressionWithoutInitializer_ClassOrInterface- deriving (Eq, Ord, Read, Show)--_ArrayCreationExpressionWithoutInitializer = Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer"--_ArrayCreationExpressionWithoutInitializer_primitive = Core.Name "primitive"--_ArrayCreationExpressionWithoutInitializer_classOrInterface = Core.Name "classOrInterface"--data ArrayCreationExpressionWithoutInitializer_Primitive =- ArrayCreationExpressionWithoutInitializer_Primitive {- arrayCreationExpressionWithoutInitializer_PrimitiveType :: PrimitiveTypeWithAnnotations,- arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs :: [DimExpr],- arrayCreationExpressionWithoutInitializer_PrimitiveDims :: (Maybe Dims)}- deriving (Eq, Ord, Read, Show)--_ArrayCreationExpressionWithoutInitializer_Primitive =- Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"--_ArrayCreationExpressionWithoutInitializer_Primitive_type = Core.Name "type"--_ArrayCreationExpressionWithoutInitializer_Primitive_dimExprs = Core.Name "dimExprs"--_ArrayCreationExpressionWithoutInitializer_Primitive_dims = Core.Name "dims"--data ArrayCreationExpressionWithoutInitializer_ClassOrInterface =- ArrayCreationExpressionWithoutInitializer_ClassOrInterface {- arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType :: ClassOrInterfaceType,- arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs :: [DimExpr],- arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims :: (Maybe Dims)}- deriving (Eq, Ord, Read, Show)--_ArrayCreationExpressionWithoutInitializer_ClassOrInterface =- Core.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"--_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_type = Core.Name "type"--_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_dimExprs = Core.Name "dimExprs"--_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_dims = Core.Name "dims"--data ArrayCreationExpressionWithInitializer =- ArrayCreationExpressionWithInitializerPrimitive ArrayCreationExpressionWithInitializer_Primitive |- ArrayCreationExpressionWithInitializerClassOrInterface ArrayCreationExpressionWithInitializer_ClassOrInterface- deriving (Eq, Ord, Read, Show)--_ArrayCreationExpressionWithInitializer = Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer"--_ArrayCreationExpressionWithInitializer_primitive = Core.Name "primitive"--_ArrayCreationExpressionWithInitializer_classOrInterface = Core.Name "classOrInterface"--data ArrayCreationExpressionWithInitializer_Primitive =- ArrayCreationExpressionWithInitializer_Primitive {- arrayCreationExpressionWithInitializer_PrimitiveType :: PrimitiveTypeWithAnnotations,- arrayCreationExpressionWithInitializer_PrimitiveDims :: [Dims],- arrayCreationExpressionWithInitializer_PrimitiveArray :: ArrayInitializer}- deriving (Eq, Ord, Read, Show)--_ArrayCreationExpressionWithInitializer_Primitive =- Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"--_ArrayCreationExpressionWithInitializer_Primitive_type = Core.Name "type"--_ArrayCreationExpressionWithInitializer_Primitive_dims = Core.Name "dims"--_ArrayCreationExpressionWithInitializer_Primitive_array = Core.Name "array"--data ArrayCreationExpressionWithInitializer_ClassOrInterface =- ArrayCreationExpressionWithInitializer_ClassOrInterface {- arrayCreationExpressionWithInitializer_ClassOrInterfaceType :: ClassOrInterfaceType,- arrayCreationExpressionWithInitializer_ClassOrInterfaceDims :: [Dims],- arrayCreationExpressionWithInitializer_ClassOrInterfaceArray :: ArrayInitializer}- deriving (Eq, Ord, Read, Show)--_ArrayCreationExpressionWithInitializer_ClassOrInterface =- Core.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"--_ArrayCreationExpressionWithInitializer_ClassOrInterface_type = Core.Name "type"--_ArrayCreationExpressionWithInitializer_ClassOrInterface_dims = Core.Name "dims"--_ArrayCreationExpressionWithInitializer_ClassOrInterface_array = Core.Name "array"--data DimExpr =- DimExpr {- dimExprAnnotations :: [Annotation],- dimExprExpression :: (Maybe Expression)}- deriving (Eq, Ord, Read, Show)--_DimExpr = Core.Name "hydra.java.syntax.DimExpr"--_DimExpr_annotations = Core.Name "annotations"--_DimExpr_expression = Core.Name "expression"--data Expression =- ExpressionLambda LambdaExpression |- ExpressionAssignment AssignmentExpression- deriving (Eq, Ord, Read, Show)--_Expression = Core.Name "hydra.java.syntax.Expression"--_Expression_lambda = Core.Name "lambda"--_Expression_assignment = Core.Name "assignment"--data LambdaExpression =- LambdaExpression {- lambdaExpressionParameters :: LambdaParameters,- lambdaExpressionBody :: LambdaBody}- deriving (Eq, Ord, Read, Show)--_LambdaExpression = Core.Name "hydra.java.syntax.LambdaExpression"--_LambdaExpression_parameters = Core.Name "parameters"--_LambdaExpression_body = Core.Name "body"--data LambdaParameters =- LambdaParametersTuple [LambdaParameters] |- LambdaParametersSingle Identifier- deriving (Eq, Ord, Read, Show)--_LambdaParameters = Core.Name "hydra.java.syntax.LambdaParameters"--_LambdaParameters_tuple = Core.Name "tuple"--_LambdaParameters_single = Core.Name "single"--data LambdaParameter =- LambdaParameterNormal LambdaParameter_Normal |- LambdaParameterVariableArity VariableArityParameter- deriving (Eq, Ord, Read, Show)--_LambdaParameter = Core.Name "hydra.java.syntax.LambdaParameter"--_LambdaParameter_normal = Core.Name "normal"--_LambdaParameter_variableArity = Core.Name "variableArity"--data LambdaParameter_Normal =- LambdaParameter_Normal {- lambdaParameter_NormalModifiers :: [VariableModifier],- lambdaParameter_NormalType :: LambdaParameterType,- lambdaParameter_NormalId :: VariableDeclaratorId}- deriving (Eq, Ord, Read, Show)--_LambdaParameter_Normal = Core.Name "hydra.java.syntax.LambdaParameter_Normal"--_LambdaParameter_Normal_modifiers = Core.Name "modifiers"--_LambdaParameter_Normal_type = Core.Name "type"--_LambdaParameter_Normal_id = Core.Name "id"--data LambdaParameterType =- LambdaParameterTypeType UnannType |- LambdaParameterTypeVar- deriving (Eq, Ord, Read, Show)--_LambdaParameterType = Core.Name "hydra.java.syntax.LambdaParameterType"--_LambdaParameterType_type = Core.Name "type"--_LambdaParameterType_var = Core.Name "var"--data LambdaBody =- LambdaBodyExpression Expression |- LambdaBodyBlock Block- deriving (Eq, Ord, Read, Show)--_LambdaBody = Core.Name "hydra.java.syntax.LambdaBody"--_LambdaBody_expression = Core.Name "expression"--_LambdaBody_block = Core.Name "block"--data AssignmentExpression =- AssignmentExpressionConditional ConditionalExpression |- AssignmentExpressionAssignment Assignment- deriving (Eq, Ord, Read, Show)--_AssignmentExpression = Core.Name "hydra.java.syntax.AssignmentExpression"--_AssignmentExpression_conditional = Core.Name "conditional"--_AssignmentExpression_assignment = Core.Name "assignment"--data Assignment =- Assignment {- assignmentLhs :: LeftHandSide,- assignmentOp :: AssignmentOperator,- assignmentExpression :: Expression}- deriving (Eq, Ord, Read, Show)--_Assignment = Core.Name "hydra.java.syntax.Assignment"--_Assignment_lhs = Core.Name "lhs"--_Assignment_op = Core.Name "op"--_Assignment_expression = Core.Name "expression"--data LeftHandSide =- LeftHandSideExpressionName ExpressionName |- LeftHandSideFieldAccess FieldAccess |- LeftHandSideArrayAccess ArrayAccess- deriving (Eq, Ord, Read, Show)--_LeftHandSide = Core.Name "hydra.java.syntax.LeftHandSide"--_LeftHandSide_expressionName = Core.Name "expressionName"--_LeftHandSide_fieldAccess = Core.Name "fieldAccess"--_LeftHandSide_arrayAccess = Core.Name "arrayAccess"--data AssignmentOperator =- AssignmentOperatorSimple |- AssignmentOperatorTimes |- AssignmentOperatorDiv |- AssignmentOperatorMod |- AssignmentOperatorPlus |- AssignmentOperatorMinus |- AssignmentOperatorShiftLeft |- AssignmentOperatorShiftRight |- AssignmentOperatorShiftRightZeroFill |- AssignmentOperatorAnd |- AssignmentOperatorXor |- AssignmentOperatorOr- deriving (Eq, Ord, Read, Show)--_AssignmentOperator = Core.Name "hydra.java.syntax.AssignmentOperator"--_AssignmentOperator_simple = Core.Name "simple"--_AssignmentOperator_times = Core.Name "times"--_AssignmentOperator_div = Core.Name "div"--_AssignmentOperator_mod = Core.Name "mod"--_AssignmentOperator_plus = Core.Name "plus"--_AssignmentOperator_minus = Core.Name "minus"--_AssignmentOperator_shiftLeft = Core.Name "shiftLeft"--_AssignmentOperator_shiftRight = Core.Name "shiftRight"--_AssignmentOperator_shiftRightZeroFill = Core.Name "shiftRightZeroFill"--_AssignmentOperator_and = Core.Name "and"--_AssignmentOperator_xor = Core.Name "xor"--_AssignmentOperator_or = Core.Name "or"--data ConditionalExpression =- ConditionalExpressionSimple ConditionalOrExpression |- ConditionalExpressionTernaryCond ConditionalExpression_TernaryCond |- ConditionalExpressionTernaryLambda ConditionalExpression_TernaryLambda- deriving (Eq, Ord, Read, Show)--_ConditionalExpression = Core.Name "hydra.java.syntax.ConditionalExpression"--_ConditionalExpression_simple = Core.Name "simple"--_ConditionalExpression_ternaryCond = Core.Name "ternaryCond"--_ConditionalExpression_ternaryLambda = Core.Name "ternaryLambda"--data ConditionalExpression_TernaryCond =- ConditionalExpression_TernaryCond {- conditionalExpression_TernaryCondCond :: ConditionalOrExpression,- conditionalExpression_TernaryCondIfTrue :: Expression,- conditionalExpression_TernaryCondIfFalse :: ConditionalExpression}- deriving (Eq, Ord, Read, Show)--_ConditionalExpression_TernaryCond = Core.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"--_ConditionalExpression_TernaryCond_cond = Core.Name "cond"--_ConditionalExpression_TernaryCond_ifTrue = Core.Name "ifTrue"--_ConditionalExpression_TernaryCond_ifFalse = Core.Name "ifFalse"--data ConditionalExpression_TernaryLambda =- ConditionalExpression_TernaryLambda {- conditionalExpression_TernaryLambdaCond :: ConditionalOrExpression,- conditionalExpression_TernaryLambdaIfTrue :: Expression,- conditionalExpression_TernaryLambdaIfFalse :: LambdaExpression}- deriving (Eq, Ord, Read, Show)--_ConditionalExpression_TernaryLambda = Core.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"--_ConditionalExpression_TernaryLambda_cond = Core.Name "cond"--_ConditionalExpression_TernaryLambda_ifTrue = Core.Name "ifTrue"--_ConditionalExpression_TernaryLambda_ifFalse = Core.Name "ifFalse"--newtype ConditionalOrExpression =- ConditionalOrExpression {- unConditionalOrExpression :: [ConditionalAndExpression]}- deriving (Eq, Ord, Read, Show)--_ConditionalOrExpression = Core.Name "hydra.java.syntax.ConditionalOrExpression"--newtype ConditionalAndExpression =- ConditionalAndExpression {- unConditionalAndExpression :: [InclusiveOrExpression]}- deriving (Eq, Ord, Read, Show)--_ConditionalAndExpression = Core.Name "hydra.java.syntax.ConditionalAndExpression"--newtype InclusiveOrExpression =- InclusiveOrExpression {- unInclusiveOrExpression :: [ExclusiveOrExpression]}- deriving (Eq, Ord, Read, Show)--_InclusiveOrExpression = Core.Name "hydra.java.syntax.InclusiveOrExpression"--newtype ExclusiveOrExpression =- ExclusiveOrExpression {- unExclusiveOrExpression :: [AndExpression]}- deriving (Eq, Ord, Read, Show)--_ExclusiveOrExpression = Core.Name "hydra.java.syntax.ExclusiveOrExpression"--newtype AndExpression =- AndExpression {- unAndExpression :: [EqualityExpression]}- deriving (Eq, Ord, Read, Show)--_AndExpression = Core.Name "hydra.java.syntax.AndExpression"--data EqualityExpression =- EqualityExpressionUnary RelationalExpression |- EqualityExpressionEqual EqualityExpression_Binary |- EqualityExpressionNotEqual EqualityExpression_Binary- deriving (Eq, Ord, Read, Show)--_EqualityExpression = Core.Name "hydra.java.syntax.EqualityExpression"--_EqualityExpression_unary = Core.Name "unary"--_EqualityExpression_equal = Core.Name "equal"--_EqualityExpression_notEqual = Core.Name "notEqual"--data EqualityExpression_Binary =- EqualityExpression_Binary {- equalityExpression_BinaryLhs :: EqualityExpression,- equalityExpression_BinaryRhs :: RelationalExpression}- deriving (Eq, Ord, Read, Show)--_EqualityExpression_Binary = Core.Name "hydra.java.syntax.EqualityExpression_Binary"--_EqualityExpression_Binary_lhs = Core.Name "lhs"--_EqualityExpression_Binary_rhs = Core.Name "rhs"--data RelationalExpression =- RelationalExpressionSimple ShiftExpression |- RelationalExpressionLessThan RelationalExpression_LessThan |- RelationalExpressionGreaterThan RelationalExpression_GreaterThan |- RelationalExpressionLessThanEqual RelationalExpression_LessThanEqual |- RelationalExpressionGreaterThanEqual RelationalExpression_GreaterThanEqual |- RelationalExpressionInstanceofExpression InstanceofExpression- deriving (Eq, Ord, Read, Show)--_RelationalExpression = Core.Name "hydra.java.syntax.RelationalExpression"--_RelationalExpression_simple = Core.Name "simple"--_RelationalExpression_lessThan = Core.Name "lessThan"--_RelationalExpression_greaterThan = Core.Name "greaterThan"--_RelationalExpression_lessThanEqual = Core.Name "lessThanEqual"--_RelationalExpression_greaterThanEqual = Core.Name "greaterThanEqual"--_RelationalExpression_instanceofExpression = Core.Name "instanceofExpression"--data RelationalExpression_LessThan =- RelationalExpression_LessThan {- relationalExpression_LessThanLhs :: RelationalExpression,- relationalExpression_LessThanRhs :: ShiftExpression}- deriving (Eq, Ord, Read, Show)--_RelationalExpression_LessThan = Core.Name "hydra.java.syntax.RelationalExpression_LessThan"--_RelationalExpression_LessThan_lhs = Core.Name "lhs"--_RelationalExpression_LessThan_rhs = Core.Name "rhs"--data RelationalExpression_GreaterThan =- RelationalExpression_GreaterThan {- relationalExpression_GreaterThanLhs :: RelationalExpression,- relationalExpression_GreaterThanRhs :: ShiftExpression}- deriving (Eq, Ord, Read, Show)--_RelationalExpression_GreaterThan = Core.Name "hydra.java.syntax.RelationalExpression_GreaterThan"--_RelationalExpression_GreaterThan_lhs = Core.Name "lhs"--_RelationalExpression_GreaterThan_rhs = Core.Name "rhs"--data RelationalExpression_LessThanEqual =- RelationalExpression_LessThanEqual {- relationalExpression_LessThanEqualLhs :: RelationalExpression,- relationalExpression_LessThanEqualRhs :: ShiftExpression}- deriving (Eq, Ord, Read, Show)--_RelationalExpression_LessThanEqual = Core.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"--_RelationalExpression_LessThanEqual_lhs = Core.Name "lhs"--_RelationalExpression_LessThanEqual_rhs = Core.Name "rhs"--data RelationalExpression_GreaterThanEqual =- RelationalExpression_GreaterThanEqual {- relationalExpression_GreaterThanEqualLhs :: RelationalExpression,- relationalExpression_GreaterThanEqualRhs :: ShiftExpression}- deriving (Eq, Ord, Read, Show)--_RelationalExpression_GreaterThanEqual = Core.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"--_RelationalExpression_GreaterThanEqual_lhs = Core.Name "lhs"--_RelationalExpression_GreaterThanEqual_rhs = Core.Name "rhs"--data InstanceofExpression =- InstanceofExpression {- instanceofExpressionLhs :: RelationalExpression,- instanceofExpressionRhs :: InstanceofExpression_Rhs}- deriving (Eq, Ord, Read, Show)--_InstanceofExpression = Core.Name "hydra.java.syntax.InstanceofExpression"--_InstanceofExpression_lhs = Core.Name "lhs"--_InstanceofExpression_rhs = Core.Name "rhs"--data InstanceofExpression_Rhs =- InstanceofExpression_RhsReferenceType ReferenceType |- InstanceofExpression_RhsPattern Pattern- deriving (Eq, Ord, Read, Show)--_InstanceofExpression_Rhs = Core.Name "hydra.java.syntax.InstanceofExpression_Rhs"--_InstanceofExpression_Rhs_referenceType = Core.Name "referenceType"--_InstanceofExpression_Rhs_pattern = Core.Name "pattern"--data ShiftExpression =- ShiftExpressionUnary AdditiveExpression |- ShiftExpressionShiftLeft ShiftExpression_Binary |- ShiftExpressionShiftRight ShiftExpression_Binary |- ShiftExpressionShiftRightZeroFill ShiftExpression_Binary- deriving (Eq, Ord, Read, Show)--_ShiftExpression = Core.Name "hydra.java.syntax.ShiftExpression"--_ShiftExpression_unary = Core.Name "unary"--_ShiftExpression_shiftLeft = Core.Name "shiftLeft"--_ShiftExpression_shiftRight = Core.Name "shiftRight"--_ShiftExpression_shiftRightZeroFill = Core.Name "shiftRightZeroFill"--data ShiftExpression_Binary =- ShiftExpression_Binary {- shiftExpression_BinaryLhs :: ShiftExpression,- shiftExpression_BinaryRhs :: AdditiveExpression}- deriving (Eq, Ord, Read, Show)--_ShiftExpression_Binary = Core.Name "hydra.java.syntax.ShiftExpression_Binary"--_ShiftExpression_Binary_lhs = Core.Name "lhs"--_ShiftExpression_Binary_rhs = Core.Name "rhs"--data AdditiveExpression =- AdditiveExpressionUnary MultiplicativeExpression |- AdditiveExpressionPlus AdditiveExpression_Binary |- AdditiveExpressionMinus AdditiveExpression_Binary- deriving (Eq, Ord, Read, Show)--_AdditiveExpression = Core.Name "hydra.java.syntax.AdditiveExpression"--_AdditiveExpression_unary = Core.Name "unary"--_AdditiveExpression_plus = Core.Name "plus"--_AdditiveExpression_minus = Core.Name "minus"--data AdditiveExpression_Binary =- AdditiveExpression_Binary {- additiveExpression_BinaryLhs :: AdditiveExpression,- additiveExpression_BinaryRhs :: MultiplicativeExpression}- deriving (Eq, Ord, Read, Show)--_AdditiveExpression_Binary = Core.Name "hydra.java.syntax.AdditiveExpression_Binary"--_AdditiveExpression_Binary_lhs = Core.Name "lhs"--_AdditiveExpression_Binary_rhs = Core.Name "rhs"--data MultiplicativeExpression =- MultiplicativeExpressionUnary UnaryExpression |- MultiplicativeExpressionTimes MultiplicativeExpression_Binary |- MultiplicativeExpressionDivide MultiplicativeExpression_Binary |- MultiplicativeExpressionMod MultiplicativeExpression_Binary- deriving (Eq, Ord, Read, Show)--_MultiplicativeExpression = Core.Name "hydra.java.syntax.MultiplicativeExpression"--_MultiplicativeExpression_unary = Core.Name "unary"--_MultiplicativeExpression_times = Core.Name "times"--_MultiplicativeExpression_divide = Core.Name "divide"--_MultiplicativeExpression_mod = Core.Name "mod"--data MultiplicativeExpression_Binary =- MultiplicativeExpression_Binary {- multiplicativeExpression_BinaryLhs :: MultiplicativeExpression,- multiplicativeExpression_BinaryRhs :: UnaryExpression}- deriving (Eq, Ord, Read, Show)--_MultiplicativeExpression_Binary = Core.Name "hydra.java.syntax.MultiplicativeExpression_Binary"--_MultiplicativeExpression_Binary_lhs = Core.Name "lhs"--_MultiplicativeExpression_Binary_rhs = Core.Name "rhs"--data UnaryExpression =- UnaryExpressionPreIncrement PreIncrementExpression |- UnaryExpressionPreDecrement PreDecrementExpression |- UnaryExpressionPlus UnaryExpression |- UnaryExpressionMinus UnaryExpression |- UnaryExpressionOther UnaryExpressionNotPlusMinus- deriving (Eq, Ord, Read, Show)--_UnaryExpression = Core.Name "hydra.java.syntax.UnaryExpression"--_UnaryExpression_preIncrement = Core.Name "preIncrement"--_UnaryExpression_preDecrement = Core.Name "preDecrement"--_UnaryExpression_plus = Core.Name "plus"--_UnaryExpression_minus = Core.Name "minus"--_UnaryExpression_other = Core.Name "other"--newtype PreIncrementExpression =- PreIncrementExpression {- unPreIncrementExpression :: UnaryExpression}- deriving (Eq, Ord, Read, Show)--_PreIncrementExpression = Core.Name "hydra.java.syntax.PreIncrementExpression"--newtype PreDecrementExpression =- PreDecrementExpression {- unPreDecrementExpression :: UnaryExpression}- deriving (Eq, Ord, Read, Show)--_PreDecrementExpression = Core.Name "hydra.java.syntax.PreDecrementExpression"--data UnaryExpressionNotPlusMinus =- UnaryExpressionNotPlusMinusPostfix PostfixExpression |- UnaryExpressionNotPlusMinusTilde UnaryExpression |- UnaryExpressionNotPlusMinusNot UnaryExpression |- UnaryExpressionNotPlusMinusCast CastExpression |- UnaryExpressionNotPlusMinusSwitchExpression SwitchExpression- deriving (Eq, Ord, Read, Show)--_UnaryExpressionNotPlusMinus = Core.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"--_UnaryExpressionNotPlusMinus_postfix = Core.Name "postfix"--_UnaryExpressionNotPlusMinus_tilde = Core.Name "tilde"--_UnaryExpressionNotPlusMinus_not = Core.Name "not"--_UnaryExpressionNotPlusMinus_cast = Core.Name "cast"--_UnaryExpressionNotPlusMinus_switchExpression = Core.Name "switchExpression"--data PostfixExpression =- PostfixExpressionPrimary Primary |- PostfixExpressionName ExpressionName |- PostfixExpressionPostIncrement PostIncrementExpression |- PostfixExpressionPostDecrement PostDecrementExpression- deriving (Eq, Ord, Read, Show)--_PostfixExpression = Core.Name "hydra.java.syntax.PostfixExpression"--_PostfixExpression_primary = Core.Name "primary"--_PostfixExpression_name = Core.Name "name"--_PostfixExpression_postIncrement = Core.Name "postIncrement"--_PostfixExpression_postDecrement = Core.Name "postDecrement"--newtype PostIncrementExpression =- PostIncrementExpression {- unPostIncrementExpression :: PostfixExpression}- deriving (Eq, Ord, Read, Show)--_PostIncrementExpression = Core.Name "hydra.java.syntax.PostIncrementExpression"--newtype PostDecrementExpression =- PostDecrementExpression {- unPostDecrementExpression :: PostfixExpression}- deriving (Eq, Ord, Read, Show)--_PostDecrementExpression = Core.Name "hydra.java.syntax.PostDecrementExpression"--data CastExpression =- CastExpressionPrimitive CastExpression_Primitive |- CastExpressionNotPlusMinus CastExpression_NotPlusMinus |- CastExpressionLambda CastExpression_Lambda- deriving (Eq, Ord, Read, Show)--_CastExpression = Core.Name "hydra.java.syntax.CastExpression"--_CastExpression_primitive = Core.Name "primitive"--_CastExpression_notPlusMinus = Core.Name "notPlusMinus"--_CastExpression_lambda = Core.Name "lambda"--data CastExpression_Primitive =- CastExpression_Primitive {- castExpression_PrimitiveType :: PrimitiveTypeWithAnnotations,- castExpression_PrimitiveExpression :: UnaryExpression}- deriving (Eq, Ord, Read, Show)--_CastExpression_Primitive = Core.Name "hydra.java.syntax.CastExpression_Primitive"--_CastExpression_Primitive_type = Core.Name "type"--_CastExpression_Primitive_expression = Core.Name "expression"--data CastExpression_NotPlusMinus =- CastExpression_NotPlusMinus {- castExpression_NotPlusMinusRefAndBounds :: CastExpression_RefAndBounds,- castExpression_NotPlusMinusExpression :: UnaryExpression}- deriving (Eq, Ord, Read, Show)--_CastExpression_NotPlusMinus = Core.Name "hydra.java.syntax.CastExpression_NotPlusMinus"--_CastExpression_NotPlusMinus_refAndBounds = Core.Name "refAndBounds"--_CastExpression_NotPlusMinus_expression = Core.Name "expression"--data CastExpression_Lambda =- CastExpression_Lambda {- castExpression_LambdaRefAndBounds :: CastExpression_RefAndBounds,- castExpression_LambdaExpression :: LambdaExpression}- deriving (Eq, Ord, Read, Show)--_CastExpression_Lambda = Core.Name "hydra.java.syntax.CastExpression_Lambda"--_CastExpression_Lambda_refAndBounds = Core.Name "refAndBounds"--_CastExpression_Lambda_expression = Core.Name "expression"--data CastExpression_RefAndBounds =- CastExpression_RefAndBounds {- castExpression_RefAndBoundsType :: ReferenceType,- castExpression_RefAndBoundsBounds :: [AdditionalBound]}- deriving (Eq, Ord, Read, Show)--_CastExpression_RefAndBounds = Core.Name "hydra.java.syntax.CastExpression_RefAndBounds"--_CastExpression_RefAndBounds_type = Core.Name "type"--_CastExpression_RefAndBounds_bounds = Core.Name "bounds"--data SwitchExpression =- SwitchExpression {- switchExpressionCond :: Expression,- switchExpressionBlock :: SwitchBlock}- deriving (Eq, Ord, Read, Show)--_SwitchExpression = Core.Name "hydra.java.syntax.SwitchExpression"--_SwitchExpression_cond = Core.Name "cond"--_SwitchExpression_block = Core.Name "block"--newtype ConstantExpression =- ConstantExpression {- unConstantExpression :: Expression}- deriving (Eq, Ord, Read, Show)--_ConstantExpression = Core.Name "hydra.java.syntax.ConstantExpression"+import qualified Hydra.Core.Model as Model+import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void++newtype Identifier =+ Identifier {+ unIdentifier :: String}+ deriving (Eq, Ord, Read, Show)++_Identifier = Model.Name "hydra.java.syntax.Identifier"++newtype TypeIdentifier =+ TypeIdentifier {+ unTypeIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_TypeIdentifier = Model.Name "hydra.java.syntax.TypeIdentifier"++data Literal =+ LiteralNull |+ LiteralInteger IntegerLiteral |+ LiteralFloatingPoint FloatingPointLiteral |+ LiteralBoolean Bool |+ LiteralCharacter Int |+ LiteralString StringLiteral |+ LiteralTextBlock TextBlock+ deriving (Eq, Ord, Read, Show)++_Literal = Model.Name "hydra.java.syntax.Literal"++_Literal_null = Model.Name "null"++_Literal_integer = Model.Name "integer"++_Literal_floatingPoint = Model.Name "floatingPoint"++_Literal_boolean = Model.Name "boolean"++_Literal_character = Model.Name "character"++_Literal_string = Model.Name "string"++_Literal_textBlock = Model.Name "textBlock"++-- | Note: this is an approximation which ignores encoding+newtype IntegerLiteral =+ IntegerLiteral {+ unIntegerLiteral :: Integer}+ deriving (Eq, Ord, Read, Show)++_IntegerLiteral = Model.Name "hydra.java.syntax.IntegerLiteral"++-- | Note: this is an approximation which ignores encoding+newtype FloatingPointLiteral =+ FloatingPointLiteral {+ unFloatingPointLiteral :: Double}+ deriving (Eq, Ord, Read, Show)++_FloatingPointLiteral = Model.Name "hydra.java.syntax.FloatingPointLiteral"++-- | Note: this is an approximation which ignores encoding+newtype StringLiteral =+ StringLiteral {+ unStringLiteral :: String}+ deriving (Eq, Ord, Read, Show)++_StringLiteral = Model.Name "hydra.java.syntax.StringLiteral"++-- | Note: this is an approximation which ignores encoding and incidental whitespace stripping+newtype TextBlock =+ TextBlock {+ unTextBlock :: String}+ deriving (Eq, Ord, Read, Show)++_TextBlock = Model.Name "hydra.java.syntax.TextBlock"++data Type =+ TypePrimitive PrimitiveTypeWithAnnotations |+ TypeReference ReferenceType+ deriving (Eq, Ord, Read, Show)++_Type = Model.Name "hydra.java.syntax.Type"++_Type_primitive = Model.Name "primitive"++_Type_reference = Model.Name "reference"++data PrimitiveTypeWithAnnotations =+ PrimitiveTypeWithAnnotations {+ primitiveTypeWithAnnotationsType :: PrimitiveType,+ primitiveTypeWithAnnotationsAnnotations :: [Annotation]}+ deriving (Eq, Ord, Read, Show)++_PrimitiveTypeWithAnnotations = Model.Name "hydra.java.syntax.PrimitiveTypeWithAnnotations"++_PrimitiveTypeWithAnnotations_type = Model.Name "type"++_PrimitiveTypeWithAnnotations_annotations = Model.Name "annotations"++data PrimitiveType =+ PrimitiveTypeNumeric NumericType |+ PrimitiveTypeBoolean+ deriving (Eq, Ord, Read, Show)++_PrimitiveType = Model.Name "hydra.java.syntax.PrimitiveType"++_PrimitiveType_numeric = Model.Name "numeric"++_PrimitiveType_boolean = Model.Name "boolean"++data NumericType =+ NumericTypeIntegral IntegralType |+ NumericTypeFloatingPoint FloatingPointType+ deriving (Eq, Ord, Read, Show)++_NumericType = Model.Name "hydra.java.syntax.NumericType"++_NumericType_integral = Model.Name "integral"++_NumericType_floatingPoint = Model.Name "floatingPoint"++data IntegralType =+ IntegralTypeByte |+ IntegralTypeShort |+ IntegralTypeInt |+ IntegralTypeLong |+ IntegralTypeChar+ deriving (Eq, Ord, Read, Show)++_IntegralType = Model.Name "hydra.java.syntax.IntegralType"++_IntegralType_byte = Model.Name "byte"++_IntegralType_short = Model.Name "short"++_IntegralType_int = Model.Name "int"++_IntegralType_long = Model.Name "long"++_IntegralType_char = Model.Name "char"++data FloatingPointType =+ FloatingPointTypeFloat |+ FloatingPointTypeDouble+ deriving (Eq, Ord, Read, Show)++_FloatingPointType = Model.Name "hydra.java.syntax.FloatingPointType"++_FloatingPointType_float = Model.Name "float"++_FloatingPointType_double = Model.Name "double"++data ReferenceType =+ ReferenceTypeClassOrInterface ClassOrInterfaceType |+ ReferenceTypeVariable TypeVariable |+ ReferenceTypeArray ArrayType+ deriving (Eq, Ord, Read, Show)++_ReferenceType = Model.Name "hydra.java.syntax.ReferenceType"++_ReferenceType_classOrInterface = Model.Name "classOrInterface"++_ReferenceType_variable = Model.Name "variable"++_ReferenceType_array = Model.Name "array"++data ClassOrInterfaceType =+ ClassOrInterfaceTypeClass ClassType |+ ClassOrInterfaceTypeInterface InterfaceType+ deriving (Eq, Ord, Read, Show)++_ClassOrInterfaceType = Model.Name "hydra.java.syntax.ClassOrInterfaceType"++_ClassOrInterfaceType_class = Model.Name "class"++_ClassOrInterfaceType_interface = Model.Name "interface"++data ClassType =+ ClassType {+ classTypeAnnotations :: [Annotation],+ classTypeQualifier :: ClassTypeQualifier,+ classTypeIdentifier :: TypeIdentifier,+ classTypeArguments :: [TypeArgument]}+ deriving (Eq, Ord, Read, Show)++_ClassType = Model.Name "hydra.java.syntax.ClassType"++_ClassType_annotations = Model.Name "annotations"++_ClassType_qualifier = Model.Name "qualifier"++_ClassType_identifier = Model.Name "identifier"++_ClassType_arguments = Model.Name "arguments"++data ClassTypeQualifier =+ ClassTypeQualifierNone |+ ClassTypeQualifierPackage PackageName |+ ClassTypeQualifierParent ClassOrInterfaceType+ deriving (Eq, Ord, Read, Show)++_ClassTypeQualifier = Model.Name "hydra.java.syntax.ClassTypeQualifier"++_ClassTypeQualifier_none = Model.Name "none"++_ClassTypeQualifier_package = Model.Name "package"++_ClassTypeQualifier_parent = Model.Name "parent"++newtype InterfaceType =+ InterfaceType {+ unInterfaceType :: ClassType}+ deriving (Eq, Ord, Read, Show)++_InterfaceType = Model.Name "hydra.java.syntax.InterfaceType"++data TypeVariable =+ TypeVariable {+ typeVariableAnnotations :: [Annotation],+ typeVariableIdentifier :: TypeIdentifier}+ deriving (Eq, Ord, Read, Show)++_TypeVariable = Model.Name "hydra.java.syntax.TypeVariable"++_TypeVariable_annotations = Model.Name "annotations"++_TypeVariable_identifier = Model.Name "identifier"++data ArrayType =+ ArrayType {+ arrayTypeDims :: Dims,+ arrayTypeVariant :: ArrayType_Variant}+ deriving (Eq, Ord, Read, Show)++_ArrayType = Model.Name "hydra.java.syntax.ArrayType"++_ArrayType_dims = Model.Name "dims"++_ArrayType_variant = Model.Name "variant"++data ArrayType_Variant =+ ArrayType_VariantPrimitive PrimitiveTypeWithAnnotations |+ ArrayType_VariantClassOrInterface ClassOrInterfaceType |+ ArrayType_VariantVariable TypeVariable+ deriving (Eq, Ord, Read, Show)++_ArrayType_Variant = Model.Name "hydra.java.syntax.ArrayType_Variant"++_ArrayType_Variant_primitive = Model.Name "primitive"++_ArrayType_Variant_classOrInterface = Model.Name "classOrInterface"++_ArrayType_Variant_variable = Model.Name "variable"++newtype Dims =+ Dims {+ unDims :: [[Annotation]]}+ deriving (Eq, Ord, Read, Show)++_Dims = Model.Name "hydra.java.syntax.Dims"++data TypeParameter =+ TypeParameter {+ typeParameterModifiers :: [TypeParameterModifier],+ typeParameterIdentifier :: TypeIdentifier,+ typeParameterBound :: (Maybe TypeBound)}+ deriving (Eq, Ord, Read, Show)++_TypeParameter = Model.Name "hydra.java.syntax.TypeParameter"++_TypeParameter_modifiers = Model.Name "modifiers"++_TypeParameter_identifier = Model.Name "identifier"++_TypeParameter_bound = Model.Name "bound"++newtype TypeParameterModifier =+ TypeParameterModifier {+ unTypeParameterModifier :: Annotation}+ deriving (Eq, Ord, Read, Show)++_TypeParameterModifier = Model.Name "hydra.java.syntax.TypeParameterModifier"++data TypeBound =+ TypeBoundVariable TypeVariable |+ TypeBoundClassOrInterface TypeBound_ClassOrInterface+ deriving (Eq, Ord, Read, Show)++_TypeBound = Model.Name "hydra.java.syntax.TypeBound"++_TypeBound_variable = Model.Name "variable"++_TypeBound_classOrInterface = Model.Name "classOrInterface"++data TypeBound_ClassOrInterface =+ TypeBound_ClassOrInterface {+ typeBound_ClassOrInterfaceType :: ClassOrInterfaceType,+ typeBound_ClassOrInterfaceAdditional :: [AdditionalBound]}+ deriving (Eq, Ord, Read, Show)++_TypeBound_ClassOrInterface = Model.Name "hydra.java.syntax.TypeBound_ClassOrInterface"++_TypeBound_ClassOrInterface_type = Model.Name "type"++_TypeBound_ClassOrInterface_additional = Model.Name "additional"++newtype AdditionalBound =+ AdditionalBound {+ unAdditionalBound :: InterfaceType}+ deriving (Eq, Ord, Read, Show)++_AdditionalBound = Model.Name "hydra.java.syntax.AdditionalBound"++data TypeArgument =+ TypeArgumentReference ReferenceType |+ TypeArgumentWildcard Wildcard+ deriving (Eq, Ord, Read, Show)++_TypeArgument = Model.Name "hydra.java.syntax.TypeArgument"++_TypeArgument_reference = Model.Name "reference"++_TypeArgument_wildcard = Model.Name "wildcard"++data Wildcard =+ Wildcard {+ wildcardAnnotations :: [Annotation],+ wildcardWildcard :: (Maybe WildcardBounds)}+ deriving (Eq, Ord, Read, Show)++_Wildcard = Model.Name "hydra.java.syntax.Wildcard"++_Wildcard_annotations = Model.Name "annotations"++_Wildcard_wildcard = Model.Name "wildcard"++data WildcardBounds =+ WildcardBoundsExtends ReferenceType |+ WildcardBoundsSuper ReferenceType+ deriving (Eq, Ord, Read, Show)++_WildcardBounds = Model.Name "hydra.java.syntax.WildcardBounds"++_WildcardBounds_extends = Model.Name "extends"++_WildcardBounds_super = Model.Name "super"++data ModuleName =+ ModuleName {+ moduleNameIdentifier :: Identifier,+ moduleNameName :: (Maybe ModuleName)}+ deriving (Eq, Ord, Read, Show)++_ModuleName = Model.Name "hydra.java.syntax.ModuleName"++_ModuleName_identifier = Model.Name "identifier"++_ModuleName_name = Model.Name "name"++newtype PackageName =+ PackageName {+ unPackageName :: [Identifier]}+ deriving (Eq, Ord, Read, Show)++_PackageName = Model.Name "hydra.java.syntax.PackageName"++data TypeName =+ TypeName {+ typeNameIdentifier :: TypeIdentifier,+ typeNameQualifier :: (Maybe PackageOrTypeName)}+ deriving (Eq, Ord, Read, Show)++_TypeName = Model.Name "hydra.java.syntax.TypeName"++_TypeName_identifier = Model.Name "identifier"++_TypeName_qualifier = Model.Name "qualifier"++data ExpressionName =+ ExpressionName {+ expressionNameQualifier :: (Maybe AmbiguousName),+ expressionNameIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_ExpressionName = Model.Name "hydra.java.syntax.ExpressionName"++_ExpressionName_qualifier = Model.Name "qualifier"++_ExpressionName_identifier = Model.Name "identifier"++newtype MethodName =+ MethodName {+ unMethodName :: Identifier}+ deriving (Eq, Ord, Read, Show)++_MethodName = Model.Name "hydra.java.syntax.MethodName"++newtype PackageOrTypeName =+ PackageOrTypeName {+ unPackageOrTypeName :: [Identifier]}+ deriving (Eq, Ord, Read, Show)++_PackageOrTypeName = Model.Name "hydra.java.syntax.PackageOrTypeName"++newtype AmbiguousName =+ AmbiguousName {+ unAmbiguousName :: [Identifier]}+ deriving (Eq, Ord, Read, Show)++_AmbiguousName = Model.Name "hydra.java.syntax.AmbiguousName"++data CompilationUnit =+ CompilationUnitOrdinary OrdinaryCompilationUnit |+ CompilationUnitModular ModularCompilationUnit+ deriving (Eq, Ord, Read, Show)++_CompilationUnit = Model.Name "hydra.java.syntax.CompilationUnit"++_CompilationUnit_ordinary = Model.Name "ordinary"++_CompilationUnit_modular = Model.Name "modular"++data OrdinaryCompilationUnit =+ OrdinaryCompilationUnit {+ ordinaryCompilationUnitPackage :: (Maybe PackageDeclaration),+ ordinaryCompilationUnitImports :: [ImportDeclaration],+ ordinaryCompilationUnitTypes :: [TopLevelClassOrInterfaceDeclarationWithComments]}+ deriving (Eq, Ord, Read, Show)++_OrdinaryCompilationUnit = Model.Name "hydra.java.syntax.OrdinaryCompilationUnit"++_OrdinaryCompilationUnit_package = Model.Name "package"++_OrdinaryCompilationUnit_imports = Model.Name "imports"++_OrdinaryCompilationUnit_types = Model.Name "types"++data ModularCompilationUnit =+ ModularCompilationUnit {+ modularCompilationUnitImports :: [ImportDeclaration],+ modularCompilationUnitModule :: ModuleDeclaration}+ deriving (Eq, Ord, Read, Show)++_ModularCompilationUnit = Model.Name "hydra.java.syntax.ModularCompilationUnit"++_ModularCompilationUnit_imports = Model.Name "imports"++_ModularCompilationUnit_module = Model.Name "module"++data PackageDeclaration =+ PackageDeclaration {+ packageDeclarationModifiers :: [PackageModifier],+ packageDeclarationIdentifiers :: [Identifier]}+ deriving (Eq, Ord, Read, Show)++_PackageDeclaration = Model.Name "hydra.java.syntax.PackageDeclaration"++_PackageDeclaration_modifiers = Model.Name "modifiers"++_PackageDeclaration_identifiers = Model.Name "identifiers"++newtype PackageModifier =+ PackageModifier {+ unPackageModifier :: Annotation}+ deriving (Eq, Ord, Read, Show)++_PackageModifier = Model.Name "hydra.java.syntax.PackageModifier"++data ImportDeclaration =+ ImportDeclarationSingleType SingleTypeImportDeclaration |+ ImportDeclarationTypeImportOnDemand TypeImportOnDemandDeclaration |+ ImportDeclarationSingleStaticImport SingleStaticImportDeclaration |+ ImportDeclarationStaticImportOnDemand StaticImportOnDemandDeclaration+ deriving (Eq, Ord, Read, Show)++_ImportDeclaration = Model.Name "hydra.java.syntax.ImportDeclaration"++_ImportDeclaration_singleType = Model.Name "singleType"++_ImportDeclaration_typeImportOnDemand = Model.Name "typeImportOnDemand"++_ImportDeclaration_singleStaticImport = Model.Name "singleStaticImport"++_ImportDeclaration_staticImportOnDemand = Model.Name "staticImportOnDemand"++newtype SingleTypeImportDeclaration =+ SingleTypeImportDeclaration {+ unSingleTypeImportDeclaration :: TypeName}+ deriving (Eq, Ord, Read, Show)++_SingleTypeImportDeclaration = Model.Name "hydra.java.syntax.SingleTypeImportDeclaration"++newtype TypeImportOnDemandDeclaration =+ TypeImportOnDemandDeclaration {+ unTypeImportOnDemandDeclaration :: PackageOrTypeName}+ deriving (Eq, Ord, Read, Show)++_TypeImportOnDemandDeclaration = Model.Name "hydra.java.syntax.TypeImportOnDemandDeclaration"++data SingleStaticImportDeclaration =+ SingleStaticImportDeclaration {+ singleStaticImportDeclarationTypeName :: TypeName,+ singleStaticImportDeclarationIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_SingleStaticImportDeclaration = Model.Name "hydra.java.syntax.SingleStaticImportDeclaration"++_SingleStaticImportDeclaration_typeName = Model.Name "typeName"++_SingleStaticImportDeclaration_identifier = Model.Name "identifier"++newtype StaticImportOnDemandDeclaration =+ StaticImportOnDemandDeclaration {+ unStaticImportOnDemandDeclaration :: TypeName}+ deriving (Eq, Ord, Read, Show)++_StaticImportOnDemandDeclaration = Model.Name "hydra.java.syntax.StaticImportOnDemandDeclaration"++data TopLevelClassOrInterfaceDeclaration =+ TopLevelClassOrInterfaceDeclarationClass ClassDeclaration |+ TopLevelClassOrInterfaceDeclarationInterface InterfaceDeclaration |+ TopLevelClassOrInterfaceDeclarationNone+ deriving (Eq, Ord, Read, Show)++_TopLevelClassOrInterfaceDeclaration = Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclaration"++_TopLevelClassOrInterfaceDeclaration_class = Model.Name "class"++_TopLevelClassOrInterfaceDeclaration_interface = Model.Name "interface"++_TopLevelClassOrInterfaceDeclaration_none = Model.Name "none"++data TopLevelClassOrInterfaceDeclarationWithComments =+ TopLevelClassOrInterfaceDeclarationWithComments {+ topLevelClassOrInterfaceDeclarationWithCommentsValue :: TopLevelClassOrInterfaceDeclaration,+ topLevelClassOrInterfaceDeclarationWithCommentsComments :: (Maybe String)}+ deriving (Eq, Ord, Read, Show)++_TopLevelClassOrInterfaceDeclarationWithComments =+ Model.Name "hydra.java.syntax.TopLevelClassOrInterfaceDeclarationWithComments"++_TopLevelClassOrInterfaceDeclarationWithComments_value = Model.Name "value"++_TopLevelClassOrInterfaceDeclarationWithComments_comments = Model.Name "comments"++data ModuleDeclaration =+ ModuleDeclaration {+ moduleDeclarationAnnotations :: [Annotation],+ moduleDeclarationOpen :: Bool,+ moduleDeclarationIdentifiers :: [Identifier],+ moduleDeclarationDirectives :: [ModuleDirective]}+ deriving (Eq, Ord, Read, Show)++_ModuleDeclaration = Model.Name "hydra.java.syntax.ModuleDeclaration"++_ModuleDeclaration_annotations = Model.Name "annotations"++_ModuleDeclaration_open = Model.Name "open"++_ModuleDeclaration_identifiers = Model.Name "identifiers"++_ModuleDeclaration_directives = Model.Name "directives"++data ModuleDirective =+ ModuleDirectiveRequires ModuleDirective_Requires |+ ModuleDirectiveExports ModuleDirective_ExportsOrOpens |+ ModuleDirectiveOpens ModuleDirective_ExportsOrOpens |+ ModuleDirectiveUses TypeName |+ ModuleDirectiveProvides ModuleDirective_Provides+ deriving (Eq, Ord, Read, Show)++_ModuleDirective = Model.Name "hydra.java.syntax.ModuleDirective"++_ModuleDirective_requires = Model.Name "requires"++_ModuleDirective_exports = Model.Name "exports"++_ModuleDirective_opens = Model.Name "opens"++_ModuleDirective_uses = Model.Name "uses"++_ModuleDirective_provides = Model.Name "provides"++data ModuleDirective_Requires =+ ModuleDirective_Requires {+ moduleDirective_RequiresModifiers :: [RequiresModifier],+ moduleDirective_RequiresModule :: ModuleName}+ deriving (Eq, Ord, Read, Show)++_ModuleDirective_Requires = Model.Name "hydra.java.syntax.ModuleDirective_Requires"++_ModuleDirective_Requires_modifiers = Model.Name "modifiers"++_ModuleDirective_Requires_module = Model.Name "module"++data ModuleDirective_ExportsOrOpens =+ ModuleDirective_ExportsOrOpens {+ moduleDirective_ExportsOrOpensPackage :: PackageName,+ -- | At least one module+ moduleDirective_ExportsOrOpensModules :: [ModuleName]}+ deriving (Eq, Ord, Read, Show)++_ModuleDirective_ExportsOrOpens = Model.Name "hydra.java.syntax.ModuleDirective_ExportsOrOpens"++_ModuleDirective_ExportsOrOpens_package = Model.Name "package"++_ModuleDirective_ExportsOrOpens_modules = Model.Name "modules"++data ModuleDirective_Provides =+ ModuleDirective_Provides {+ moduleDirective_ProvidesTo :: TypeName,+ -- | At least one type+ moduleDirective_ProvidesWith :: [TypeName]}+ deriving (Eq, Ord, Read, Show)++_ModuleDirective_Provides = Model.Name "hydra.java.syntax.ModuleDirective_Provides"++_ModuleDirective_Provides_to = Model.Name "to"++_ModuleDirective_Provides_with = Model.Name "with"++data RequiresModifier =+ RequiresModifierTransitive |+ RequiresModifierStatic+ deriving (Eq, Ord, Read, Show)++_RequiresModifier = Model.Name "hydra.java.syntax.RequiresModifier"++_RequiresModifier_transitive = Model.Name "transitive"++_RequiresModifier_static = Model.Name "static"++data ClassDeclaration =+ ClassDeclarationNormal NormalClassDeclaration |+ ClassDeclarationEnum EnumDeclaration |+ ClassDeclarationRecord RecordDeclaration+ deriving (Eq, Ord, Read, Show)++_ClassDeclaration = Model.Name "hydra.java.syntax.ClassDeclaration"++_ClassDeclaration_normal = Model.Name "normal"++_ClassDeclaration_enum = Model.Name "enum"++_ClassDeclaration_record = Model.Name "record"++data NormalClassDeclaration =+ NormalClassDeclaration {+ normalClassDeclarationModifiers :: [ClassModifier],+ normalClassDeclarationIdentifier :: TypeIdentifier,+ normalClassDeclarationParameters :: [TypeParameter],+ normalClassDeclarationExtends :: (Maybe ClassType),+ normalClassDeclarationImplements :: [InterfaceType],+ normalClassDeclarationPermits :: [TypeName],+ normalClassDeclarationBody :: ClassBody}+ deriving (Eq, Ord, Read, Show)++_NormalClassDeclaration = Model.Name "hydra.java.syntax.NormalClassDeclaration"++_NormalClassDeclaration_modifiers = Model.Name "modifiers"++_NormalClassDeclaration_identifier = Model.Name "identifier"++_NormalClassDeclaration_parameters = Model.Name "parameters"++_NormalClassDeclaration_extends = Model.Name "extends"++_NormalClassDeclaration_implements = Model.Name "implements"++_NormalClassDeclaration_permits = Model.Name "permits"++_NormalClassDeclaration_body = Model.Name "body"++data ClassModifier =+ ClassModifierAnnotation Annotation |+ ClassModifierPublic |+ ClassModifierProtected |+ ClassModifierPrivate |+ ClassModifierAbstract |+ ClassModifierStatic |+ ClassModifierFinal |+ ClassModifierSealed |+ ClassModifierNonSealed |+ ClassModifierStrictfp+ deriving (Eq, Ord, Read, Show)++_ClassModifier = Model.Name "hydra.java.syntax.ClassModifier"++_ClassModifier_annotation = Model.Name "annotation"++_ClassModifier_public = Model.Name "public"++_ClassModifier_protected = Model.Name "protected"++_ClassModifier_private = Model.Name "private"++_ClassModifier_abstract = Model.Name "abstract"++_ClassModifier_static = Model.Name "static"++_ClassModifier_final = Model.Name "final"++_ClassModifier_sealed = Model.Name "sealed"++_ClassModifier_nonSealed = Model.Name "nonSealed"++_ClassModifier_strictfp = Model.Name "strictfp"++newtype ClassBody =+ ClassBody {+ unClassBody :: [ClassBodyDeclarationWithComments]}+ deriving (Eq, Ord, Read, Show)++_ClassBody = Model.Name "hydra.java.syntax.ClassBody"++data ClassBodyDeclaration =+ ClassBodyDeclarationClassMember ClassMemberDeclaration |+ ClassBodyDeclarationInstanceInitializer InstanceInitializer |+ ClassBodyDeclarationStaticInitializer StaticInitializer |+ ClassBodyDeclarationConstructorDeclaration ConstructorDeclaration+ deriving (Eq, Ord, Read, Show)++_ClassBodyDeclaration = Model.Name "hydra.java.syntax.ClassBodyDeclaration"++_ClassBodyDeclaration_classMember = Model.Name "classMember"++_ClassBodyDeclaration_instanceInitializer = Model.Name "instanceInitializer"++_ClassBodyDeclaration_staticInitializer = Model.Name "staticInitializer"++_ClassBodyDeclaration_constructorDeclaration = Model.Name "constructorDeclaration"++data ClassBodyDeclarationWithComments =+ ClassBodyDeclarationWithComments {+ classBodyDeclarationWithCommentsValue :: ClassBodyDeclaration,+ classBodyDeclarationWithCommentsComments :: (Maybe String)}+ deriving (Eq, Ord, Read, Show)++_ClassBodyDeclarationWithComments = Model.Name "hydra.java.syntax.ClassBodyDeclarationWithComments"++_ClassBodyDeclarationWithComments_value = Model.Name "value"++_ClassBodyDeclarationWithComments_comments = Model.Name "comments"++data ClassMemberDeclaration =+ ClassMemberDeclarationField FieldDeclaration |+ ClassMemberDeclarationMethod MethodDeclaration |+ ClassMemberDeclarationClass ClassDeclaration |+ ClassMemberDeclarationInterface InterfaceDeclaration |+ ClassMemberDeclarationNone+ deriving (Eq, Ord, Read, Show)++_ClassMemberDeclaration = Model.Name "hydra.java.syntax.ClassMemberDeclaration"++_ClassMemberDeclaration_field = Model.Name "field"++_ClassMemberDeclaration_method = Model.Name "method"++_ClassMemberDeclaration_class = Model.Name "class"++_ClassMemberDeclaration_interface = Model.Name "interface"++_ClassMemberDeclaration_none = Model.Name "none"++data FieldDeclaration =+ FieldDeclaration {+ fieldDeclarationModifiers :: [FieldModifier],+ fieldDeclarationUnannType :: UnannType,+ fieldDeclarationVariableDeclarators :: [VariableDeclarator]}+ deriving (Eq, Ord, Read, Show)++_FieldDeclaration = Model.Name "hydra.java.syntax.FieldDeclaration"++_FieldDeclaration_modifiers = Model.Name "modifiers"++_FieldDeclaration_unannType = Model.Name "unannType"++_FieldDeclaration_variableDeclarators = Model.Name "variableDeclarators"++data FieldModifier =+ FieldModifierAnnotation Annotation |+ FieldModifierPublic |+ FieldModifierProtected |+ FieldModifierPrivate |+ FieldModifierStatic |+ FieldModifierFinal |+ FieldModifierTransient |+ FieldModifierVolatile+ deriving (Eq, Ord, Read, Show)++_FieldModifier = Model.Name "hydra.java.syntax.FieldModifier"++_FieldModifier_annotation = Model.Name "annotation"++_FieldModifier_public = Model.Name "public"++_FieldModifier_protected = Model.Name "protected"++_FieldModifier_private = Model.Name "private"++_FieldModifier_static = Model.Name "static"++_FieldModifier_final = Model.Name "final"++_FieldModifier_transient = Model.Name "transient"++_FieldModifier_volatile = Model.Name "volatile"++data VariableDeclarator =+ VariableDeclarator {+ variableDeclaratorId :: VariableDeclaratorId,+ variableDeclaratorInitializer :: (Maybe VariableInitializer)}+ deriving (Eq, Ord, Read, Show)++_VariableDeclarator = Model.Name "hydra.java.syntax.VariableDeclarator"++_VariableDeclarator_id = Model.Name "id"++_VariableDeclarator_initializer = Model.Name "initializer"++data VariableDeclaratorId =+ VariableDeclaratorId {+ variableDeclaratorIdIdentifier :: Identifier,+ variableDeclaratorIdDims :: (Maybe Dims)}+ deriving (Eq, Ord, Read, Show)++_VariableDeclaratorId = Model.Name "hydra.java.syntax.VariableDeclaratorId"++_VariableDeclaratorId_identifier = Model.Name "identifier"++_VariableDeclaratorId_dims = Model.Name "dims"++data VariableInitializer =+ VariableInitializerExpression Expression |+ VariableInitializerArrayInitializer ArrayInitializer+ deriving (Eq, Ord, Read, Show)++_VariableInitializer = Model.Name "hydra.java.syntax.VariableInitializer"++_VariableInitializer_expression = Model.Name "expression"++_VariableInitializer_arrayInitializer = Model.Name "arrayInitializer"++-- | A Type which does not allow annotations+newtype UnannType =+ UnannType {+ unUnannType :: Type}+ deriving (Eq, Ord, Read, Show)++_UnannType = Model.Name "hydra.java.syntax.UnannType"++-- | A ClassType which does not allow annotations+newtype UnannClassType =+ UnannClassType {+ unUnannClassType :: ClassType}+ deriving (Eq, Ord, Read, Show)++_UnannClassType = Model.Name "hydra.java.syntax.UnannClassType"++data MethodDeclaration =+ MethodDeclaration {+ -- | Note: simple methods cannot have annotations+ methodDeclarationAnnotations :: [Annotation],+ methodDeclarationModifiers :: [MethodModifier],+ methodDeclarationHeader :: MethodHeader,+ methodDeclarationBody :: MethodBody}+ deriving (Eq, Ord, Read, Show)++_MethodDeclaration = Model.Name "hydra.java.syntax.MethodDeclaration"++_MethodDeclaration_annotations = Model.Name "annotations"++_MethodDeclaration_modifiers = Model.Name "modifiers"++_MethodDeclaration_header = Model.Name "header"++_MethodDeclaration_body = Model.Name "body"++data MethodModifier =+ MethodModifierAnnotation Annotation |+ MethodModifierPublic |+ MethodModifierProtected |+ MethodModifierPrivate |+ MethodModifierAbstract |+ MethodModifierStatic |+ MethodModifierFinal |+ MethodModifierSynchronized |+ MethodModifierNative |+ MethodModifierStrictfp+ deriving (Eq, Ord, Read, Show)++_MethodModifier = Model.Name "hydra.java.syntax.MethodModifier"++_MethodModifier_annotation = Model.Name "annotation"++_MethodModifier_public = Model.Name "public"++_MethodModifier_protected = Model.Name "protected"++_MethodModifier_private = Model.Name "private"++_MethodModifier_abstract = Model.Name "abstract"++_MethodModifier_static = Model.Name "static"++_MethodModifier_final = Model.Name "final"++_MethodModifier_synchronized = Model.Name "synchronized"++_MethodModifier_native = Model.Name "native"++_MethodModifier_strictfp = Model.Name "strictfp"++data MethodHeader =+ MethodHeader {+ methodHeaderParameters :: [TypeParameter],+ methodHeaderResult :: Result,+ methodHeaderDeclarator :: MethodDeclarator,+ methodHeaderThrows :: (Maybe Throws)}+ deriving (Eq, Ord, Read, Show)++_MethodHeader = Model.Name "hydra.java.syntax.MethodHeader"++_MethodHeader_parameters = Model.Name "parameters"++_MethodHeader_result = Model.Name "result"++_MethodHeader_declarator = Model.Name "declarator"++_MethodHeader_throws = Model.Name "throws"++data Result =+ ResultType UnannType |+ ResultVoid+ deriving (Eq, Ord, Read, Show)++_Result = Model.Name "hydra.java.syntax.Result"++_Result_type = Model.Name "type"++_Result_void = Model.Name "void"++data MethodDeclarator =+ MethodDeclarator {+ methodDeclaratorIdentifier :: Identifier,+ methodDeclaratorReceiverParameter :: (Maybe ReceiverParameter),+ methodDeclaratorFormalParameters :: [FormalParameter]}+ deriving (Eq, Ord, Read, Show)++_MethodDeclarator = Model.Name "hydra.java.syntax.MethodDeclarator"++_MethodDeclarator_identifier = Model.Name "identifier"++_MethodDeclarator_receiverParameter = Model.Name "receiverParameter"++_MethodDeclarator_formalParameters = Model.Name "formalParameters"++data ReceiverParameter =+ ReceiverParameter {+ receiverParameterAnnotations :: [Annotation],+ receiverParameterUnannType :: UnannType,+ receiverParameterIdentifier :: (Maybe Identifier)}+ deriving (Eq, Ord, Read, Show)++_ReceiverParameter = Model.Name "hydra.java.syntax.ReceiverParameter"++_ReceiverParameter_annotations = Model.Name "annotations"++_ReceiverParameter_unannType = Model.Name "unannType"++_ReceiverParameter_identifier = Model.Name "identifier"++data FormalParameter =+ FormalParameterSimple FormalParameter_Simple |+ FormalParameterVariableArity VariableArityParameter+ deriving (Eq, Ord, Read, Show)++_FormalParameter = Model.Name "hydra.java.syntax.FormalParameter"++_FormalParameter_simple = Model.Name "simple"++_FormalParameter_variableArity = Model.Name "variableArity"++data FormalParameter_Simple =+ FormalParameter_Simple {+ formalParameter_SimpleModifiers :: [VariableModifier],+ formalParameter_SimpleType :: UnannType,+ formalParameter_SimpleId :: VariableDeclaratorId}+ deriving (Eq, Ord, Read, Show)++_FormalParameter_Simple = Model.Name "hydra.java.syntax.FormalParameter_Simple"++_FormalParameter_Simple_modifiers = Model.Name "modifiers"++_FormalParameter_Simple_type = Model.Name "type"++_FormalParameter_Simple_id = Model.Name "id"++data VariableArityParameter =+ VariableArityParameter {+ variableArityParameterModifiers :: [VariableModifier],+ variableArityParameterType :: UnannType,+ variableArityParameterAnnotations :: [Annotation],+ variableArityParameterIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_VariableArityParameter = Model.Name "hydra.java.syntax.VariableArityParameter"++_VariableArityParameter_modifiers = Model.Name "modifiers"++_VariableArityParameter_type = Model.Name "type"++_VariableArityParameter_annotations = Model.Name "annotations"++_VariableArityParameter_identifier = Model.Name "identifier"++data VariableModifier =+ VariableModifierAnnotation Annotation |+ VariableModifierFinal+ deriving (Eq, Ord, Read, Show)++_VariableModifier = Model.Name "hydra.java.syntax.VariableModifier"++_VariableModifier_annotation = Model.Name "annotation"++_VariableModifier_final = Model.Name "final"++newtype Throws =+ Throws {+ unThrows :: [ExceptionType]}+ deriving (Eq, Ord, Read, Show)++_Throws = Model.Name "hydra.java.syntax.Throws"++data ExceptionType =+ ExceptionTypeClass ClassType |+ ExceptionTypeVariable TypeVariable+ deriving (Eq, Ord, Read, Show)++_ExceptionType = Model.Name "hydra.java.syntax.ExceptionType"++_ExceptionType_class = Model.Name "class"++_ExceptionType_variable = Model.Name "variable"++data MethodBody =+ MethodBodyBlock Block |+ MethodBodyNone+ deriving (Eq, Ord, Read, Show)++_MethodBody = Model.Name "hydra.java.syntax.MethodBody"++_MethodBody_block = Model.Name "block"++_MethodBody_none = Model.Name "none"++newtype InstanceInitializer =+ InstanceInitializer {+ unInstanceInitializer :: Block}+ deriving (Eq, Ord, Read, Show)++_InstanceInitializer = Model.Name "hydra.java.syntax.InstanceInitializer"++newtype StaticInitializer =+ StaticInitializer {+ unStaticInitializer :: Block}+ deriving (Eq, Ord, Read, Show)++_StaticInitializer = Model.Name "hydra.java.syntax.StaticInitializer"++data ConstructorDeclaration =+ ConstructorDeclaration {+ constructorDeclarationModifiers :: [ConstructorModifier],+ constructorDeclarationConstructor :: ConstructorDeclarator,+ constructorDeclarationThrows :: (Maybe Throws),+ constructorDeclarationBody :: ConstructorBody}+ deriving (Eq, Ord, Read, Show)++_ConstructorDeclaration = Model.Name "hydra.java.syntax.ConstructorDeclaration"++_ConstructorDeclaration_modifiers = Model.Name "modifiers"++_ConstructorDeclaration_constructor = Model.Name "constructor"++_ConstructorDeclaration_throws = Model.Name "throws"++_ConstructorDeclaration_body = Model.Name "body"++data ConstructorModifier =+ ConstructorModifierAnnotation Annotation |+ ConstructorModifierPublic |+ ConstructorModifierProtected |+ ConstructorModifierPrivate+ deriving (Eq, Ord, Read, Show)++_ConstructorModifier = Model.Name "hydra.java.syntax.ConstructorModifier"++_ConstructorModifier_annotation = Model.Name "annotation"++_ConstructorModifier_public = Model.Name "public"++_ConstructorModifier_protected = Model.Name "protected"++_ConstructorModifier_private = Model.Name "private"++data ConstructorDeclarator =+ ConstructorDeclarator {+ constructorDeclaratorParameters :: [TypeParameter],+ constructorDeclaratorName :: SimpleTypeName,+ constructorDeclaratorReceiverParameter :: (Maybe ReceiverParameter),+ constructorDeclaratorFormalParameters :: [FormalParameter]}+ deriving (Eq, Ord, Read, Show)++_ConstructorDeclarator = Model.Name "hydra.java.syntax.ConstructorDeclarator"++_ConstructorDeclarator_parameters = Model.Name "parameters"++_ConstructorDeclarator_name = Model.Name "name"++_ConstructorDeclarator_receiverParameter = Model.Name "receiverParameter"++_ConstructorDeclarator_formalParameters = Model.Name "formalParameters"++newtype SimpleTypeName =+ SimpleTypeName {+ unSimpleTypeName :: TypeIdentifier}+ deriving (Eq, Ord, Read, Show)++_SimpleTypeName = Model.Name "hydra.java.syntax.SimpleTypeName"++data ConstructorBody =+ ConstructorBody {+ constructorBodyInvocation :: (Maybe ExplicitConstructorInvocation),+ constructorBodyStatements :: [BlockStatement]}+ deriving (Eq, Ord, Read, Show)++_ConstructorBody = Model.Name "hydra.java.syntax.ConstructorBody"++_ConstructorBody_invocation = Model.Name "invocation"++_ConstructorBody_statements = Model.Name "statements"++data ExplicitConstructorInvocation =+ ExplicitConstructorInvocation {+ explicitConstructorInvocationTypeArguments :: [TypeArgument],+ explicitConstructorInvocationArguments :: [Expression],+ explicitConstructorInvocationVariant :: ExplicitConstructorInvocation_Variant}+ deriving (Eq, Ord, Read, Show)++_ExplicitConstructorInvocation = Model.Name "hydra.java.syntax.ExplicitConstructorInvocation"++_ExplicitConstructorInvocation_typeArguments = Model.Name "typeArguments"++_ExplicitConstructorInvocation_arguments = Model.Name "arguments"++_ExplicitConstructorInvocation_variant = Model.Name "variant"++data ExplicitConstructorInvocation_Variant =+ ExplicitConstructorInvocation_VariantThis |+ ExplicitConstructorInvocation_VariantSuper (Maybe ExpressionName) |+ ExplicitConstructorInvocation_VariantPrimary Primary+ deriving (Eq, Ord, Read, Show)++_ExplicitConstructorInvocation_Variant = Model.Name "hydra.java.syntax.ExplicitConstructorInvocation_Variant"++_ExplicitConstructorInvocation_Variant_this = Model.Name "this"++_ExplicitConstructorInvocation_Variant_super = Model.Name "super"++_ExplicitConstructorInvocation_Variant_primary = Model.Name "primary"++data EnumDeclaration =+ EnumDeclaration {+ enumDeclarationModifiers :: [ClassModifier],+ enumDeclarationIdentifier :: TypeIdentifier,+ enumDeclarationImplements :: [InterfaceType],+ enumDeclarationBody :: EnumBody}+ deriving (Eq, Ord, Read, Show)++_EnumDeclaration = Model.Name "hydra.java.syntax.EnumDeclaration"++_EnumDeclaration_modifiers = Model.Name "modifiers"++_EnumDeclaration_identifier = Model.Name "identifier"++_EnumDeclaration_implements = Model.Name "implements"++_EnumDeclaration_body = Model.Name "body"++newtype EnumBody =+ EnumBody {+ unEnumBody :: [EnumBody_Element]}+ deriving (Eq, Ord, Read, Show)++_EnumBody = Model.Name "hydra.java.syntax.EnumBody"++data EnumBody_Element =+ EnumBody_Element {+ enumBody_ElementConstants :: [EnumConstant],+ enumBody_ElementBodyDeclarations :: [ClassBodyDeclaration]}+ deriving (Eq, Ord, Read, Show)++_EnumBody_Element = Model.Name "hydra.java.syntax.EnumBody_Element"++_EnumBody_Element_constants = Model.Name "constants"++_EnumBody_Element_bodyDeclarations = Model.Name "bodyDeclarations"++data EnumConstant =+ EnumConstant {+ enumConstantModifiers :: [EnumConstantModifier],+ enumConstantIdentifier :: Identifier,+ enumConstantArguments :: (Maybe [Expression]),+ enumConstantBody :: (Maybe ClassBody)}+ deriving (Eq, Ord, Read, Show)++_EnumConstant = Model.Name "hydra.java.syntax.EnumConstant"++_EnumConstant_modifiers = Model.Name "modifiers"++_EnumConstant_identifier = Model.Name "identifier"++_EnumConstant_arguments = Model.Name "arguments"++_EnumConstant_body = Model.Name "body"++newtype EnumConstantModifier =+ EnumConstantModifier {+ unEnumConstantModifier :: Annotation}+ deriving (Eq, Ord, Read, Show)++_EnumConstantModifier = Model.Name "hydra.java.syntax.EnumConstantModifier"++data RecordDeclaration =+ RecordDeclaration {+ recordDeclarationModifiers :: [ClassModifier],+ recordDeclarationIdentifier :: TypeIdentifier,+ recordDeclarationParameters :: [TypeParameter],+ recordDeclarationHeader :: RecordHeader,+ recordDeclarationImplements :: [InterfaceType],+ recordDeclarationBody :: RecordBody}+ deriving (Eq, Ord, Read, Show)++_RecordDeclaration = Model.Name "hydra.java.syntax.RecordDeclaration"++_RecordDeclaration_modifiers = Model.Name "modifiers"++_RecordDeclaration_identifier = Model.Name "identifier"++_RecordDeclaration_parameters = Model.Name "parameters"++_RecordDeclaration_header = Model.Name "header"++_RecordDeclaration_implements = Model.Name "implements"++_RecordDeclaration_body = Model.Name "body"++newtype RecordHeader =+ RecordHeader {+ unRecordHeader :: [RecordComponent]}+ deriving (Eq, Ord, Read, Show)++_RecordHeader = Model.Name "hydra.java.syntax.RecordHeader"++data RecordComponent =+ RecordComponentSimple RecordComponent_Simple |+ RecordComponentVariableArity VariableArityRecordComponent+ deriving (Eq, Ord, Read, Show)++_RecordComponent = Model.Name "hydra.java.syntax.RecordComponent"++_RecordComponent_simple = Model.Name "simple"++_RecordComponent_variableArity = Model.Name "variableArity"++data RecordComponent_Simple =+ RecordComponent_Simple {+ recordComponent_SimpleModifiers :: [RecordComponentModifier],+ recordComponent_SimpleType :: UnannType,+ recordComponent_SimpleIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_RecordComponent_Simple = Model.Name "hydra.java.syntax.RecordComponent_Simple"++_RecordComponent_Simple_modifiers = Model.Name "modifiers"++_RecordComponent_Simple_type = Model.Name "type"++_RecordComponent_Simple_identifier = Model.Name "identifier"++data VariableArityRecordComponent =+ VariableArityRecordComponent {+ variableArityRecordComponentModifiers :: [RecordComponentModifier],+ variableArityRecordComponentType :: UnannType,+ variableArityRecordComponentAnnotations :: [Annotation],+ variableArityRecordComponentIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_VariableArityRecordComponent = Model.Name "hydra.java.syntax.VariableArityRecordComponent"++_VariableArityRecordComponent_modifiers = Model.Name "modifiers"++_VariableArityRecordComponent_type = Model.Name "type"++_VariableArityRecordComponent_annotations = Model.Name "annotations"++_VariableArityRecordComponent_identifier = Model.Name "identifier"++newtype RecordComponentModifier =+ RecordComponentModifier {+ unRecordComponentModifier :: Annotation}+ deriving (Eq, Ord, Read, Show)++_RecordComponentModifier = Model.Name "hydra.java.syntax.RecordComponentModifier"++newtype RecordBody =+ RecordBody {+ unRecordBody :: [RecordBodyDeclaration]}+ deriving (Eq, Ord, Read, Show)++_RecordBody = Model.Name "hydra.java.syntax.RecordBody"++data RecordBodyDeclaration =+ RecordBodyDeclarationClassBody ClassBodyDeclaration |+ RecordBodyDeclarationCompactConstructor CompactConstructorDeclaration+ deriving (Eq, Ord, Read, Show)++_RecordBodyDeclaration = Model.Name "hydra.java.syntax.RecordBodyDeclaration"++_RecordBodyDeclaration_classBody = Model.Name "classBody"++_RecordBodyDeclaration_compactConstructor = Model.Name "compactConstructor"++data CompactConstructorDeclaration =+ CompactConstructorDeclaration {+ compactConstructorDeclarationModifiers :: [ConstructorModifier],+ compactConstructorDeclarationName :: SimpleTypeName,+ compactConstructorDeclarationBody :: ConstructorBody}+ deriving (Eq, Ord, Read, Show)++_CompactConstructorDeclaration = Model.Name "hydra.java.syntax.CompactConstructorDeclaration"++_CompactConstructorDeclaration_modifiers = Model.Name "modifiers"++_CompactConstructorDeclaration_name = Model.Name "name"++_CompactConstructorDeclaration_body = Model.Name "body"++data InterfaceDeclaration =+ InterfaceDeclarationNormalInterface NormalInterfaceDeclaration |+ InterfaceDeclarationAnnotationInterface AnnotationInterfaceDeclaration+ deriving (Eq, Ord, Read, Show)++_InterfaceDeclaration = Model.Name "hydra.java.syntax.InterfaceDeclaration"++_InterfaceDeclaration_normalInterface = Model.Name "normalInterface"++_InterfaceDeclaration_annotationInterface = Model.Name "annotationInterface"++data NormalInterfaceDeclaration =+ NormalInterfaceDeclaration {+ normalInterfaceDeclarationModifiers :: [InterfaceModifier],+ normalInterfaceDeclarationIdentifier :: TypeIdentifier,+ normalInterfaceDeclarationParameters :: [TypeParameter],+ normalInterfaceDeclarationExtends :: [InterfaceType],+ normalInterfaceDeclarationPermits :: [TypeName],+ normalInterfaceDeclarationBody :: InterfaceBody}+ deriving (Eq, Ord, Read, Show)++_NormalInterfaceDeclaration = Model.Name "hydra.java.syntax.NormalInterfaceDeclaration"++_NormalInterfaceDeclaration_modifiers = Model.Name "modifiers"++_NormalInterfaceDeclaration_identifier = Model.Name "identifier"++_NormalInterfaceDeclaration_parameters = Model.Name "parameters"++_NormalInterfaceDeclaration_extends = Model.Name "extends"++_NormalInterfaceDeclaration_permits = Model.Name "permits"++_NormalInterfaceDeclaration_body = Model.Name "body"++data InterfaceModifier =+ InterfaceModifierAnnotation Annotation |+ InterfaceModifierPublic |+ InterfaceModifierProtected |+ InterfaceModifierPrivate |+ InterfaceModifierAbstract |+ InterfaceModifierStatic |+ InterfaceModifierSealed |+ InterfaceModifierNonSealed |+ InterfaceModifierStrictfp+ deriving (Eq, Ord, Read, Show)++_InterfaceModifier = Model.Name "hydra.java.syntax.InterfaceModifier"++_InterfaceModifier_annotation = Model.Name "annotation"++_InterfaceModifier_public = Model.Name "public"++_InterfaceModifier_protected = Model.Name "protected"++_InterfaceModifier_private = Model.Name "private"++_InterfaceModifier_abstract = Model.Name "abstract"++_InterfaceModifier_static = Model.Name "static"++_InterfaceModifier_sealed = Model.Name "sealed"++_InterfaceModifier_nonSealed = Model.Name "nonSealed"++_InterfaceModifier_strictfp = Model.Name "strictfp"++newtype InterfaceBody =+ InterfaceBody {+ unInterfaceBody :: [InterfaceMemberDeclarationWithComments]}+ deriving (Eq, Ord, Read, Show)++_InterfaceBody = Model.Name "hydra.java.syntax.InterfaceBody"++data InterfaceMemberDeclaration =+ InterfaceMemberDeclarationConstant ConstantDeclaration |+ InterfaceMemberDeclarationInterfaceMethod InterfaceMethodDeclaration |+ InterfaceMemberDeclarationClass ClassDeclaration |+ InterfaceMemberDeclarationInterface InterfaceDeclaration+ deriving (Eq, Ord, Read, Show)++_InterfaceMemberDeclaration = Model.Name "hydra.java.syntax.InterfaceMemberDeclaration"++_InterfaceMemberDeclaration_constant = Model.Name "constant"++_InterfaceMemberDeclaration_interfaceMethod = Model.Name "interfaceMethod"++_InterfaceMemberDeclaration_class = Model.Name "class"++_InterfaceMemberDeclaration_interface = Model.Name "interface"++data InterfaceMemberDeclarationWithComments =+ InterfaceMemberDeclarationWithComments {+ interfaceMemberDeclarationWithCommentsValue :: InterfaceMemberDeclaration,+ interfaceMemberDeclarationWithCommentsComments :: (Maybe String)}+ deriving (Eq, Ord, Read, Show)++_InterfaceMemberDeclarationWithComments = Model.Name "hydra.java.syntax.InterfaceMemberDeclarationWithComments"++_InterfaceMemberDeclarationWithComments_value = Model.Name "value"++_InterfaceMemberDeclarationWithComments_comments = Model.Name "comments"++data ConstantDeclaration =+ ConstantDeclaration {+ constantDeclarationModifiers :: [ConstantModifier],+ constantDeclarationType :: UnannType,+ constantDeclarationVariables :: [VariableDeclarator]}+ deriving (Eq, Ord, Read, Show)++_ConstantDeclaration = Model.Name "hydra.java.syntax.ConstantDeclaration"++_ConstantDeclaration_modifiers = Model.Name "modifiers"++_ConstantDeclaration_type = Model.Name "type"++_ConstantDeclaration_variables = Model.Name "variables"++data ConstantModifier =+ ConstantModifierAnnotation Annotation |+ ConstantModifierPublic |+ ConstantModifierStatic |+ ConstantModifierFinal+ deriving (Eq, Ord, Read, Show)++_ConstantModifier = Model.Name "hydra.java.syntax.ConstantModifier"++_ConstantModifier_annotation = Model.Name "annotation"++_ConstantModifier_public = Model.Name "public"++_ConstantModifier_static = Model.Name "static"++_ConstantModifier_final = Model.Name "final"++data InterfaceMethodDeclaration =+ InterfaceMethodDeclaration {+ interfaceMethodDeclarationModifiers :: [InterfaceMethodModifier],+ interfaceMethodDeclarationHeader :: MethodHeader,+ interfaceMethodDeclarationBody :: MethodBody}+ deriving (Eq, Ord, Read, Show)++_InterfaceMethodDeclaration = Model.Name "hydra.java.syntax.InterfaceMethodDeclaration"++_InterfaceMethodDeclaration_modifiers = Model.Name "modifiers"++_InterfaceMethodDeclaration_header = Model.Name "header"++_InterfaceMethodDeclaration_body = Model.Name "body"++data InterfaceMethodModifier =+ InterfaceMethodModifierAnnotation Annotation |+ InterfaceMethodModifierPublic |+ InterfaceMethodModifierPrivate |+ InterfaceMethodModifierAbstract |+ InterfaceMethodModifierDefault |+ InterfaceMethodModifierStatic |+ InterfaceMethodModifierStrictfp+ deriving (Eq, Ord, Read, Show)++_InterfaceMethodModifier = Model.Name "hydra.java.syntax.InterfaceMethodModifier"++_InterfaceMethodModifier_annotation = Model.Name "annotation"++_InterfaceMethodModifier_public = Model.Name "public"++_InterfaceMethodModifier_private = Model.Name "private"++_InterfaceMethodModifier_abstract = Model.Name "abstract"++_InterfaceMethodModifier_default = Model.Name "default"++_InterfaceMethodModifier_static = Model.Name "static"++_InterfaceMethodModifier_strictfp = Model.Name "strictfp"++data AnnotationInterfaceDeclaration =+ AnnotationInterfaceDeclaration {+ annotationInterfaceDeclarationModifiers :: [InterfaceModifier],+ annotationInterfaceDeclarationIdentifier :: TypeIdentifier,+ annotationInterfaceDeclarationBody :: AnnotationInterfaceBody}+ deriving (Eq, Ord, Read, Show)++_AnnotationInterfaceDeclaration = Model.Name "hydra.java.syntax.AnnotationInterfaceDeclaration"++_AnnotationInterfaceDeclaration_modifiers = Model.Name "modifiers"++_AnnotationInterfaceDeclaration_identifier = Model.Name "identifier"++_AnnotationInterfaceDeclaration_body = Model.Name "body"++newtype AnnotationInterfaceBody =+ AnnotationInterfaceBody {+ unAnnotationInterfaceBody :: [AnnotationInterfaceMemberDeclaration]}+ deriving (Eq, Ord, Read, Show)++_AnnotationInterfaceBody = Model.Name "hydra.java.syntax.AnnotationInterfaceBody"++data AnnotationInterfaceMemberDeclaration =+ AnnotationInterfaceMemberDeclarationAnnotationInterface AnnotationInterfaceElementDeclaration |+ AnnotationInterfaceMemberDeclarationConstant ConstantDeclaration |+ AnnotationInterfaceMemberDeclarationClass ClassDeclaration |+ AnnotationInterfaceMemberDeclarationInterface InterfaceDeclaration+ deriving (Eq, Ord, Read, Show)++_AnnotationInterfaceMemberDeclaration = Model.Name "hydra.java.syntax.AnnotationInterfaceMemberDeclaration"++_AnnotationInterfaceMemberDeclaration_annotationInterface = Model.Name "annotationInterface"++_AnnotationInterfaceMemberDeclaration_constant = Model.Name "constant"++_AnnotationInterfaceMemberDeclaration_class = Model.Name "class"++_AnnotationInterfaceMemberDeclaration_interface = Model.Name "interface"++data AnnotationInterfaceElementDeclaration =+ AnnotationInterfaceElementDeclaration {+ annotationInterfaceElementDeclarationModifiers :: [AnnotationInterfaceElementModifier],+ annotationInterfaceElementDeclarationType :: UnannType,+ annotationInterfaceElementDeclarationIdentifier :: Identifier,+ annotationInterfaceElementDeclarationDims :: (Maybe Dims),+ annotationInterfaceElementDeclarationDefault :: (Maybe DefaultValue)}+ deriving (Eq, Ord, Read, Show)++_AnnotationInterfaceElementDeclaration = Model.Name "hydra.java.syntax.AnnotationInterfaceElementDeclaration"++_AnnotationInterfaceElementDeclaration_modifiers = Model.Name "modifiers"++_AnnotationInterfaceElementDeclaration_type = Model.Name "type"++_AnnotationInterfaceElementDeclaration_identifier = Model.Name "identifier"++_AnnotationInterfaceElementDeclaration_dims = Model.Name "dims"++_AnnotationInterfaceElementDeclaration_default = Model.Name "default"++data AnnotationInterfaceElementModifier =+ AnnotationInterfaceElementModifierAnnotation Annotation |+ AnnotationInterfaceElementModifierPublic |+ AnnotationInterfaceElementModifierAbstract+ deriving (Eq, Ord, Read, Show)++_AnnotationInterfaceElementModifier = Model.Name "hydra.java.syntax.AnnotationInterfaceElementModifier"++_AnnotationInterfaceElementModifier_annotation = Model.Name "annotation"++_AnnotationInterfaceElementModifier_public = Model.Name "public"++_AnnotationInterfaceElementModifier_abstract = Model.Name "abstract"++newtype DefaultValue =+ DefaultValue {+ unDefaultValue :: ElementValue}+ deriving (Eq, Ord, Read, Show)++_DefaultValue = Model.Name "hydra.java.syntax.DefaultValue"++data Annotation =+ AnnotationNormal NormalAnnotation |+ AnnotationMarker MarkerAnnotation |+ AnnotationSingleElement SingleElementAnnotation+ deriving (Eq, Ord, Read, Show)++_Annotation = Model.Name "hydra.java.syntax.Annotation"++_Annotation_normal = Model.Name "normal"++_Annotation_marker = Model.Name "marker"++_Annotation_singleElement = Model.Name "singleElement"++data NormalAnnotation =+ NormalAnnotation {+ normalAnnotationTypeName :: TypeName,+ normalAnnotationPairs :: [ElementValuePair]}+ deriving (Eq, Ord, Read, Show)++_NormalAnnotation = Model.Name "hydra.java.syntax.NormalAnnotation"++_NormalAnnotation_typeName = Model.Name "typeName"++_NormalAnnotation_pairs = Model.Name "pairs"++data ElementValuePair =+ ElementValuePair {+ elementValuePairKey :: Identifier,+ elementValuePairValue :: ElementValue}+ deriving (Eq, Ord, Read, Show)++_ElementValuePair = Model.Name "hydra.java.syntax.ElementValuePair"++_ElementValuePair_key = Model.Name "key"++_ElementValuePair_value = Model.Name "value"++data ElementValue =+ ElementValueConditionalExpression ConditionalExpression |+ ElementValueElementValueArrayInitializer ElementValueArrayInitializer |+ ElementValueAnnotation Annotation+ deriving (Eq, Ord, Read, Show)++_ElementValue = Model.Name "hydra.java.syntax.ElementValue"++_ElementValue_conditionalExpression = Model.Name "conditionalExpression"++_ElementValue_elementValueArrayInitializer = Model.Name "elementValueArrayInitializer"++_ElementValue_annotation = Model.Name "annotation"++newtype ElementValueArrayInitializer =+ ElementValueArrayInitializer {+ unElementValueArrayInitializer :: [ElementValue]}+ deriving (Eq, Ord, Read, Show)++_ElementValueArrayInitializer = Model.Name "hydra.java.syntax.ElementValueArrayInitializer"++newtype MarkerAnnotation =+ MarkerAnnotation {+ unMarkerAnnotation :: TypeName}+ deriving (Eq, Ord, Read, Show)++_MarkerAnnotation = Model.Name "hydra.java.syntax.MarkerAnnotation"++data SingleElementAnnotation =+ SingleElementAnnotation {+ singleElementAnnotationName :: TypeName,+ singleElementAnnotationValue :: (Maybe ElementValue)}+ deriving (Eq, Ord, Read, Show)++_SingleElementAnnotation = Model.Name "hydra.java.syntax.SingleElementAnnotation"++_SingleElementAnnotation_name = Model.Name "name"++_SingleElementAnnotation_value = Model.Name "value"++newtype ArrayInitializer =+ ArrayInitializer {+ unArrayInitializer :: [[VariableInitializer]]}+ deriving (Eq, Ord, Read, Show)++_ArrayInitializer = Model.Name "hydra.java.syntax.ArrayInitializer"++newtype Block =+ Block {+ unBlock :: [BlockStatement]}+ deriving (Eq, Ord, Read, Show)++_Block = Model.Name "hydra.java.syntax.Block"++data BlockStatement =+ BlockStatementLocalVariableDeclaration LocalVariableDeclarationStatement |+ BlockStatementLocalClassOrInterface LocalClassOrInterfaceDeclaration |+ BlockStatementStatement Statement+ deriving (Eq, Ord, Read, Show)++_BlockStatement = Model.Name "hydra.java.syntax.BlockStatement"++_BlockStatement_localVariableDeclaration = Model.Name "localVariableDeclaration"++_BlockStatement_localClassOrInterface = Model.Name "localClassOrInterface"++_BlockStatement_statement = Model.Name "statement"++data LocalClassOrInterfaceDeclaration =+ LocalClassOrInterfaceDeclarationClass ClassDeclaration |+ LocalClassOrInterfaceDeclarationNormalInterface NormalInterfaceDeclaration+ deriving (Eq, Ord, Read, Show)++_LocalClassOrInterfaceDeclaration = Model.Name "hydra.java.syntax.LocalClassOrInterfaceDeclaration"++_LocalClassOrInterfaceDeclaration_class = Model.Name "class"++_LocalClassOrInterfaceDeclaration_normalInterface = Model.Name "normalInterface"++newtype LocalVariableDeclarationStatement =+ LocalVariableDeclarationStatement {+ unLocalVariableDeclarationStatement :: LocalVariableDeclaration}+ deriving (Eq, Ord, Read, Show)++_LocalVariableDeclarationStatement = Model.Name "hydra.java.syntax.LocalVariableDeclarationStatement"++data LocalVariableDeclaration =+ LocalVariableDeclaration {+ localVariableDeclarationModifiers :: [VariableModifier],+ localVariableDeclarationType :: LocalVariableType,+ localVariableDeclarationDeclarators :: [VariableDeclarator]}+ deriving (Eq, Ord, Read, Show)++_LocalVariableDeclaration = Model.Name "hydra.java.syntax.LocalVariableDeclaration"++_LocalVariableDeclaration_modifiers = Model.Name "modifiers"++_LocalVariableDeclaration_type = Model.Name "type"++_LocalVariableDeclaration_declarators = Model.Name "declarators"++data LocalVariableType =+ LocalVariableTypeType UnannType |+ LocalVariableTypeVar+ deriving (Eq, Ord, Read, Show)++_LocalVariableType = Model.Name "hydra.java.syntax.LocalVariableType"++_LocalVariableType_type = Model.Name "type"++_LocalVariableType_var = Model.Name "var"++data Statement =+ StatementWithoutTrailing StatementWithoutTrailingSubstatement |+ StatementLabeled LabeledStatement |+ StatementIfThen IfThenStatement |+ StatementIfThenElse IfThenElseStatement |+ StatementWhile WhileStatement |+ StatementFor ForStatement+ deriving (Eq, Ord, Read, Show)++_Statement = Model.Name "hydra.java.syntax.Statement"++_Statement_withoutTrailing = Model.Name "withoutTrailing"++_Statement_labeled = Model.Name "labeled"++_Statement_ifThen = Model.Name "ifThen"++_Statement_ifThenElse = Model.Name "ifThenElse"++_Statement_while = Model.Name "while"++_Statement_for = Model.Name "for"++data StatementNoShortIf =+ StatementNoShortIfWithoutTrailing StatementWithoutTrailingSubstatement |+ StatementNoShortIfLabeled LabeledStatementNoShortIf |+ StatementNoShortIfIfThenElse IfThenElseStatementNoShortIf |+ StatementNoShortIfWhile WhileStatementNoShortIf |+ StatementNoShortIfFor ForStatementNoShortIf+ deriving (Eq, Ord, Read, Show)++_StatementNoShortIf = Model.Name "hydra.java.syntax.StatementNoShortIf"++_StatementNoShortIf_withoutTrailing = Model.Name "withoutTrailing"++_StatementNoShortIf_labeled = Model.Name "labeled"++_StatementNoShortIf_ifThenElse = Model.Name "ifThenElse"++_StatementNoShortIf_while = Model.Name "while"++_StatementNoShortIf_for = Model.Name "for"++data StatementWithoutTrailingSubstatement =+ StatementWithoutTrailingSubstatementBlock Block |+ StatementWithoutTrailingSubstatementEmpty |+ StatementWithoutTrailingSubstatementExpression ExpressionStatement |+ StatementWithoutTrailingSubstatementAssert AssertStatement |+ StatementWithoutTrailingSubstatementSwitch SwitchStatement |+ StatementWithoutTrailingSubstatementDo DoStatement |+ StatementWithoutTrailingSubstatementBreak BreakStatement |+ StatementWithoutTrailingSubstatementContinue ContinueStatement |+ StatementWithoutTrailingSubstatementReturn ReturnStatement |+ StatementWithoutTrailingSubstatementSynchronized SynchronizedStatement |+ StatementWithoutTrailingSubstatementThrow ThrowStatement |+ StatementWithoutTrailingSubstatementTry TryStatement |+ StatementWithoutTrailingSubstatementYield YieldStatement+ deriving (Eq, Ord, Read, Show)++_StatementWithoutTrailingSubstatement = Model.Name "hydra.java.syntax.StatementWithoutTrailingSubstatement"++_StatementWithoutTrailingSubstatement_block = Model.Name "block"++_StatementWithoutTrailingSubstatement_empty = Model.Name "empty"++_StatementWithoutTrailingSubstatement_expression = Model.Name "expression"++_StatementWithoutTrailingSubstatement_assert = Model.Name "assert"++_StatementWithoutTrailingSubstatement_switch = Model.Name "switch"++_StatementWithoutTrailingSubstatement_do = Model.Name "do"++_StatementWithoutTrailingSubstatement_break = Model.Name "break"++_StatementWithoutTrailingSubstatement_continue = Model.Name "continue"++_StatementWithoutTrailingSubstatement_return = Model.Name "return"++_StatementWithoutTrailingSubstatement_synchronized = Model.Name "synchronized"++_StatementWithoutTrailingSubstatement_throw = Model.Name "throw"++_StatementWithoutTrailingSubstatement_try = Model.Name "try"++_StatementWithoutTrailingSubstatement_yield = Model.Name "yield"++data LabeledStatement =+ LabeledStatement {+ labeledStatementIdentifier :: Identifier,+ labeledStatementStatement :: Statement}+ deriving (Eq, Ord, Read, Show)++_LabeledStatement = Model.Name "hydra.java.syntax.LabeledStatement"++_LabeledStatement_identifier = Model.Name "identifier"++_LabeledStatement_statement = Model.Name "statement"++data LabeledStatementNoShortIf =+ LabeledStatementNoShortIf {+ labeledStatementNoShortIfIdentifier :: Identifier,+ labeledStatementNoShortIfStatement :: StatementNoShortIf}+ deriving (Eq, Ord, Read, Show)++_LabeledStatementNoShortIf = Model.Name "hydra.java.syntax.LabeledStatementNoShortIf"++_LabeledStatementNoShortIf_identifier = Model.Name "identifier"++_LabeledStatementNoShortIf_statement = Model.Name "statement"++newtype ExpressionStatement =+ ExpressionStatement {+ unExpressionStatement :: StatementExpression}+ deriving (Eq, Ord, Read, Show)++_ExpressionStatement = Model.Name "hydra.java.syntax.ExpressionStatement"++data StatementExpression =+ StatementExpressionAssignment Assignment |+ StatementExpressionPreIncrement PreIncrementExpression |+ StatementExpressionPreDecrement PreDecrementExpression |+ StatementExpressionPostIncrement PostIncrementExpression |+ StatementExpressionPostDecrement PostDecrementExpression |+ StatementExpressionMethodInvocation MethodInvocation |+ StatementExpressionClassInstanceCreation ClassInstanceCreationExpression+ deriving (Eq, Ord, Read, Show)++_StatementExpression = Model.Name "hydra.java.syntax.StatementExpression"++_StatementExpression_assignment = Model.Name "assignment"++_StatementExpression_preIncrement = Model.Name "preIncrement"++_StatementExpression_preDecrement = Model.Name "preDecrement"++_StatementExpression_postIncrement = Model.Name "postIncrement"++_StatementExpression_postDecrement = Model.Name "postDecrement"++_StatementExpression_methodInvocation = Model.Name "methodInvocation"++_StatementExpression_classInstanceCreation = Model.Name "classInstanceCreation"++data IfThenStatement =+ IfThenStatement {+ ifThenStatementExpression :: Expression,+ ifThenStatementStatement :: Statement}+ deriving (Eq, Ord, Read, Show)++_IfThenStatement = Model.Name "hydra.java.syntax.IfThenStatement"++_IfThenStatement_expression = Model.Name "expression"++_IfThenStatement_statement = Model.Name "statement"++data IfThenElseStatement =+ IfThenElseStatement {+ ifThenElseStatementCond :: (Maybe Expression),+ ifThenElseStatementThen :: StatementNoShortIf,+ ifThenElseStatementElse :: Statement}+ deriving (Eq, Ord, Read, Show)++_IfThenElseStatement = Model.Name "hydra.java.syntax.IfThenElseStatement"++_IfThenElseStatement_cond = Model.Name "cond"++_IfThenElseStatement_then = Model.Name "then"++_IfThenElseStatement_else = Model.Name "else"++data IfThenElseStatementNoShortIf =+ IfThenElseStatementNoShortIf {+ ifThenElseStatementNoShortIfCond :: (Maybe Expression),+ ifThenElseStatementNoShortIfThen :: StatementNoShortIf,+ ifThenElseStatementNoShortIfElse :: StatementNoShortIf}+ deriving (Eq, Ord, Read, Show)++_IfThenElseStatementNoShortIf = Model.Name "hydra.java.syntax.IfThenElseStatementNoShortIf"++_IfThenElseStatementNoShortIf_cond = Model.Name "cond"++_IfThenElseStatementNoShortIf_then = Model.Name "then"++_IfThenElseStatementNoShortIf_else = Model.Name "else"++data AssertStatement =+ AssertStatementSingle Expression |+ AssertStatementPair AssertStatement_Pair+ deriving (Eq, Ord, Read, Show)++_AssertStatement = Model.Name "hydra.java.syntax.AssertStatement"++_AssertStatement_single = Model.Name "single"++_AssertStatement_pair = Model.Name "pair"++data AssertStatement_Pair =+ AssertStatement_Pair {+ assertStatement_PairFirst :: Expression,+ assertStatement_PairSecond :: Expression}+ deriving (Eq, Ord, Read, Show)++_AssertStatement_Pair = Model.Name "hydra.java.syntax.AssertStatement_Pair"++_AssertStatement_Pair_first = Model.Name "first"++_AssertStatement_Pair_second = Model.Name "second"++data SwitchStatement =+ SwitchStatement {+ switchStatementCond :: Expression,+ switchStatementBlock :: SwitchBlock}+ deriving (Eq, Ord, Read, Show)++_SwitchStatement = Model.Name "hydra.java.syntax.SwitchStatement"++_SwitchStatement_cond = Model.Name "cond"++_SwitchStatement_block = Model.Name "block"++data SwitchBlock =+ SwitchBlockRules [SwitchRule] |+ SwitchBlockLegacy SwitchBlock_Legacy+ deriving (Eq, Ord, Read, Show)++_SwitchBlock = Model.Name "hydra.java.syntax.SwitchBlock"++_SwitchBlock_rules = Model.Name "rules"++_SwitchBlock_legacy = Model.Name "legacy"++data SwitchBlock_Legacy =+ SwitchBlock_Legacy {+ switchBlock_LegacyGroups :: [SwitchBlockStatementGroup],+ switchBlock_LegacyTrailingLabels :: [SwitchLabel]}+ deriving (Eq, Ord, Read, Show)++_SwitchBlock_Legacy = Model.Name "hydra.java.syntax.SwitchBlock_Legacy"++_SwitchBlock_Legacy_groups = Model.Name "groups"++_SwitchBlock_Legacy_trailingLabels = Model.Name "trailingLabels"++data SwitchRule =+ SwitchRule {+ switchRuleLabel :: SwitchLabel,+ switchRuleBody :: SwitchRule_Body}+ deriving (Eq, Ord, Read, Show)++_SwitchRule = Model.Name "hydra.java.syntax.SwitchRule"++_SwitchRule_label = Model.Name "label"++_SwitchRule_body = Model.Name "body"++data SwitchRule_Body =+ SwitchRule_BodyExpression Expression |+ SwitchRule_BodyBlock Block |+ SwitchRule_BodyThrow ThrowStatement+ deriving (Eq, Ord, Read, Show)++_SwitchRule_Body = Model.Name "hydra.java.syntax.SwitchRule_Body"++_SwitchRule_Body_expression = Model.Name "expression"++_SwitchRule_Body_block = Model.Name "block"++_SwitchRule_Body_throw = Model.Name "throw"++data SwitchBlockStatementGroup =+ SwitchBlockStatementGroup {+ switchBlockStatementGroupLabels :: [SwitchLabel],+ switchBlockStatementGroupStatements :: [BlockStatement]}+ deriving (Eq, Ord, Read, Show)++_SwitchBlockStatementGroup = Model.Name "hydra.java.syntax.SwitchBlockStatementGroup"++_SwitchBlockStatementGroup_labels = Model.Name "labels"++_SwitchBlockStatementGroup_statements = Model.Name "statements"++data SwitchLabel =+ SwitchLabelCase [CaseConstant] |+ SwitchLabelNull Bool |+ SwitchLabelCasePattern CasePattern |+ SwitchLabelDefault+ deriving (Eq, Ord, Read, Show)++_SwitchLabel = Model.Name "hydra.java.syntax.SwitchLabel"++_SwitchLabel_case = Model.Name "case"++_SwitchLabel_null = Model.Name "null"++_SwitchLabel_casePattern = Model.Name "casePattern"++_SwitchLabel_default = Model.Name "default"++newtype CaseConstant =+ CaseConstant {+ unCaseConstant :: ConditionalExpression}+ deriving (Eq, Ord, Read, Show)++_CaseConstant = Model.Name "hydra.java.syntax.CaseConstant"++data CasePattern =+ CasePattern {+ casePatternPattern :: Pattern,+ casePatternGuard :: (Maybe Guard)}+ deriving (Eq, Ord, Read, Show)++_CasePattern = Model.Name "hydra.java.syntax.CasePattern"++_CasePattern_pattern = Model.Name "pattern"++_CasePattern_guard = Model.Name "guard"++newtype Guard =+ Guard {+ unGuard :: Expression}+ deriving (Eq, Ord, Read, Show)++_Guard = Model.Name "hydra.java.syntax.Guard"++data Pattern =+ PatternType TypePattern |+ PatternRecord RecordPattern+ deriving (Eq, Ord, Read, Show)++_Pattern = Model.Name "hydra.java.syntax.Pattern"++_Pattern_type = Model.Name "type"++_Pattern_record = Model.Name "record"++newtype TypePattern =+ TypePattern {+ unTypePattern :: LocalVariableDeclaration}+ deriving (Eq, Ord, Read, Show)++_TypePattern = Model.Name "hydra.java.syntax.TypePattern"++data RecordPattern =+ RecordPattern {+ recordPatternType :: ReferenceType,+ recordPatternPatterns :: [Pattern]}+ deriving (Eq, Ord, Read, Show)++_RecordPattern = Model.Name "hydra.java.syntax.RecordPattern"++_RecordPattern_type = Model.Name "type"++_RecordPattern_patterns = Model.Name "patterns"++data WhileStatement =+ WhileStatement {+ whileStatementCond :: (Maybe Expression),+ whileStatementBody :: Statement}+ deriving (Eq, Ord, Read, Show)++_WhileStatement = Model.Name "hydra.java.syntax.WhileStatement"++_WhileStatement_cond = Model.Name "cond"++_WhileStatement_body = Model.Name "body"++data WhileStatementNoShortIf =+ WhileStatementNoShortIf {+ whileStatementNoShortIfCond :: (Maybe Expression),+ whileStatementNoShortIfBody :: StatementNoShortIf}+ deriving (Eq, Ord, Read, Show)++_WhileStatementNoShortIf = Model.Name "hydra.java.syntax.WhileStatementNoShortIf"++_WhileStatementNoShortIf_cond = Model.Name "cond"++_WhileStatementNoShortIf_body = Model.Name "body"++data DoStatement =+ DoStatement {+ doStatementBody :: Statement,+ doStatementCond :: Expression}+ deriving (Eq, Ord, Read, Show)++_DoStatement = Model.Name "hydra.java.syntax.DoStatement"++_DoStatement_body = Model.Name "body"++_DoStatement_cond = Model.Name "cond"++data ForStatement =+ ForStatementBasic BasicForStatement |+ ForStatementEnhanced EnhancedForStatement+ deriving (Eq, Ord, Read, Show)++_ForStatement = Model.Name "hydra.java.syntax.ForStatement"++_ForStatement_basic = Model.Name "basic"++_ForStatement_enhanced = Model.Name "enhanced"++data ForStatementNoShortIf =+ ForStatementNoShortIfBasic BasicForStatementNoShortIf |+ ForStatementNoShortIfEnhanced EnhancedForStatementNoShortIf+ deriving (Eq, Ord, Read, Show)++_ForStatementNoShortIf = Model.Name "hydra.java.syntax.ForStatementNoShortIf"++_ForStatementNoShortIf_basic = Model.Name "basic"++_ForStatementNoShortIf_enhanced = Model.Name "enhanced"++data BasicForStatement =+ BasicForStatement {+ basicForStatementCond :: ForCond,+ basicForStatementBody :: Statement}+ deriving (Eq, Ord, Read, Show)++_BasicForStatement = Model.Name "hydra.java.syntax.BasicForStatement"++_BasicForStatement_cond = Model.Name "cond"++_BasicForStatement_body = Model.Name "body"++data ForCond =+ ForCond {+ forCondInit :: (Maybe ForInit),+ forCondCond :: (Maybe Expression),+ forCondUpdate :: (Maybe ForUpdate)}+ deriving (Eq, Ord, Read, Show)++_ForCond = Model.Name "hydra.java.syntax.ForCond"++_ForCond_init = Model.Name "init"++_ForCond_cond = Model.Name "cond"++_ForCond_update = Model.Name "update"++data BasicForStatementNoShortIf =+ BasicForStatementNoShortIf {+ basicForStatementNoShortIfCond :: ForCond,+ basicForStatementNoShortIfBody :: StatementNoShortIf}+ deriving (Eq, Ord, Read, Show)++_BasicForStatementNoShortIf = Model.Name "hydra.java.syntax.BasicForStatementNoShortIf"++_BasicForStatementNoShortIf_cond = Model.Name "cond"++_BasicForStatementNoShortIf_body = Model.Name "body"++data ForInit =+ ForInitStatements [StatementExpression] |+ ForInitLocalVariable LocalVariableDeclaration+ deriving (Eq, Ord, Read, Show)++_ForInit = Model.Name "hydra.java.syntax.ForInit"++_ForInit_statements = Model.Name "statements"++_ForInit_localVariable = Model.Name "localVariable"++newtype ForUpdate =+ ForUpdate {+ unForUpdate :: [StatementExpression]}+ deriving (Eq, Ord, Read, Show)++_ForUpdate = Model.Name "hydra.java.syntax.ForUpdate"++data EnhancedForStatement =+ EnhancedForStatement {+ enhancedForStatementCond :: EnhancedForCond,+ enhancedForStatementBody :: Statement}+ deriving (Eq, Ord, Read, Show)++_EnhancedForStatement = Model.Name "hydra.java.syntax.EnhancedForStatement"++_EnhancedForStatement_cond = Model.Name "cond"++_EnhancedForStatement_body = Model.Name "body"++data EnhancedForCond =+ EnhancedForCond {+ enhancedForCondDeclaration :: LocalVariableDeclaration,+ enhancedForCondExpression :: Expression}+ deriving (Eq, Ord, Read, Show)++_EnhancedForCond = Model.Name "hydra.java.syntax.EnhancedForCond"++_EnhancedForCond_declaration = Model.Name "declaration"++_EnhancedForCond_expression = Model.Name "expression"++data EnhancedForStatementNoShortIf =+ EnhancedForStatementNoShortIf {+ enhancedForStatementNoShortIfCond :: EnhancedForCond,+ enhancedForStatementNoShortIfBody :: StatementNoShortIf}+ deriving (Eq, Ord, Read, Show)++_EnhancedForStatementNoShortIf = Model.Name "hydra.java.syntax.EnhancedForStatementNoShortIf"++_EnhancedForStatementNoShortIf_cond = Model.Name "cond"++_EnhancedForStatementNoShortIf_body = Model.Name "body"++newtype BreakStatement =+ BreakStatement {+ unBreakStatement :: (Maybe Identifier)}+ deriving (Eq, Ord, Read, Show)++_BreakStatement = Model.Name "hydra.java.syntax.BreakStatement"++newtype YieldStatement =+ YieldStatement {+ unYieldStatement :: Expression}+ deriving (Eq, Ord, Read, Show)++_YieldStatement = Model.Name "hydra.java.syntax.YieldStatement"++newtype ContinueStatement =+ ContinueStatement {+ unContinueStatement :: (Maybe Identifier)}+ deriving (Eq, Ord, Read, Show)++_ContinueStatement = Model.Name "hydra.java.syntax.ContinueStatement"++newtype ReturnStatement =+ ReturnStatement {+ unReturnStatement :: (Maybe Expression)}+ deriving (Eq, Ord, Read, Show)++_ReturnStatement = Model.Name "hydra.java.syntax.ReturnStatement"++newtype ThrowStatement =+ ThrowStatement {+ unThrowStatement :: Expression}+ deriving (Eq, Ord, Read, Show)++_ThrowStatement = Model.Name "hydra.java.syntax.ThrowStatement"++data SynchronizedStatement =+ SynchronizedStatement {+ synchronizedStatementExpression :: Expression,+ synchronizedStatementBlock :: Block}+ deriving (Eq, Ord, Read, Show)++_SynchronizedStatement = Model.Name "hydra.java.syntax.SynchronizedStatement"++_SynchronizedStatement_expression = Model.Name "expression"++_SynchronizedStatement_block = Model.Name "block"++data TryStatement =+ TryStatementSimple TryStatement_Simple |+ TryStatementWithFinally TryStatement_WithFinally |+ TryStatementWithResources TryWithResourcesStatement+ deriving (Eq, Ord, Read, Show)++_TryStatement = Model.Name "hydra.java.syntax.TryStatement"++_TryStatement_simple = Model.Name "simple"++_TryStatement_withFinally = Model.Name "withFinally"++_TryStatement_withResources = Model.Name "withResources"++data TryStatement_Simple =+ TryStatement_Simple {+ tryStatement_SimpleBlock :: Block,+ tryStatement_SimpleCatches :: Catches}+ deriving (Eq, Ord, Read, Show)++_TryStatement_Simple = Model.Name "hydra.java.syntax.TryStatement_Simple"++_TryStatement_Simple_block = Model.Name "block"++_TryStatement_Simple_catches = Model.Name "catches"++data TryStatement_WithFinally =+ TryStatement_WithFinally {+ tryStatement_WithFinallyBlock :: Block,+ tryStatement_WithFinallyCatches :: (Maybe Catches),+ tryStatement_WithFinallyFinally :: Finally}+ deriving (Eq, Ord, Read, Show)++_TryStatement_WithFinally = Model.Name "hydra.java.syntax.TryStatement_WithFinally"++_TryStatement_WithFinally_block = Model.Name "block"++_TryStatement_WithFinally_catches = Model.Name "catches"++_TryStatement_WithFinally_finally = Model.Name "finally"++newtype Catches =+ Catches {+ unCatches :: [CatchClause]}+ deriving (Eq, Ord, Read, Show)++_Catches = Model.Name "hydra.java.syntax.Catches"++data CatchClause =+ CatchClause {+ catchClauseParameter :: (Maybe CatchFormalParameter),+ catchClauseBlock :: Block}+ deriving (Eq, Ord, Read, Show)++_CatchClause = Model.Name "hydra.java.syntax.CatchClause"++_CatchClause_parameter = Model.Name "parameter"++_CatchClause_block = Model.Name "block"++data CatchFormalParameter =+ CatchFormalParameter {+ catchFormalParameterModifiers :: [VariableModifier],+ catchFormalParameterType :: CatchType,+ catchFormalParameterId :: VariableDeclaratorId}+ deriving (Eq, Ord, Read, Show)++_CatchFormalParameter = Model.Name "hydra.java.syntax.CatchFormalParameter"++_CatchFormalParameter_modifiers = Model.Name "modifiers"++_CatchFormalParameter_type = Model.Name "type"++_CatchFormalParameter_id = Model.Name "id"++data CatchType =+ CatchType {+ catchTypeType :: UnannClassType,+ catchTypeTypes :: [ClassType]}+ deriving (Eq, Ord, Read, Show)++_CatchType = Model.Name "hydra.java.syntax.CatchType"++_CatchType_type = Model.Name "type"++_CatchType_types = Model.Name "types"++newtype Finally =+ Finally {+ unFinally :: Block}+ deriving (Eq, Ord, Read, Show)++_Finally = Model.Name "hydra.java.syntax.Finally"++data TryWithResourcesStatement =+ TryWithResourcesStatement {+ tryWithResourcesStatementResourceSpecification :: ResourceSpecification,+ tryWithResourcesStatementBlock :: Block,+ tryWithResourcesStatementCatches :: (Maybe Catches),+ tryWithResourcesStatementFinally :: (Maybe Finally)}+ deriving (Eq, Ord, Read, Show)++_TryWithResourcesStatement = Model.Name "hydra.java.syntax.TryWithResourcesStatement"++_TryWithResourcesStatement_resourceSpecification = Model.Name "resourceSpecification"++_TryWithResourcesStatement_block = Model.Name "block"++_TryWithResourcesStatement_catches = Model.Name "catches"++_TryWithResourcesStatement_finally = Model.Name "finally"++newtype ResourceSpecification =+ ResourceSpecification {+ unResourceSpecification :: [Resource]}+ deriving (Eq, Ord, Read, Show)++_ResourceSpecification = Model.Name "hydra.java.syntax.ResourceSpecification"++data Resource =+ ResourceLocal Resource_Local |+ ResourceVariable VariableAccess+ deriving (Eq, Ord, Read, Show)++_Resource = Model.Name "hydra.java.syntax.Resource"++_Resource_local = Model.Name "local"++_Resource_variable = Model.Name "variable"++data Resource_Local =+ Resource_Local {+ resource_LocalModifiers :: [VariableModifier],+ resource_LocalType :: LocalVariableType,+ resource_LocalIdentifier :: Identifier,+ resource_LocalExpression :: Expression}+ deriving (Eq, Ord, Read, Show)++_Resource_Local = Model.Name "hydra.java.syntax.Resource_Local"++_Resource_Local_modifiers = Model.Name "modifiers"++_Resource_Local_type = Model.Name "type"++_Resource_Local_identifier = Model.Name "identifier"++_Resource_Local_expression = Model.Name "expression"++data VariableAccess =+ VariableAccessExpressionName ExpressionName |+ VariableAccessFieldAccess FieldAccess+ deriving (Eq, Ord, Read, Show)++_VariableAccess = Model.Name "hydra.java.syntax.VariableAccess"++_VariableAccess_expressionName = Model.Name "expressionName"++_VariableAccess_fieldAccess = Model.Name "fieldAccess"++data Primary =+ PrimaryNoNewArray PrimaryNoNewArrayExpression |+ PrimaryArrayCreation ArrayCreationExpression+ deriving (Eq, Ord, Read, Show)++_Primary = Model.Name "hydra.java.syntax.Primary"++_Primary_noNewArray = Model.Name "noNewArray"++_Primary_arrayCreation = Model.Name "arrayCreation"++data PrimaryNoNewArrayExpression =+ PrimaryNoNewArrayExpressionLiteral Literal |+ PrimaryNoNewArrayExpressionClassLiteral ClassLiteral |+ PrimaryNoNewArrayExpressionThis |+ PrimaryNoNewArrayExpressionDotThis TypeName |+ PrimaryNoNewArrayExpressionParens Expression |+ PrimaryNoNewArrayExpressionClassInstance ClassInstanceCreationExpression |+ PrimaryNoNewArrayExpressionFieldAccess FieldAccess |+ PrimaryNoNewArrayExpressionArrayAccess ArrayAccess |+ PrimaryNoNewArrayExpressionMethodInvocation MethodInvocation |+ PrimaryNoNewArrayExpressionMethodReference MethodReference+ deriving (Eq, Ord, Read, Show)++_PrimaryNoNewArrayExpression = Model.Name "hydra.java.syntax.PrimaryNoNewArrayExpression"++_PrimaryNoNewArrayExpression_literal = Model.Name "literal"++_PrimaryNoNewArrayExpression_classLiteral = Model.Name "classLiteral"++_PrimaryNoNewArrayExpression_this = Model.Name "this"++_PrimaryNoNewArrayExpression_dotThis = Model.Name "dotThis"++_PrimaryNoNewArrayExpression_parens = Model.Name "parens"++_PrimaryNoNewArrayExpression_classInstance = Model.Name "classInstance"++_PrimaryNoNewArrayExpression_fieldAccess = Model.Name "fieldAccess"++_PrimaryNoNewArrayExpression_arrayAccess = Model.Name "arrayAccess"++_PrimaryNoNewArrayExpression_methodInvocation = Model.Name "methodInvocation"++_PrimaryNoNewArrayExpression_methodReference = Model.Name "methodReference"++data ClassLiteral =+ ClassLiteralType TypeNameArray |+ ClassLiteralNumericType NumericTypeArray |+ ClassLiteralBoolean BooleanArray |+ ClassLiteralVoid+ deriving (Eq, Ord, Read, Show)++_ClassLiteral = Model.Name "hydra.java.syntax.ClassLiteral"++_ClassLiteral_type = Model.Name "type"++_ClassLiteral_numericType = Model.Name "numericType"++_ClassLiteral_boolean = Model.Name "boolean"++_ClassLiteral_void = Model.Name "void"++data TypeNameArray =+ TypeNameArraySimple TypeName |+ TypeNameArrayArray TypeNameArray+ deriving (Eq, Ord, Read, Show)++_TypeNameArray = Model.Name "hydra.java.syntax.TypeNameArray"++_TypeNameArray_simple = Model.Name "simple"++_TypeNameArray_array = Model.Name "array"++data NumericTypeArray =+ NumericTypeArraySimple NumericType |+ NumericTypeArrayArray NumericTypeArray+ deriving (Eq, Ord, Read, Show)++_NumericTypeArray = Model.Name "hydra.java.syntax.NumericTypeArray"++_NumericTypeArray_simple = Model.Name "simple"++_NumericTypeArray_array = Model.Name "array"++data BooleanArray =+ BooleanArraySimple |+ BooleanArrayArray BooleanArray+ deriving (Eq, Ord, Read, Show)++_BooleanArray = Model.Name "hydra.java.syntax.BooleanArray"++_BooleanArray_simple = Model.Name "simple"++_BooleanArray_array = Model.Name "array"++data ClassInstanceCreationExpression =+ ClassInstanceCreationExpression {+ classInstanceCreationExpressionQualifier :: (Maybe ClassInstanceCreationExpression_Qualifier),+ classInstanceCreationExpressionExpression :: UnqualifiedClassInstanceCreationExpression}+ deriving (Eq, Ord, Read, Show)++_ClassInstanceCreationExpression = Model.Name "hydra.java.syntax.ClassInstanceCreationExpression"++_ClassInstanceCreationExpression_qualifier = Model.Name "qualifier"++_ClassInstanceCreationExpression_expression = Model.Name "expression"++data ClassInstanceCreationExpression_Qualifier =+ ClassInstanceCreationExpression_QualifierExpression ExpressionName |+ ClassInstanceCreationExpression_QualifierPrimary Primary+ deriving (Eq, Ord, Read, Show)++_ClassInstanceCreationExpression_Qualifier = Model.Name "hydra.java.syntax.ClassInstanceCreationExpression_Qualifier"++_ClassInstanceCreationExpression_Qualifier_expression = Model.Name "expression"++_ClassInstanceCreationExpression_Qualifier_primary = Model.Name "primary"++data UnqualifiedClassInstanceCreationExpression =+ UnqualifiedClassInstanceCreationExpression {+ unqualifiedClassInstanceCreationExpressionTypeArguments :: [TypeArgument],+ unqualifiedClassInstanceCreationExpressionClassOrInterface :: ClassOrInterfaceTypeToInstantiate,+ unqualifiedClassInstanceCreationExpressionArguments :: [Expression],+ unqualifiedClassInstanceCreationExpressionBody :: (Maybe ClassBody)}+ deriving (Eq, Ord, Read, Show)++_UnqualifiedClassInstanceCreationExpression = Model.Name "hydra.java.syntax.UnqualifiedClassInstanceCreationExpression"++_UnqualifiedClassInstanceCreationExpression_typeArguments = Model.Name "typeArguments"++_UnqualifiedClassInstanceCreationExpression_classOrInterface = Model.Name "classOrInterface"++_UnqualifiedClassInstanceCreationExpression_arguments = Model.Name "arguments"++_UnqualifiedClassInstanceCreationExpression_body = Model.Name "body"++data ClassOrInterfaceTypeToInstantiate =+ ClassOrInterfaceTypeToInstantiate {+ classOrInterfaceTypeToInstantiateIdentifiers :: [AnnotatedIdentifier],+ classOrInterfaceTypeToInstantiateTypeArguments :: (Maybe TypeArgumentsOrDiamond)}+ deriving (Eq, Ord, Read, Show)++_ClassOrInterfaceTypeToInstantiate = Model.Name "hydra.java.syntax.ClassOrInterfaceTypeToInstantiate"++_ClassOrInterfaceTypeToInstantiate_identifiers = Model.Name "identifiers"++_ClassOrInterfaceTypeToInstantiate_typeArguments = Model.Name "typeArguments"++data AnnotatedIdentifier =+ AnnotatedIdentifier {+ annotatedIdentifierAnnotations :: [Annotation],+ annotatedIdentifierIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_AnnotatedIdentifier = Model.Name "hydra.java.syntax.AnnotatedIdentifier"++_AnnotatedIdentifier_annotations = Model.Name "annotations"++_AnnotatedIdentifier_identifier = Model.Name "identifier"++data TypeArgumentsOrDiamond =+ TypeArgumentsOrDiamondArguments [TypeArgument] |+ TypeArgumentsOrDiamondDiamond+ deriving (Eq, Ord, Read, Show)++_TypeArgumentsOrDiamond = Model.Name "hydra.java.syntax.TypeArgumentsOrDiamond"++_TypeArgumentsOrDiamond_arguments = Model.Name "arguments"++_TypeArgumentsOrDiamond_diamond = Model.Name "diamond"++data FieldAccess =+ FieldAccess {+ fieldAccessQualifier :: FieldAccess_Qualifier,+ fieldAccessIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_FieldAccess = Model.Name "hydra.java.syntax.FieldAccess"++_FieldAccess_qualifier = Model.Name "qualifier"++_FieldAccess_identifier = Model.Name "identifier"++data FieldAccess_Qualifier =+ FieldAccess_QualifierPrimary Primary |+ FieldAccess_QualifierSuper |+ FieldAccess_QualifierTyped TypeName+ deriving (Eq, Ord, Read, Show)++_FieldAccess_Qualifier = Model.Name "hydra.java.syntax.FieldAccess_Qualifier"++_FieldAccess_Qualifier_primary = Model.Name "primary"++_FieldAccess_Qualifier_super = Model.Name "super"++_FieldAccess_Qualifier_typed = Model.Name "typed"++data ArrayAccess =+ ArrayAccess {+ arrayAccessExpression :: (Maybe Expression),+ arrayAccessVariant :: ArrayAccess_Variant}+ deriving (Eq, Ord, Read, Show)++_ArrayAccess = Model.Name "hydra.java.syntax.ArrayAccess"++_ArrayAccess_expression = Model.Name "expression"++_ArrayAccess_variant = Model.Name "variant"++data ArrayAccess_Variant =+ ArrayAccess_VariantName ExpressionName |+ ArrayAccess_VariantPrimary PrimaryNoNewArrayExpression |+ ArrayAccess_VariantArrayCreationWithInitializer ArrayCreationExpressionWithInitializer+ deriving (Eq, Ord, Read, Show)++_ArrayAccess_Variant = Model.Name "hydra.java.syntax.ArrayAccess_Variant"++_ArrayAccess_Variant_name = Model.Name "name"++_ArrayAccess_Variant_primary = Model.Name "primary"++_ArrayAccess_Variant_arrayCreationWithInitializer = Model.Name "arrayCreationWithInitializer"++data MethodInvocation =+ MethodInvocation {+ methodInvocationHeader :: MethodInvocation_Header,+ methodInvocationArguments :: [Expression]}+ deriving (Eq, Ord, Read, Show)++_MethodInvocation = Model.Name "hydra.java.syntax.MethodInvocation"++_MethodInvocation_header = Model.Name "header"++_MethodInvocation_arguments = Model.Name "arguments"++data MethodInvocation_Header =+ MethodInvocation_HeaderSimple MethodName |+ MethodInvocation_HeaderComplex MethodInvocation_Complex+ deriving (Eq, Ord, Read, Show)++_MethodInvocation_Header = Model.Name "hydra.java.syntax.MethodInvocation_Header"++_MethodInvocation_Header_simple = Model.Name "simple"++_MethodInvocation_Header_complex = Model.Name "complex"++data MethodInvocation_Complex =+ MethodInvocation_Complex {+ methodInvocation_ComplexVariant :: MethodInvocation_Variant,+ methodInvocation_ComplexTypeArguments :: [TypeArgument],+ methodInvocation_ComplexIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_MethodInvocation_Complex = Model.Name "hydra.java.syntax.MethodInvocation_Complex"++_MethodInvocation_Complex_variant = Model.Name "variant"++_MethodInvocation_Complex_typeArguments = Model.Name "typeArguments"++_MethodInvocation_Complex_identifier = Model.Name "identifier"++data MethodInvocation_Variant =+ MethodInvocation_VariantType TypeName |+ MethodInvocation_VariantExpression ExpressionName |+ MethodInvocation_VariantPrimary Primary |+ MethodInvocation_VariantSuper |+ MethodInvocation_VariantTypeSuper TypeName+ deriving (Eq, Ord, Read, Show)++_MethodInvocation_Variant = Model.Name "hydra.java.syntax.MethodInvocation_Variant"++_MethodInvocation_Variant_type = Model.Name "type"++_MethodInvocation_Variant_expression = Model.Name "expression"++_MethodInvocation_Variant_primary = Model.Name "primary"++_MethodInvocation_Variant_super = Model.Name "super"++_MethodInvocation_Variant_typeSuper = Model.Name "typeSuper"++data MethodReference =+ MethodReferenceExpression MethodReference_Expression |+ MethodReferencePrimary MethodReference_Primary |+ MethodReferenceReferenceType MethodReference_ReferenceType |+ MethodReferenceSuper MethodReference_Super |+ MethodReferenceNew MethodReference_New |+ MethodReferenceArray MethodReference_Array+ deriving (Eq, Ord, Read, Show)++_MethodReference = Model.Name "hydra.java.syntax.MethodReference"++_MethodReference_expression = Model.Name "expression"++_MethodReference_primary = Model.Name "primary"++_MethodReference_referenceType = Model.Name "referenceType"++_MethodReference_super = Model.Name "super"++_MethodReference_new = Model.Name "new"++_MethodReference_array = Model.Name "array"++data MethodReference_Expression =+ MethodReference_Expression {+ methodReference_ExpressionName :: ExpressionName,+ methodReference_ExpressionTypeArguments :: [TypeArgument],+ methodReference_ExpressionIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_MethodReference_Expression = Model.Name "hydra.java.syntax.MethodReference_Expression"++_MethodReference_Expression_name = Model.Name "name"++_MethodReference_Expression_typeArguments = Model.Name "typeArguments"++_MethodReference_Expression_identifier = Model.Name "identifier"++data MethodReference_Primary =+ MethodReference_Primary {+ methodReference_PrimaryPrimary :: Primary,+ methodReference_PrimaryTypeArguments :: [TypeArgument],+ methodReference_PrimaryIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_MethodReference_Primary = Model.Name "hydra.java.syntax.MethodReference_Primary"++_MethodReference_Primary_primary = Model.Name "primary"++_MethodReference_Primary_typeArguments = Model.Name "typeArguments"++_MethodReference_Primary_identifier = Model.Name "identifier"++data MethodReference_ReferenceType =+ MethodReference_ReferenceType {+ methodReference_ReferenceTypeReferenceType :: ReferenceType,+ methodReference_ReferenceTypeTypeArguments :: [TypeArgument],+ methodReference_ReferenceTypeIdentifier :: Identifier}+ deriving (Eq, Ord, Read, Show)++_MethodReference_ReferenceType = Model.Name "hydra.java.syntax.MethodReference_ReferenceType"++_MethodReference_ReferenceType_referenceType = Model.Name "referenceType"++_MethodReference_ReferenceType_typeArguments = Model.Name "typeArguments"++_MethodReference_ReferenceType_identifier = Model.Name "identifier"++data MethodReference_Super =+ MethodReference_Super {+ methodReference_SuperTypeArguments :: [TypeArgument],+ methodReference_SuperIdentifier :: Identifier,+ methodReference_SuperSuper :: Bool}+ deriving (Eq, Ord, Read, Show)++_MethodReference_Super = Model.Name "hydra.java.syntax.MethodReference_Super"++_MethodReference_Super_typeArguments = Model.Name "typeArguments"++_MethodReference_Super_identifier = Model.Name "identifier"++_MethodReference_Super_super = Model.Name "super"++data MethodReference_New =+ MethodReference_New {+ methodReference_NewClassType :: ClassType,+ methodReference_NewTypeArguments :: [TypeArgument]}+ deriving (Eq, Ord, Read, Show)++_MethodReference_New = Model.Name "hydra.java.syntax.MethodReference_New"++_MethodReference_New_classType = Model.Name "classType"++_MethodReference_New_typeArguments = Model.Name "typeArguments"++newtype MethodReference_Array =+ MethodReference_Array {+ unMethodReference_Array :: ArrayType}+ deriving (Eq, Ord, Read, Show)++_MethodReference_Array = Model.Name "hydra.java.syntax.MethodReference_Array"++data ArrayCreationExpression =+ ArrayCreationExpressionNoInit ArrayCreationExpressionWithoutInitializer |+ ArrayCreationExpressionWithInit ArrayCreationExpressionWithInitializer+ deriving (Eq, Ord, Read, Show)++_ArrayCreationExpression = Model.Name "hydra.java.syntax.ArrayCreationExpression"++_ArrayCreationExpression_noInit = Model.Name "noInit"++_ArrayCreationExpression_withInit = Model.Name "withInit"++data ArrayCreationExpressionWithoutInitializer =+ ArrayCreationExpressionWithoutInitializerPrimitive ArrayCreationExpressionWithoutInitializer_Primitive |+ ArrayCreationExpressionWithoutInitializerClassOrInterface ArrayCreationExpressionWithoutInitializer_ClassOrInterface+ deriving (Eq, Ord, Read, Show)++_ArrayCreationExpressionWithoutInitializer = Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer"++_ArrayCreationExpressionWithoutInitializer_primitive = Model.Name "primitive"++_ArrayCreationExpressionWithoutInitializer_classOrInterface = Model.Name "classOrInterface"++data ArrayCreationExpressionWithoutInitializer_Primitive =+ ArrayCreationExpressionWithoutInitializer_Primitive {+ arrayCreationExpressionWithoutInitializer_PrimitiveType :: PrimitiveTypeWithAnnotations,+ arrayCreationExpressionWithoutInitializer_PrimitiveDimExprs :: [DimExpr],+ arrayCreationExpressionWithoutInitializer_PrimitiveDims :: (Maybe Dims)}+ deriving (Eq, Ord, Read, Show)++_ArrayCreationExpressionWithoutInitializer_Primitive =+ Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_Primitive"++_ArrayCreationExpressionWithoutInitializer_Primitive_type = Model.Name "type"++_ArrayCreationExpressionWithoutInitializer_Primitive_dimExprs = Model.Name "dimExprs"++_ArrayCreationExpressionWithoutInitializer_Primitive_dims = Model.Name "dims"++data ArrayCreationExpressionWithoutInitializer_ClassOrInterface =+ ArrayCreationExpressionWithoutInitializer_ClassOrInterface {+ arrayCreationExpressionWithoutInitializer_ClassOrInterfaceType :: ClassOrInterfaceType,+ arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDimExprs :: [DimExpr],+ arrayCreationExpressionWithoutInitializer_ClassOrInterfaceDims :: (Maybe Dims)}+ deriving (Eq, Ord, Read, Show)++_ArrayCreationExpressionWithoutInitializer_ClassOrInterface =+ Model.Name "hydra.java.syntax.ArrayCreationExpressionWithoutInitializer_ClassOrInterface"++_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_type = Model.Name "type"++_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_dimExprs = Model.Name "dimExprs"++_ArrayCreationExpressionWithoutInitializer_ClassOrInterface_dims = Model.Name "dims"++data ArrayCreationExpressionWithInitializer =+ ArrayCreationExpressionWithInitializerPrimitive ArrayCreationExpressionWithInitializer_Primitive |+ ArrayCreationExpressionWithInitializerClassOrInterface ArrayCreationExpressionWithInitializer_ClassOrInterface+ deriving (Eq, Ord, Read, Show)++_ArrayCreationExpressionWithInitializer = Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer"++_ArrayCreationExpressionWithInitializer_primitive = Model.Name "primitive"++_ArrayCreationExpressionWithInitializer_classOrInterface = Model.Name "classOrInterface"++data ArrayCreationExpressionWithInitializer_Primitive =+ ArrayCreationExpressionWithInitializer_Primitive {+ arrayCreationExpressionWithInitializer_PrimitiveType :: PrimitiveTypeWithAnnotations,+ arrayCreationExpressionWithInitializer_PrimitiveDims :: [Dims],+ arrayCreationExpressionWithInitializer_PrimitiveArray :: ArrayInitializer}+ deriving (Eq, Ord, Read, Show)++_ArrayCreationExpressionWithInitializer_Primitive =+ Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_Primitive"++_ArrayCreationExpressionWithInitializer_Primitive_type = Model.Name "type"++_ArrayCreationExpressionWithInitializer_Primitive_dims = Model.Name "dims"++_ArrayCreationExpressionWithInitializer_Primitive_array = Model.Name "array"++data ArrayCreationExpressionWithInitializer_ClassOrInterface =+ ArrayCreationExpressionWithInitializer_ClassOrInterface {+ arrayCreationExpressionWithInitializer_ClassOrInterfaceType :: ClassOrInterfaceType,+ arrayCreationExpressionWithInitializer_ClassOrInterfaceDims :: [Dims],+ arrayCreationExpressionWithInitializer_ClassOrInterfaceArray :: ArrayInitializer}+ deriving (Eq, Ord, Read, Show)++_ArrayCreationExpressionWithInitializer_ClassOrInterface =+ Model.Name "hydra.java.syntax.ArrayCreationExpressionWithInitializer_ClassOrInterface"++_ArrayCreationExpressionWithInitializer_ClassOrInterface_type = Model.Name "type"++_ArrayCreationExpressionWithInitializer_ClassOrInterface_dims = Model.Name "dims"++_ArrayCreationExpressionWithInitializer_ClassOrInterface_array = Model.Name "array"++data DimExpr =+ DimExpr {+ dimExprAnnotations :: [Annotation],+ dimExprExpression :: (Maybe Expression)}+ deriving (Eq, Ord, Read, Show)++_DimExpr = Model.Name "hydra.java.syntax.DimExpr"++_DimExpr_annotations = Model.Name "annotations"++_DimExpr_expression = Model.Name "expression"++data Expression =+ ExpressionLambda LambdaExpression |+ ExpressionAssignment AssignmentExpression+ deriving (Eq, Ord, Read, Show)++_Expression = Model.Name "hydra.java.syntax.Expression"++_Expression_lambda = Model.Name "lambda"++_Expression_assignment = Model.Name "assignment"++data LambdaExpression =+ LambdaExpression {+ lambdaExpressionParameters :: LambdaParameters,+ lambdaExpressionBody :: LambdaBody}+ deriving (Eq, Ord, Read, Show)++_LambdaExpression = Model.Name "hydra.java.syntax.LambdaExpression"++_LambdaExpression_parameters = Model.Name "parameters"++_LambdaExpression_body = Model.Name "body"++data LambdaParameters =+ LambdaParametersTuple [LambdaParameters] |+ LambdaParametersSingle Identifier+ deriving (Eq, Ord, Read, Show)++_LambdaParameters = Model.Name "hydra.java.syntax.LambdaParameters"++_LambdaParameters_tuple = Model.Name "tuple"++_LambdaParameters_single = Model.Name "single"++data LambdaParameter =+ LambdaParameterNormal LambdaParameter_Normal |+ LambdaParameterVariableArity VariableArityParameter+ deriving (Eq, Ord, Read, Show)++_LambdaParameter = Model.Name "hydra.java.syntax.LambdaParameter"++_LambdaParameter_normal = Model.Name "normal"++_LambdaParameter_variableArity = Model.Name "variableArity"++data LambdaParameter_Normal =+ LambdaParameter_Normal {+ lambdaParameter_NormalModifiers :: [VariableModifier],+ lambdaParameter_NormalType :: LambdaParameterType,+ lambdaParameter_NormalId :: VariableDeclaratorId}+ deriving (Eq, Ord, Read, Show)++_LambdaParameter_Normal = Model.Name "hydra.java.syntax.LambdaParameter_Normal"++_LambdaParameter_Normal_modifiers = Model.Name "modifiers"++_LambdaParameter_Normal_type = Model.Name "type"++_LambdaParameter_Normal_id = Model.Name "id"++data LambdaParameterType =+ LambdaParameterTypeType UnannType |+ LambdaParameterTypeVar+ deriving (Eq, Ord, Read, Show)++_LambdaParameterType = Model.Name "hydra.java.syntax.LambdaParameterType"++_LambdaParameterType_type = Model.Name "type"++_LambdaParameterType_var = Model.Name "var"++data LambdaBody =+ LambdaBodyExpression Expression |+ LambdaBodyBlock Block+ deriving (Eq, Ord, Read, Show)++_LambdaBody = Model.Name "hydra.java.syntax.LambdaBody"++_LambdaBody_expression = Model.Name "expression"++_LambdaBody_block = Model.Name "block"++data AssignmentExpression =+ AssignmentExpressionConditional ConditionalExpression |+ AssignmentExpressionAssignment Assignment+ deriving (Eq, Ord, Read, Show)++_AssignmentExpression = Model.Name "hydra.java.syntax.AssignmentExpression"++_AssignmentExpression_conditional = Model.Name "conditional"++_AssignmentExpression_assignment = Model.Name "assignment"++data Assignment =+ Assignment {+ assignmentLhs :: LeftHandSide,+ assignmentOp :: AssignmentOperator,+ assignmentExpression :: Expression}+ deriving (Eq, Ord, Read, Show)++_Assignment = Model.Name "hydra.java.syntax.Assignment"++_Assignment_lhs = Model.Name "lhs"++_Assignment_op = Model.Name "op"++_Assignment_expression = Model.Name "expression"++data LeftHandSide =+ LeftHandSideExpressionName ExpressionName |+ LeftHandSideFieldAccess FieldAccess |+ LeftHandSideArrayAccess ArrayAccess+ deriving (Eq, Ord, Read, Show)++_LeftHandSide = Model.Name "hydra.java.syntax.LeftHandSide"++_LeftHandSide_expressionName = Model.Name "expressionName"++_LeftHandSide_fieldAccess = Model.Name "fieldAccess"++_LeftHandSide_arrayAccess = Model.Name "arrayAccess"++data AssignmentOperator =+ AssignmentOperatorSimple |+ AssignmentOperatorTimes |+ AssignmentOperatorDiv |+ AssignmentOperatorMod |+ AssignmentOperatorPlus |+ AssignmentOperatorMinus |+ AssignmentOperatorShiftLeft |+ AssignmentOperatorShiftRight |+ AssignmentOperatorShiftRightZeroFill |+ AssignmentOperatorAnd |+ AssignmentOperatorXor |+ AssignmentOperatorOr+ deriving (Eq, Ord, Read, Show)++_AssignmentOperator = Model.Name "hydra.java.syntax.AssignmentOperator"++_AssignmentOperator_simple = Model.Name "simple"++_AssignmentOperator_times = Model.Name "times"++_AssignmentOperator_div = Model.Name "div"++_AssignmentOperator_mod = Model.Name "mod"++_AssignmentOperator_plus = Model.Name "plus"++_AssignmentOperator_minus = Model.Name "minus"++_AssignmentOperator_shiftLeft = Model.Name "shiftLeft"++_AssignmentOperator_shiftRight = Model.Name "shiftRight"++_AssignmentOperator_shiftRightZeroFill = Model.Name "shiftRightZeroFill"++_AssignmentOperator_and = Model.Name "and"++_AssignmentOperator_xor = Model.Name "xor"++_AssignmentOperator_or = Model.Name "or"++data ConditionalExpression =+ ConditionalExpressionSimple ConditionalOrExpression |+ ConditionalExpressionTernaryCond ConditionalExpression_TernaryCond |+ ConditionalExpressionTernaryLambda ConditionalExpression_TernaryLambda+ deriving (Eq, Ord, Read, Show)++_ConditionalExpression = Model.Name "hydra.java.syntax.ConditionalExpression"++_ConditionalExpression_simple = Model.Name "simple"++_ConditionalExpression_ternaryCond = Model.Name "ternaryCond"++_ConditionalExpression_ternaryLambda = Model.Name "ternaryLambda"++data ConditionalExpression_TernaryCond =+ ConditionalExpression_TernaryCond {+ conditionalExpression_TernaryCondCond :: ConditionalOrExpression,+ conditionalExpression_TernaryCondIfTrue :: Expression,+ conditionalExpression_TernaryCondIfFalse :: ConditionalExpression}+ deriving (Eq, Ord, Read, Show)++_ConditionalExpression_TernaryCond = Model.Name "hydra.java.syntax.ConditionalExpression_TernaryCond"++_ConditionalExpression_TernaryCond_cond = Model.Name "cond"++_ConditionalExpression_TernaryCond_ifTrue = Model.Name "ifTrue"++_ConditionalExpression_TernaryCond_ifFalse = Model.Name "ifFalse"++data ConditionalExpression_TernaryLambda =+ ConditionalExpression_TernaryLambda {+ conditionalExpression_TernaryLambdaCond :: ConditionalOrExpression,+ conditionalExpression_TernaryLambdaIfTrue :: Expression,+ conditionalExpression_TernaryLambdaIfFalse :: LambdaExpression}+ deriving (Eq, Ord, Read, Show)++_ConditionalExpression_TernaryLambda = Model.Name "hydra.java.syntax.ConditionalExpression_TernaryLambda"++_ConditionalExpression_TernaryLambda_cond = Model.Name "cond"++_ConditionalExpression_TernaryLambda_ifTrue = Model.Name "ifTrue"++_ConditionalExpression_TernaryLambda_ifFalse = Model.Name "ifFalse"++newtype ConditionalOrExpression =+ ConditionalOrExpression {+ unConditionalOrExpression :: [ConditionalAndExpression]}+ deriving (Eq, Ord, Read, Show)++_ConditionalOrExpression = Model.Name "hydra.java.syntax.ConditionalOrExpression"++newtype ConditionalAndExpression =+ ConditionalAndExpression {+ unConditionalAndExpression :: [InclusiveOrExpression]}+ deriving (Eq, Ord, Read, Show)++_ConditionalAndExpression = Model.Name "hydra.java.syntax.ConditionalAndExpression"++newtype InclusiveOrExpression =+ InclusiveOrExpression {+ unInclusiveOrExpression :: [ExclusiveOrExpression]}+ deriving (Eq, Ord, Read, Show)++_InclusiveOrExpression = Model.Name "hydra.java.syntax.InclusiveOrExpression"++newtype ExclusiveOrExpression =+ ExclusiveOrExpression {+ unExclusiveOrExpression :: [AndExpression]}+ deriving (Eq, Ord, Read, Show)++_ExclusiveOrExpression = Model.Name "hydra.java.syntax.ExclusiveOrExpression"++newtype AndExpression =+ AndExpression {+ unAndExpression :: [EqualityExpression]}+ deriving (Eq, Ord, Read, Show)++_AndExpression = Model.Name "hydra.java.syntax.AndExpression"++data EqualityExpression =+ EqualityExpressionUnary RelationalExpression |+ EqualityExpressionEqual EqualityExpression_Binary |+ EqualityExpressionNotEqual EqualityExpression_Binary+ deriving (Eq, Ord, Read, Show)++_EqualityExpression = Model.Name "hydra.java.syntax.EqualityExpression"++_EqualityExpression_unary = Model.Name "unary"++_EqualityExpression_equal = Model.Name "equal"++_EqualityExpression_notEqual = Model.Name "notEqual"++data EqualityExpression_Binary =+ EqualityExpression_Binary {+ equalityExpression_BinaryLhs :: EqualityExpression,+ equalityExpression_BinaryRhs :: RelationalExpression}+ deriving (Eq, Ord, Read, Show)++_EqualityExpression_Binary = Model.Name "hydra.java.syntax.EqualityExpression_Binary"++_EqualityExpression_Binary_lhs = Model.Name "lhs"++_EqualityExpression_Binary_rhs = Model.Name "rhs"++data RelationalExpression =+ RelationalExpressionSimple ShiftExpression |+ RelationalExpressionLessThan RelationalExpression_LessThan |+ RelationalExpressionGreaterThan RelationalExpression_GreaterThan |+ RelationalExpressionLessThanEqual RelationalExpression_LessThanEqual |+ RelationalExpressionGreaterThanEqual RelationalExpression_GreaterThanEqual |+ RelationalExpressionInstanceofExpression InstanceofExpression+ deriving (Eq, Ord, Read, Show)++_RelationalExpression = Model.Name "hydra.java.syntax.RelationalExpression"++_RelationalExpression_simple = Model.Name "simple"++_RelationalExpression_lessThan = Model.Name "lessThan"++_RelationalExpression_greaterThan = Model.Name "greaterThan"++_RelationalExpression_lessThanEqual = Model.Name "lessThanEqual"++_RelationalExpression_greaterThanEqual = Model.Name "greaterThanEqual"++_RelationalExpression_instanceofExpression = Model.Name "instanceofExpression"++data RelationalExpression_LessThan =+ RelationalExpression_LessThan {+ relationalExpression_LessThanLhs :: RelationalExpression,+ relationalExpression_LessThanRhs :: ShiftExpression}+ deriving (Eq, Ord, Read, Show)++_RelationalExpression_LessThan = Model.Name "hydra.java.syntax.RelationalExpression_LessThan"++_RelationalExpression_LessThan_lhs = Model.Name "lhs"++_RelationalExpression_LessThan_rhs = Model.Name "rhs"++data RelationalExpression_GreaterThan =+ RelationalExpression_GreaterThan {+ relationalExpression_GreaterThanLhs :: RelationalExpression,+ relationalExpression_GreaterThanRhs :: ShiftExpression}+ deriving (Eq, Ord, Read, Show)++_RelationalExpression_GreaterThan = Model.Name "hydra.java.syntax.RelationalExpression_GreaterThan"++_RelationalExpression_GreaterThan_lhs = Model.Name "lhs"++_RelationalExpression_GreaterThan_rhs = Model.Name "rhs"++data RelationalExpression_LessThanEqual =+ RelationalExpression_LessThanEqual {+ relationalExpression_LessThanEqualLhs :: RelationalExpression,+ relationalExpression_LessThanEqualRhs :: ShiftExpression}+ deriving (Eq, Ord, Read, Show)++_RelationalExpression_LessThanEqual = Model.Name "hydra.java.syntax.RelationalExpression_LessThanEqual"++_RelationalExpression_LessThanEqual_lhs = Model.Name "lhs"++_RelationalExpression_LessThanEqual_rhs = Model.Name "rhs"++data RelationalExpression_GreaterThanEqual =+ RelationalExpression_GreaterThanEqual {+ relationalExpression_GreaterThanEqualLhs :: RelationalExpression,+ relationalExpression_GreaterThanEqualRhs :: ShiftExpression}+ deriving (Eq, Ord, Read, Show)++_RelationalExpression_GreaterThanEqual = Model.Name "hydra.java.syntax.RelationalExpression_GreaterThanEqual"++_RelationalExpression_GreaterThanEqual_lhs = Model.Name "lhs"++_RelationalExpression_GreaterThanEqual_rhs = Model.Name "rhs"++data InstanceofExpression =+ InstanceofExpression {+ instanceofExpressionLhs :: RelationalExpression,+ instanceofExpressionRhs :: InstanceofExpression_Rhs}+ deriving (Eq, Ord, Read, Show)++_InstanceofExpression = Model.Name "hydra.java.syntax.InstanceofExpression"++_InstanceofExpression_lhs = Model.Name "lhs"++_InstanceofExpression_rhs = Model.Name "rhs"++data InstanceofExpression_Rhs =+ InstanceofExpression_RhsReferenceType ReferenceType |+ InstanceofExpression_RhsPattern Pattern+ deriving (Eq, Ord, Read, Show)++_InstanceofExpression_Rhs = Model.Name "hydra.java.syntax.InstanceofExpression_Rhs"++_InstanceofExpression_Rhs_referenceType = Model.Name "referenceType"++_InstanceofExpression_Rhs_pattern = Model.Name "pattern"++data ShiftExpression =+ ShiftExpressionUnary AdditiveExpression |+ ShiftExpressionShiftLeft ShiftExpression_Binary |+ ShiftExpressionShiftRight ShiftExpression_Binary |+ ShiftExpressionShiftRightZeroFill ShiftExpression_Binary+ deriving (Eq, Ord, Read, Show)++_ShiftExpression = Model.Name "hydra.java.syntax.ShiftExpression"++_ShiftExpression_unary = Model.Name "unary"++_ShiftExpression_shiftLeft = Model.Name "shiftLeft"++_ShiftExpression_shiftRight = Model.Name "shiftRight"++_ShiftExpression_shiftRightZeroFill = Model.Name "shiftRightZeroFill"++data ShiftExpression_Binary =+ ShiftExpression_Binary {+ shiftExpression_BinaryLhs :: ShiftExpression,+ shiftExpression_BinaryRhs :: AdditiveExpression}+ deriving (Eq, Ord, Read, Show)++_ShiftExpression_Binary = Model.Name "hydra.java.syntax.ShiftExpression_Binary"++_ShiftExpression_Binary_lhs = Model.Name "lhs"++_ShiftExpression_Binary_rhs = Model.Name "rhs"++data AdditiveExpression =+ AdditiveExpressionUnary MultiplicativeExpression |+ AdditiveExpressionPlus AdditiveExpression_Binary |+ AdditiveExpressionMinus AdditiveExpression_Binary+ deriving (Eq, Ord, Read, Show)++_AdditiveExpression = Model.Name "hydra.java.syntax.AdditiveExpression"++_AdditiveExpression_unary = Model.Name "unary"++_AdditiveExpression_plus = Model.Name "plus"++_AdditiveExpression_minus = Model.Name "minus"++data AdditiveExpression_Binary =+ AdditiveExpression_Binary {+ additiveExpression_BinaryLhs :: AdditiveExpression,+ additiveExpression_BinaryRhs :: MultiplicativeExpression}+ deriving (Eq, Ord, Read, Show)++_AdditiveExpression_Binary = Model.Name "hydra.java.syntax.AdditiveExpression_Binary"++_AdditiveExpression_Binary_lhs = Model.Name "lhs"++_AdditiveExpression_Binary_rhs = Model.Name "rhs"++data MultiplicativeExpression =+ MultiplicativeExpressionUnary UnaryExpression |+ MultiplicativeExpressionTimes MultiplicativeExpression_Binary |+ MultiplicativeExpressionDivide MultiplicativeExpression_Binary |+ MultiplicativeExpressionMod MultiplicativeExpression_Binary+ deriving (Eq, Ord, Read, Show)++_MultiplicativeExpression = Model.Name "hydra.java.syntax.MultiplicativeExpression"++_MultiplicativeExpression_unary = Model.Name "unary"++_MultiplicativeExpression_times = Model.Name "times"++_MultiplicativeExpression_divide = Model.Name "divide"++_MultiplicativeExpression_mod = Model.Name "mod"++data MultiplicativeExpression_Binary =+ MultiplicativeExpression_Binary {+ multiplicativeExpression_BinaryLhs :: MultiplicativeExpression,+ multiplicativeExpression_BinaryRhs :: UnaryExpression}+ deriving (Eq, Ord, Read, Show)++_MultiplicativeExpression_Binary = Model.Name "hydra.java.syntax.MultiplicativeExpression_Binary"++_MultiplicativeExpression_Binary_lhs = Model.Name "lhs"++_MultiplicativeExpression_Binary_rhs = Model.Name "rhs"++data UnaryExpression =+ UnaryExpressionPreIncrement PreIncrementExpression |+ UnaryExpressionPreDecrement PreDecrementExpression |+ UnaryExpressionPlus UnaryExpression |+ UnaryExpressionMinus UnaryExpression |+ UnaryExpressionOther UnaryExpressionNotPlusMinus+ deriving (Eq, Ord, Read, Show)++_UnaryExpression = Model.Name "hydra.java.syntax.UnaryExpression"++_UnaryExpression_preIncrement = Model.Name "preIncrement"++_UnaryExpression_preDecrement = Model.Name "preDecrement"++_UnaryExpression_plus = Model.Name "plus"++_UnaryExpression_minus = Model.Name "minus"++_UnaryExpression_other = Model.Name "other"++newtype PreIncrementExpression =+ PreIncrementExpression {+ unPreIncrementExpression :: UnaryExpression}+ deriving (Eq, Ord, Read, Show)++_PreIncrementExpression = Model.Name "hydra.java.syntax.PreIncrementExpression"++newtype PreDecrementExpression =+ PreDecrementExpression {+ unPreDecrementExpression :: UnaryExpression}+ deriving (Eq, Ord, Read, Show)++_PreDecrementExpression = Model.Name "hydra.java.syntax.PreDecrementExpression"++data UnaryExpressionNotPlusMinus =+ UnaryExpressionNotPlusMinusPostfix PostfixExpression |+ UnaryExpressionNotPlusMinusTilde UnaryExpression |+ UnaryExpressionNotPlusMinusNot UnaryExpression |+ UnaryExpressionNotPlusMinusCast CastExpression |+ UnaryExpressionNotPlusMinusSwitchExpression SwitchExpression+ deriving (Eq, Ord, Read, Show)++_UnaryExpressionNotPlusMinus = Model.Name "hydra.java.syntax.UnaryExpressionNotPlusMinus"++_UnaryExpressionNotPlusMinus_postfix = Model.Name "postfix"++_UnaryExpressionNotPlusMinus_tilde = Model.Name "tilde"++_UnaryExpressionNotPlusMinus_not = Model.Name "not"++_UnaryExpressionNotPlusMinus_cast = Model.Name "cast"++_UnaryExpressionNotPlusMinus_switchExpression = Model.Name "switchExpression"++data PostfixExpression =+ PostfixExpressionPrimary Primary |+ PostfixExpressionName ExpressionName |+ PostfixExpressionPostIncrement PostIncrementExpression |+ PostfixExpressionPostDecrement PostDecrementExpression+ deriving (Eq, Ord, Read, Show)++_PostfixExpression = Model.Name "hydra.java.syntax.PostfixExpression"++_PostfixExpression_primary = Model.Name "primary"++_PostfixExpression_name = Model.Name "name"++_PostfixExpression_postIncrement = Model.Name "postIncrement"++_PostfixExpression_postDecrement = Model.Name "postDecrement"++newtype PostIncrementExpression =+ PostIncrementExpression {+ unPostIncrementExpression :: PostfixExpression}+ deriving (Eq, Ord, Read, Show)++_PostIncrementExpression = Model.Name "hydra.java.syntax.PostIncrementExpression"++newtype PostDecrementExpression =+ PostDecrementExpression {+ unPostDecrementExpression :: PostfixExpression}+ deriving (Eq, Ord, Read, Show)++_PostDecrementExpression = Model.Name "hydra.java.syntax.PostDecrementExpression"++data CastExpression =+ CastExpressionPrimitive CastExpression_Primitive |+ CastExpressionNotPlusMinus CastExpression_NotPlusMinus |+ CastExpressionLambda CastExpression_Lambda+ deriving (Eq, Ord, Read, Show)++_CastExpression = Model.Name "hydra.java.syntax.CastExpression"++_CastExpression_primitive = Model.Name "primitive"++_CastExpression_notPlusMinus = Model.Name "notPlusMinus"++_CastExpression_lambda = Model.Name "lambda"++data CastExpression_Primitive =+ CastExpression_Primitive {+ castExpression_PrimitiveType :: PrimitiveTypeWithAnnotations,+ castExpression_PrimitiveExpression :: UnaryExpression}+ deriving (Eq, Ord, Read, Show)++_CastExpression_Primitive = Model.Name "hydra.java.syntax.CastExpression_Primitive"++_CastExpression_Primitive_type = Model.Name "type"++_CastExpression_Primitive_expression = Model.Name "expression"++data CastExpression_NotPlusMinus =+ CastExpression_NotPlusMinus {+ castExpression_NotPlusMinusRefAndBounds :: CastExpression_RefAndBounds,+ castExpression_NotPlusMinusExpression :: UnaryExpression}+ deriving (Eq, Ord, Read, Show)++_CastExpression_NotPlusMinus = Model.Name "hydra.java.syntax.CastExpression_NotPlusMinus"++_CastExpression_NotPlusMinus_refAndBounds = Model.Name "refAndBounds"++_CastExpression_NotPlusMinus_expression = Model.Name "expression"++data CastExpression_Lambda =+ CastExpression_Lambda {+ castExpression_LambdaRefAndBounds :: CastExpression_RefAndBounds,+ castExpression_LambdaExpression :: LambdaExpression}+ deriving (Eq, Ord, Read, Show)++_CastExpression_Lambda = Model.Name "hydra.java.syntax.CastExpression_Lambda"++_CastExpression_Lambda_refAndBounds = Model.Name "refAndBounds"++_CastExpression_Lambda_expression = Model.Name "expression"++data CastExpression_RefAndBounds =+ CastExpression_RefAndBounds {+ castExpression_RefAndBoundsType :: ReferenceType,+ castExpression_RefAndBoundsBounds :: [AdditionalBound]}+ deriving (Eq, Ord, Read, Show)++_CastExpression_RefAndBounds = Model.Name "hydra.java.syntax.CastExpression_RefAndBounds"++_CastExpression_RefAndBounds_type = Model.Name "type"++_CastExpression_RefAndBounds_bounds = Model.Name "bounds"++data SwitchExpression =+ SwitchExpression {+ switchExpressionCond :: Expression,+ switchExpressionBlock :: SwitchBlock}+ deriving (Eq, Ord, Read, Show)++_SwitchExpression = Model.Name "hydra.java.syntax.SwitchExpression"++_SwitchExpression_cond = Model.Name "cond"++_SwitchExpression_block = Model.Name "block"++newtype ConstantExpression =+ ConstantExpression {+ unConstantExpression :: Expression}+ deriving (Eq, Ord, Read, Show)++_ConstantExpression = Model.Name "hydra.java.syntax.ConstantExpression"
src/main/haskell/Hydra/Java/Testing.hs view
@@ -4,41 +4,41 @@ module Hydra.Java.Testing where -import qualified Hydra.Ast as Ast-import qualified Hydra.Classes as Classes-import qualified Hydra.Coders as Coders-import qualified Hydra.Constants as Constants-import qualified Hydra.Core as Core-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Errors as Errors-import qualified Hydra.Formatting as Formatting-import qualified Hydra.Graph as Graph+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Classes as Classes+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Constants as Constants+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.Formatting as Formatting+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Overlay.Haskell.Lib.Eithers as Eithers+import qualified Hydra.Core.Overlay.Haskell.Lib.Equality as Equality+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Logic as Logic+import qualified Hydra.Core.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Names as Names+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Serialization as Serialization+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Test.Utils as Utils+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Json.Model as Model-import qualified Hydra.Overlay.Haskell.Lib.Eithers as Eithers-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic-import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings-import qualified Hydra.Names as Names-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational-import qualified Hydra.Serialization as Serialization-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Test.Utils as Utils-import qualified Hydra.Testing as Testing-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -57,7 +57,7 @@ "import org.junit.jupiter.api.Test;", "import static org.junit.jupiter.api.Assertions.*;", "import java.util.*;",- "import hydra.overlay.java.util.*;"]+ "import hydra.core.overlay.java.util.*;"] header = Strings.concat [ Strings.concat2 "// " Constants.warningAutoGeneratedFile,
src/main/haskell/Hydra/Java/Utils.hs view
@@ -4,48 +4,48 @@ module Hydra.Java.Utils where -import qualified Hydra.Ast as Ast-import qualified Hydra.Classes as Classes-import qualified Hydra.Coders as Coders-import qualified Hydra.Core as Core-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Errors as Errors-import qualified Hydra.Formatting as Formatting-import qualified Hydra.Graph as Graph+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Classes as Classes+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.Formatting as Formatting+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Overlay.Haskell.Lib.Eithers as Eithers+import qualified Hydra.Core.Overlay.Haskell.Lib.Equality as Equality+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Literals as Literals+import qualified Hydra.Core.Overlay.Haskell.Lib.Logic as Logic+import qualified Hydra.Core.Overlay.Haskell.Lib.Maps as Maps+import qualified Hydra.Core.Overlay.Haskell.Lib.Math as Math+import qualified Hydra.Core.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Core.Overlay.Haskell.Lib.Pairs as Pairs+import qualified Hydra.Core.Overlay.Haskell.Lib.Sets as Sets+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Names as CoreNames+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Serialization as Serialization+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import qualified Hydra.Java.Environment as Environment import qualified Hydra.Java.Language as Language import qualified Hydra.Java.Names as JavaNames import qualified Hydra.Java.Serde as Serde import qualified Hydra.Java.Syntax as Syntax-import qualified Hydra.Json.Model as Model-import qualified Hydra.Overlay.Haskell.Lib.Eithers as Eithers-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Literals as Literals-import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic-import qualified Hydra.Overlay.Haskell.Lib.Maps as Maps-import qualified Hydra.Overlay.Haskell.Lib.Math as Math-import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals-import qualified Hydra.Overlay.Haskell.Lib.Pairs as Pairs-import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings-import qualified Hydra.Names as Names-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational-import qualified Hydra.Serialization as Serialization-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -61,7 +61,7 @@ Syntax.additiveExpression_BinaryLhs = ae, Syntax.additiveExpression_BinaryRhs = me})) (Syntax.AdditiveExpressionUnary (Optionals.withDefault dummyMult (Lists.head exprs))) (Lists.drop 1 exprs)) -addInScopeVar :: Core.Name -> Environment.Aliases -> Environment.Aliases+addInScopeVar :: Model.Name -> Environment.Aliases -> Environment.Aliases addInScopeVar name aliases = Environment.Aliases { Environment.aliasesCurrentNamespace = (Environment.aliasesCurrentNamespace aliases),@@ -78,7 +78,7 @@ Environment.aliasesMethodCodomain = (Environment.aliasesMethodCodomain aliases), Environment.aliasesThunkedVars = (Environment.aliasesThunkedVars aliases)} -addInScopeVars :: [Core.Name] -> Environment.Aliases -> Environment.Aliases+addInScopeVars :: [Model.Name] -> Environment.Aliases -> Environment.Aliases addInScopeVars names aliases = Lists.foldl (\a -> \n -> addInScopeVar n a) aliases names addJavaTypeParameter :: Syntax.ReferenceType -> Syntax.Type -> t0 -> Either Errors.Error Syntax.Type@@ -102,7 +102,7 @@ Syntax.ReferenceTypeArray _ -> Left (Errors.ErrorOther (Errors.OtherError "expected a Java class or interface type, or a variable")) Syntax.TypePrimitive _ -> Left (Errors.ErrorOther (Errors.OtherError "expected a reference type")) -addVarRename :: Core.Name -> Core.Name -> Environment.Aliases -> Environment.Aliases+addVarRename :: Model.Name -> Model.Name -> Environment.Aliases -> Environment.Aliases addVarRename original renamed aliases = Environment.Aliases { Environment.aliasesCurrentNamespace = (Environment.aliasesCurrentNamespace aliases),@@ -126,7 +126,7 @@ varId])), Syntax.expressionNameIdentifier = fieldId} -fieldNameToJavaExpression :: Core.Name -> Syntax.Expression+fieldNameToJavaExpression :: Model.Name -> Syntax.Expression fieldNameToJavaExpression fname = Syntax.ExpressionAssignment (Syntax.AssignmentExpressionConditional (Syntax.ConditionalExpressionSimple (Syntax.ConditionalOrExpression [ Syntax.ConditionalAndExpression [@@ -135,14 +135,14 @@ Syntax.AndExpression [ Syntax.EqualityExpressionUnary (Syntax.RelationalExpressionSimple (Syntax.ShiftExpressionUnary (Syntax.AdditiveExpressionUnary (Syntax.MultiplicativeExpressionUnary (Syntax.UnaryExpressionOther (Syntax.UnaryExpressionNotPlusMinusPostfix (Syntax.PostfixExpressionName (javaIdentifierToJavaExpressionName (fieldNameToJavaIdentifier fname)))))))))]]]]]))) -fieldNameToJavaIdentifier :: Core.Name -> Syntax.Identifier-fieldNameToJavaIdentifier fname = javaIdentifier (Core.unName fname)+fieldNameToJavaIdentifier :: Model.Name -> Syntax.Identifier+fieldNameToJavaIdentifier fname = javaIdentifier (Model.unName fname) -fieldNameToJavaVariableDeclarator :: Core.Name -> Syntax.VariableDeclarator-fieldNameToJavaVariableDeclarator fname = javaVariableDeclarator (javaIdentifier (Core.unName fname)) Nothing+fieldNameToJavaVariableDeclarator :: Model.Name -> Syntax.VariableDeclarator+fieldNameToJavaVariableDeclarator fname = javaVariableDeclarator (javaIdentifier (Model.unName fname)) Nothing -fieldNameToJavaVariableDeclaratorId :: Core.Name -> Syntax.VariableDeclaratorId-fieldNameToJavaVariableDeclaratorId fname = javaVariableDeclaratorId (javaIdentifier (Core.unName fname))+fieldNameToJavaVariableDeclaratorId :: Model.Name -> Syntax.VariableDeclaratorId+fieldNameToJavaVariableDeclaratorId fname = javaVariableDeclaratorId (javaIdentifier (Model.unName fname)) finalVarDeclarationStatement :: Syntax.Identifier -> Syntax.Expression -> Syntax.BlockStatement finalVarDeclarationStatement id rhs =@@ -249,7 +249,7 @@ Syntax.primitiveTypeWithAnnotationsAnnotations = []}, Syntax.castExpression_PrimitiveExpression = expr}) -javaClassDeclaration :: Environment.Aliases -> [Syntax.TypeParameter] -> Core.Name -> [Syntax.ClassModifier] -> Maybe Core.Name -> [Syntax.InterfaceType] -> [Syntax.ClassBodyDeclarationWithComments] -> Syntax.ClassDeclaration+javaClassDeclaration :: Environment.Aliases -> [Syntax.TypeParameter] -> Model.Name -> [Syntax.ClassModifier] -> Maybe Model.Name -> [Syntax.InterfaceType] -> [Syntax.ClassBodyDeclarationWithComments] -> Syntax.ClassDeclaration javaClassDeclaration aliases tparams elName mods supname impls bodyDecls = let extends_ = Optionals.map (\n -> nameToJavaClassType aliases True [] n Nothing) supname@@ -306,7 +306,7 @@ Syntax.annotatedIdentifierIdentifier = id}], Syntax.classOrInterfaceTypeToInstantiateTypeArguments = targs} -javaDeclName :: Core.Name -> Syntax.TypeIdentifier+javaDeclName :: Model.Name -> Syntax.TypeIdentifier javaDeclName name = Syntax.TypeIdentifier (javaVariableName name) javaDoubleCastExpression :: Syntax.ReferenceType -> Syntax.ReferenceType -> Syntax.UnaryExpression -> Syntax.CastExpression@@ -459,13 +459,13 @@ javaInterfaceDeclarationToJavaClassBodyDeclaration nid = Syntax.ClassBodyDeclarationClassMember (Syntax.ClassMemberDeclarationInterface (Syntax.InterfaceDeclarationNormalInterface nid)) -javaLambda :: Core.Name -> Syntax.Expression -> Syntax.Expression+javaLambda :: Model.Name -> Syntax.Expression -> Syntax.Expression javaLambda v body = Syntax.ExpressionLambda (Syntax.LambdaExpression { Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersSingle (variableToJavaIdentifier v)), Syntax.lambdaExpressionBody = (Syntax.LambdaBodyExpression body)}) -javaLambdaFromBlock :: Core.Name -> Syntax.Block -> Syntax.Expression+javaLambdaFromBlock :: Model.Name -> Syntax.Block -> Syntax.Expression javaLambdaFromBlock v block = Syntax.ExpressionLambda (Syntax.LambdaExpression { Syntax.lambdaExpressionParameters = (Syntax.LambdaParametersSingle (variableToJavaIdentifier v)),@@ -672,7 +672,7 @@ javaThrowStatement e = Syntax.StatementWithoutTrailing (Syntax.StatementWithoutTrailingSubstatementThrow (Syntax.ThrowStatement e)) -javaTypeFromTypeName :: Environment.Aliases -> Core.Name -> Syntax.Type+javaTypeFromTypeName :: Environment.Aliases -> Model.Name -> Syntax.Type javaTypeFromTypeName aliases elName = javaTypeVariableToType (Syntax.TypeVariable { Syntax.typeVariableAnnotations = [],@@ -700,7 +700,7 @@ Syntax.typeParameterIdentifier = (javaTypeIdentifier v), Syntax.typeParameterBound = Nothing} -javaTypeToJavaFormalParameter :: Syntax.Type -> Core.Name -> Syntax.FormalParameter+javaTypeToJavaFormalParameter :: Syntax.Type -> Model.Name -> Syntax.FormalParameter javaTypeToJavaFormalParameter jt fname = Syntax.FormalParameterSimple (Syntax.FormalParameter_Simple { Syntax.formalParameter_SimpleModifiers = [],@@ -758,14 +758,14 @@ Syntax.variableDeclaratorIdIdentifier = id, Syntax.variableDeclaratorIdDims = Nothing} -javaVariableName :: Core.Name -> Syntax.Identifier-javaVariableName name = javaIdentifier (Names.localNameOf name)+javaVariableName :: Model.Name -> Syntax.Identifier+javaVariableName name = javaIdentifier (CoreNames.localNameOf name) -lookupJavaVarName :: Environment.Aliases -> Core.Name -> Core.Name+lookupJavaVarName :: Environment.Aliases -> Model.Name -> Model.Name lookupJavaVarName aliases name = Optionals.match (Maps.lookup name (Environment.aliasesVarRenames aliases)) name (\renamed -> renamed) -makeConstructor :: Environment.Aliases -> Core.Name -> Bool -> [Syntax.FormalParameter] -> [Syntax.BlockStatement] -> Syntax.ClassBodyDeclaration+makeConstructor :: Environment.Aliases -> Model.Name -> Bool -> [Syntax.FormalParameter] -> [Syntax.BlockStatement] -> Syntax.ClassBodyDeclaration makeConstructor aliases elName private params stmts = let nm = Syntax.SimpleTypeName (nameToJavaTypeIdentifier aliases False elName)@@ -823,7 +823,7 @@ Syntax.methodInvocationHeader = header, Syntax.methodInvocationArguments = args}) -nameToJavaClassType :: Environment.Aliases -> Bool -> [Syntax.TypeArgument] -> Core.Name -> Maybe String -> Syntax.ClassType+nameToJavaClassType :: Environment.Aliases -> Bool -> [Syntax.TypeArgument] -> Model.Name -> Maybe String -> Syntax.ClassType nameToJavaClassType aliases qualify args name mlocal = let result = nameToQualifiedJavaName aliases qualify name mlocal@@ -835,30 +835,30 @@ Syntax.classTypeIdentifier = id, Syntax.classTypeArguments = args} -nameToJavaName :: Environment.Aliases -> Core.Name -> Syntax.Identifier+nameToJavaName :: Environment.Aliases -> Model.Name -> Syntax.Identifier nameToJavaName aliases name = - let qn = Names.qualifyName name+ let qn = CoreNames.qualifyName name ns_ = Util.qualifiedNameModuleName qn local = Util.qualifiedNameLocal qn- in (Logic.ifElse (isEscaped (Core.unName name)) (Syntax.Identifier (sanitizeJavaName local)) (Optionals.match ns_ (Syntax.Identifier local) (\gname ->+ in (Logic.ifElse (isEscaped (Model.unName name)) (Syntax.Identifier (sanitizeJavaName local)) (Optionals.match ns_ (Syntax.Identifier local) (\gname -> let parts = Optionals.match (Maps.lookup gname (Environment.aliasesPackages aliases)) (Strings.splitOn "." (Packaging.unModuleName gname)) (\pkgName -> Lists.map (\i -> Syntax.unIdentifier i) (Syntax.unPackageName pkgName)) allParts = Lists.concat2 parts [ sanitizeJavaName local] in (Syntax.Identifier (Strings.join "." allParts))))) -nameToJavaReferenceType :: Environment.Aliases -> Bool -> [Syntax.TypeArgument] -> Core.Name -> Maybe String -> Syntax.ReferenceType+nameToJavaReferenceType :: Environment.Aliases -> Bool -> [Syntax.TypeArgument] -> Model.Name -> Maybe String -> Syntax.ReferenceType nameToJavaReferenceType aliases qualify args name mlocal = Syntax.ReferenceTypeClassOrInterface (Syntax.ClassOrInterfaceTypeClass (nameToJavaClassType aliases qualify args name mlocal)) -nameToJavaTypeIdentifier :: Environment.Aliases -> Bool -> Core.Name -> Syntax.TypeIdentifier+nameToJavaTypeIdentifier :: Environment.Aliases -> Bool -> Model.Name -> Syntax.TypeIdentifier nameToJavaTypeIdentifier aliases qualify name = Pairs.first (nameToQualifiedJavaName aliases qualify name Nothing) -nameToQualifiedJavaName :: Environment.Aliases -> Bool -> Core.Name -> Maybe String -> (Syntax.TypeIdentifier, Syntax.ClassTypeQualifier)+nameToQualifiedJavaName :: Environment.Aliases -> Bool -> Model.Name -> Maybe String -> (Syntax.TypeIdentifier, Syntax.ClassTypeQualifier) nameToQualifiedJavaName aliases qualify name mlocal = - let qn = Names.qualifyName name+ let qn = CoreNames.qualifyName name ns_ = Util.qualifiedNameModuleName qn local = Util.qualifiedNameLocal qn alias =@@ -896,9 +896,10 @@ overlayLibPairFor :: String -> (Packaging.ModuleName, Syntax.PackageName) overlayLibPairFor sub = (- Packaging.ModuleName (Strings.concat2 "hydra.lib." sub),+ Packaging.ModuleName (Strings.concat2 "hydra.core.lib." sub), (JavaNames.javaPackageName (Lists.concat2 [ "hydra",+ "core", "overlay", "java", "lib"] [@@ -942,7 +943,7 @@ Syntax.classTypeIdentifier = (javaTypeIdentifier JavaNames.visitorName), Syntax.classTypeArguments = (Lists.concat2 typeArgs [ Syntax.TypeArgumentReference visitorTypeVariable])})- param = javaTypeToJavaFormalParameter ref (Core.Name "visitor")+ param = javaTypeToJavaFormalParameter ref (Model.Name "visitor") result = javaTypeToJavaResult (Syntax.TypeReference visitorTypeVariable) returnExpr = javaMethodInvocationToJavaExpression (methodInvocationStatic (Syntax.Identifier "visitor") (Syntax.Identifier JavaNames.visitMethodName) [@@ -952,7 +953,7 @@ in (methodDeclaration mods tparams anns JavaNames.acceptMethodName [ param] result body) -toAssignStmt :: Core.Name -> Syntax.Statement+toAssignStmt :: Model.Name -> Syntax.Statement toAssignStmt fname = let id = fieldNameToJavaIdentifier fname@@ -995,14 +996,14 @@ unescape :: String -> String unescape s = Strings.fromList (Lists.drop 1 (Strings.toList s)) -uniqueVarName :: Environment.Aliases -> Core.Name -> Core.Name+uniqueVarName :: Environment.Aliases -> Model.Name -> Model.Name uniqueVarName aliases name =- Logic.ifElse (Sets.member name (Environment.aliasesInScopeJavaVars aliases)) (uniqueVarName_go aliases (Core.unName name) 2) name+ Logic.ifElse (Sets.member name (Environment.aliasesInScopeJavaVars aliases)) (uniqueVarName_go aliases (Model.unName name) 2) name -uniqueVarName_go :: Environment.Aliases -> String -> Int -> Core.Name+uniqueVarName_go :: Environment.Aliases -> String -> Int -> Model.Name uniqueVarName_go aliases base n = - let candidate = Core.Name (Strings.concat2 base (Literals.printInt32 n))+ let candidate = Model.Name (Strings.concat2 base (Literals.printInt32 n)) in (Logic.ifElse (Sets.member candidate (Environment.aliasesInScopeJavaVars aliases)) (uniqueVarName_go aliases base (Math.add n 1)) candidate) varDeclarationStatement :: Syntax.Identifier -> Syntax.Expression -> Syntax.BlockStatement@@ -1024,22 +1025,22 @@ Syntax.localVariableDeclarationDeclarators = [ vdec]}))) -variableToJavaIdentifier :: Core.Name -> Syntax.Identifier+variableToJavaIdentifier :: Model.Name -> Syntax.Identifier variableToJavaIdentifier name = - let v = Core.unName name+ let v = Model.unName name in (Logic.ifElse (Equality.equal v "_") (Syntax.Identifier "ignored") (Syntax.Identifier (sanitizeJavaName v))) -variantClassName :: Bool -> Core.Name -> Core.Name -> Core.Name+variantClassName :: Bool -> Model.Name -> Model.Name -> Model.Name variantClassName qualify elName fname = - let qn = Names.qualifyName elName+ let qn = CoreNames.qualifyName elName ns_ = Util.qualifiedNameModuleName qn local = Util.qualifiedNameLocal qn- flocal = Formatting.capitalize (Core.unName fname)+ flocal = Formatting.capitalize (Model.unName fname) local1 = Logic.ifElse qualify (Strings.concat2 (Strings.concat2 local ".") flocal) (Logic.ifElse (Equality.equal flocal local) (Strings.concat2 flocal "_") flocal)- in (Names.unqualifyName (Util.QualifiedName {+ in (CoreNames.unqualifyName (Util.QualifiedName { Util.qualifiedNameModuleName = ns_, Util.qualifiedNameLocal = local1}))