hydra-java 0.17.0 → 0.17.1
raw patch · 9 files changed
+17125/−15724 lines, 9 filesdep ~hydra-jvmdep ~hydra-kernelPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: hydra-jvm, hydra-kernel
API changes (from Hackage documentation)
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer :: TypedTerm ArrayCreationExpressionWithInitializer -> TypedTerm ArrayCreationExpression
- Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer :: TypedTerm ArrayCreationExpressionWithoutInitializer -> TypedTerm ArrayCreationExpression
- Hydra.Java.Coder: applyOvergenSubstToTermAnnotations_go :: Map Name Type -> Graph -> Term -> Term
- Hydra.Java.Syntax: ArrayCreationExpressionWithInitializer_ :: ArrayCreationExpressionWithInitializer -> ArrayCreationExpression
- Hydra.Java.Syntax: ArrayCreationExpressionWithoutInitializer_ :: ArrayCreationExpressionWithoutInitializer -> ArrayCreationExpression
- Hydra.Java.Syntax: _ArrayCreationExpression_withInitializer :: Name
- Hydra.Java.Syntax: _ArrayCreationExpression_withoutInitializer :: Name
+ Hydra.Dsl.Java.Environment: aliasesAliases :: TypedName Aliases
+ Hydra.Dsl.Java.Environment: javaEnvironmentJavaEnvironment :: TypedName JavaEnvironment
+ Hydra.Dsl.Java.Environment: javaFeaturesJavaFeatures :: TypedName JavaFeatures
+ Hydra.Dsl.Java.Environment: javaSymbolClassJavaSymbolClass :: TypedName 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: additionalBoundAdditionalBound :: TypedName AdditionalBound
+ Hydra.Dsl.Java.Syntax: additiveExpressionAdditiveExpression :: TypedName AdditiveExpression
+ Hydra.Dsl.Java.Syntax: additiveExpression_BinaryAdditiveExpression_Binary :: TypedName AdditiveExpression_Binary
+ Hydra.Dsl.Java.Syntax: ambiguousNameAmbiguousName :: TypedName AmbiguousName
+ Hydra.Dsl.Java.Syntax: andExpressionAndExpression :: TypedName AndExpression
+ Hydra.Dsl.Java.Syntax: annotatedIdentifierAnnotatedIdentifier :: TypedName AnnotatedIdentifier
+ Hydra.Dsl.Java.Syntax: annotationAnnotation :: TypedName Annotation
+ Hydra.Dsl.Java.Syntax: annotationInterfaceBodyAnnotationInterfaceBody :: TypedName AnnotationInterfaceBody
+ Hydra.Dsl.Java.Syntax: annotationInterfaceDeclarationAnnotationInterfaceDeclaration :: TypedName AnnotationInterfaceDeclaration
+ Hydra.Dsl.Java.Syntax: annotationInterfaceElementDeclarationAnnotationInterfaceElementDeclaration :: TypedName AnnotationInterfaceElementDeclaration
+ Hydra.Dsl.Java.Syntax: annotationInterfaceElementModifierAnnotationInterfaceElementModifier :: TypedName AnnotationInterfaceElementModifier
+ Hydra.Dsl.Java.Syntax: annotationInterfaceMemberDeclarationAnnotationInterfaceMemberDeclaration :: TypedName AnnotationInterfaceMemberDeclaration
+ Hydra.Dsl.Java.Syntax: arrayAccessArrayAccess :: TypedName ArrayAccess
+ Hydra.Dsl.Java.Syntax: arrayAccess_VariantArrayAccess_Variant :: TypedName 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: arrayCreationExpressionWithInitializer_ClassOrInterfaceArrayCreationExpressionWithInitializer_ClassOrInterface :: TypedName ArrayCreationExpressionWithInitializer_ClassOrInterface
+ Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithInitializer_PrimitiveArrayCreationExpressionWithInitializer_Primitive :: TypedName ArrayCreationExpressionWithInitializer_Primitive
+ Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializerArrayCreationExpressionWithoutInitializer :: TypedName ArrayCreationExpressionWithoutInitializer
+ Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_ClassOrInterfaceArrayCreationExpressionWithoutInitializer_ClassOrInterface :: TypedName ArrayCreationExpressionWithoutInitializer_ClassOrInterface
+ Hydra.Dsl.Java.Syntax: arrayCreationExpressionWithoutInitializer_PrimitiveArrayCreationExpressionWithoutInitializer_Primitive :: TypedName ArrayCreationExpressionWithoutInitializer_Primitive
+ Hydra.Dsl.Java.Syntax: arrayInitializerArrayInitializer :: TypedName ArrayInitializer
+ Hydra.Dsl.Java.Syntax: arrayTypeArrayType :: TypedName ArrayType
+ Hydra.Dsl.Java.Syntax: arrayType_VariantArrayType_Variant :: TypedName ArrayType_Variant
+ Hydra.Dsl.Java.Syntax: assertStatementAssertStatement :: TypedName AssertStatement
+ Hydra.Dsl.Java.Syntax: assertStatement_PairAssertStatement_Pair :: TypedName AssertStatement_Pair
+ Hydra.Dsl.Java.Syntax: assignmentAssignment :: TypedName Assignment
+ Hydra.Dsl.Java.Syntax: assignmentExpressionAssignmentExpression :: TypedName AssignmentExpression
+ Hydra.Dsl.Java.Syntax: assignmentOperatorAssignmentOperator :: TypedName AssignmentOperator
+ Hydra.Dsl.Java.Syntax: basicForStatementBasicForStatement :: TypedName BasicForStatement
+ Hydra.Dsl.Java.Syntax: basicForStatementNoShortIfBasicForStatementNoShortIf :: TypedName BasicForStatementNoShortIf
+ Hydra.Dsl.Java.Syntax: blockBlock :: TypedName Block
+ Hydra.Dsl.Java.Syntax: blockStatementBlockStatement :: TypedName BlockStatement
+ Hydra.Dsl.Java.Syntax: booleanArrayBooleanArray :: TypedName BooleanArray
+ Hydra.Dsl.Java.Syntax: breakStatementBreakStatement :: TypedName BreakStatement
+ Hydra.Dsl.Java.Syntax: caseConstantCaseConstant :: TypedName CaseConstant
+ Hydra.Dsl.Java.Syntax: casePatternCasePattern :: TypedName CasePattern
+ Hydra.Dsl.Java.Syntax: castExpressionCastExpression :: TypedName CastExpression
+ Hydra.Dsl.Java.Syntax: castExpression_LambdaCastExpression_Lambda :: TypedName CastExpression_Lambda
+ Hydra.Dsl.Java.Syntax: castExpression_NotPlusMinusCastExpression_NotPlusMinus :: TypedName CastExpression_NotPlusMinus
+ Hydra.Dsl.Java.Syntax: castExpression_PrimitiveCastExpression_Primitive :: TypedName CastExpression_Primitive
+ Hydra.Dsl.Java.Syntax: castExpression_RefAndBoundsCastExpression_RefAndBounds :: TypedName CastExpression_RefAndBounds
+ Hydra.Dsl.Java.Syntax: catchClauseCatchClause :: TypedName CatchClause
+ Hydra.Dsl.Java.Syntax: catchFormalParameterCatchFormalParameter :: TypedName CatchFormalParameter
+ Hydra.Dsl.Java.Syntax: catchTypeCatchType :: TypedName CatchType
+ Hydra.Dsl.Java.Syntax: catchesCatches :: TypedName Catches
+ Hydra.Dsl.Java.Syntax: classBodyClassBody :: TypedName ClassBody
+ Hydra.Dsl.Java.Syntax: classBodyDeclarationClassBodyDeclaration :: TypedName ClassBodyDeclaration
+ Hydra.Dsl.Java.Syntax: classBodyDeclarationWithCommentsClassBodyDeclarationWithComments :: TypedName ClassBodyDeclarationWithComments
+ Hydra.Dsl.Java.Syntax: classDeclarationClassDeclaration :: TypedName ClassDeclaration
+ Hydra.Dsl.Java.Syntax: classInstanceCreationExpressionClassInstanceCreationExpression :: TypedName ClassInstanceCreationExpression
+ Hydra.Dsl.Java.Syntax: classInstanceCreationExpression_QualifierClassInstanceCreationExpression_Qualifier :: TypedName ClassInstanceCreationExpression_Qualifier
+ Hydra.Dsl.Java.Syntax: classLiteralClassLiteral :: TypedName ClassLiteral
+ Hydra.Dsl.Java.Syntax: classMemberDeclarationClassMemberDeclaration :: TypedName ClassMemberDeclaration
+ Hydra.Dsl.Java.Syntax: classModifierClassModifier :: TypedName ClassModifier
+ Hydra.Dsl.Java.Syntax: classOrInterfaceTypeClassOrInterfaceType :: TypedName ClassOrInterfaceType
+ Hydra.Dsl.Java.Syntax: classOrInterfaceTypeToInstantiateClassOrInterfaceTypeToInstantiate :: TypedName ClassOrInterfaceTypeToInstantiate
+ Hydra.Dsl.Java.Syntax: classTypeClassType :: TypedName ClassType
+ Hydra.Dsl.Java.Syntax: classTypeQualifierClassTypeQualifier :: TypedName ClassTypeQualifier
+ Hydra.Dsl.Java.Syntax: compactConstructorDeclarationCompactConstructorDeclaration :: TypedName CompactConstructorDeclaration
+ Hydra.Dsl.Java.Syntax: compilationUnitCompilationUnit :: TypedName CompilationUnit
+ Hydra.Dsl.Java.Syntax: conditionalAndExpressionConditionalAndExpression :: TypedName ConditionalAndExpression
+ Hydra.Dsl.Java.Syntax: conditionalExpressionConditionalExpression :: TypedName ConditionalExpression
+ Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryCondConditionalExpression_TernaryCond :: TypedName ConditionalExpression_TernaryCond
+ Hydra.Dsl.Java.Syntax: conditionalExpression_TernaryLambdaConditionalExpression_TernaryLambda :: TypedName ConditionalExpression_TernaryLambda
+ Hydra.Dsl.Java.Syntax: conditionalOrExpressionConditionalOrExpression :: TypedName ConditionalOrExpression
+ Hydra.Dsl.Java.Syntax: constantDeclarationConstantDeclaration :: TypedName ConstantDeclaration
+ Hydra.Dsl.Java.Syntax: constantExpressionConstantExpression :: TypedName ConstantExpression
+ Hydra.Dsl.Java.Syntax: constantModifierConstantModifier :: TypedName ConstantModifier
+ Hydra.Dsl.Java.Syntax: constructorBodyConstructorBody :: TypedName ConstructorBody
+ Hydra.Dsl.Java.Syntax: constructorDeclarationConstructorDeclaration :: TypedName ConstructorDeclaration
+ Hydra.Dsl.Java.Syntax: constructorDeclaratorConstructorDeclarator :: TypedName ConstructorDeclarator
+ Hydra.Dsl.Java.Syntax: constructorModifierConstructorModifier :: TypedName ConstructorModifier
+ Hydra.Dsl.Java.Syntax: continueStatementContinueStatement :: TypedName ContinueStatement
+ Hydra.Dsl.Java.Syntax: defaultValueDefaultValue :: TypedName DefaultValue
+ Hydra.Dsl.Java.Syntax: dimExprDimExpr :: TypedName DimExpr
+ Hydra.Dsl.Java.Syntax: dimsDims :: TypedName Dims
+ Hydra.Dsl.Java.Syntax: doStatementDoStatement :: TypedName DoStatement
+ Hydra.Dsl.Java.Syntax: elementValueArrayInitializerElementValueArrayInitializer :: TypedName ElementValueArrayInitializer
+ Hydra.Dsl.Java.Syntax: elementValueElementValue :: TypedName ElementValue
+ Hydra.Dsl.Java.Syntax: elementValuePairElementValuePair :: TypedName ElementValuePair
+ Hydra.Dsl.Java.Syntax: enhancedForCondEnhancedForCond :: TypedName EnhancedForCond
+ Hydra.Dsl.Java.Syntax: enhancedForStatementEnhancedForStatement :: TypedName EnhancedForStatement
+ Hydra.Dsl.Java.Syntax: enhancedForStatementNoShortIfEnhancedForStatementNoShortIf :: TypedName EnhancedForStatementNoShortIf
+ Hydra.Dsl.Java.Syntax: enumBodyEnumBody :: TypedName EnumBody
+ Hydra.Dsl.Java.Syntax: enumBody_ElementEnumBody_Element :: TypedName EnumBody_Element
+ Hydra.Dsl.Java.Syntax: enumConstantEnumConstant :: TypedName EnumConstant
+ Hydra.Dsl.Java.Syntax: enumConstantModifierEnumConstantModifier :: TypedName EnumConstantModifier
+ Hydra.Dsl.Java.Syntax: enumDeclarationEnumDeclaration :: TypedName EnumDeclaration
+ Hydra.Dsl.Java.Syntax: equalityExpressionEqualityExpression :: TypedName EqualityExpression
+ Hydra.Dsl.Java.Syntax: equalityExpression_BinaryEqualityExpression_Binary :: TypedName EqualityExpression_Binary
+ Hydra.Dsl.Java.Syntax: exceptionTypeExceptionType :: TypedName ExceptionType
+ Hydra.Dsl.Java.Syntax: exclusiveOrExpressionExclusiveOrExpression :: TypedName ExclusiveOrExpression
+ Hydra.Dsl.Java.Syntax: explicitConstructorInvocationExplicitConstructorInvocation :: TypedName ExplicitConstructorInvocation
+ Hydra.Dsl.Java.Syntax: explicitConstructorInvocation_VariantExplicitConstructorInvocation_Variant :: TypedName ExplicitConstructorInvocation_Variant
+ Hydra.Dsl.Java.Syntax: expressionExpression :: TypedName Expression
+ Hydra.Dsl.Java.Syntax: expressionNameExpressionName :: TypedName ExpressionName
+ Hydra.Dsl.Java.Syntax: expressionStatementExpressionStatement :: TypedName ExpressionStatement
+ Hydra.Dsl.Java.Syntax: fieldAccessFieldAccess :: TypedName FieldAccess
+ Hydra.Dsl.Java.Syntax: fieldAccess_QualifierFieldAccess_Qualifier :: TypedName FieldAccess_Qualifier
+ Hydra.Dsl.Java.Syntax: fieldDeclarationFieldDeclaration :: TypedName FieldDeclaration
+ Hydra.Dsl.Java.Syntax: fieldModifierFieldModifier :: TypedName FieldModifier
+ Hydra.Dsl.Java.Syntax: finallyFinally :: TypedName Finally
+ Hydra.Dsl.Java.Syntax: floatingPointLiteralFloatingPointLiteral :: TypedName FloatingPointLiteral
+ Hydra.Dsl.Java.Syntax: floatingPointTypeFloatingPointType :: TypedName FloatingPointType
+ Hydra.Dsl.Java.Syntax: forCondForCond :: TypedName ForCond
+ Hydra.Dsl.Java.Syntax: forInitForInit :: TypedName ForInit
+ Hydra.Dsl.Java.Syntax: forStatementForStatement :: TypedName ForStatement
+ Hydra.Dsl.Java.Syntax: forStatementNoShortIfForStatementNoShortIf :: TypedName ForStatementNoShortIf
+ Hydra.Dsl.Java.Syntax: forUpdateForUpdate :: TypedName ForUpdate
+ Hydra.Dsl.Java.Syntax: formalParameterFormalParameter :: TypedName FormalParameter
+ Hydra.Dsl.Java.Syntax: formalParameter_SimpleFormalParameter_Simple :: TypedName FormalParameter_Simple
+ Hydra.Dsl.Java.Syntax: guardGuard :: TypedName Guard
+ Hydra.Dsl.Java.Syntax: identifierIdentifier :: TypedName Identifier
+ Hydra.Dsl.Java.Syntax: ifThenElseStatementIfThenElseStatement :: TypedName IfThenElseStatement
+ Hydra.Dsl.Java.Syntax: ifThenElseStatementNoShortIfIfThenElseStatementNoShortIf :: TypedName IfThenElseStatementNoShortIf
+ Hydra.Dsl.Java.Syntax: ifThenStatementIfThenStatement :: TypedName IfThenStatement
+ Hydra.Dsl.Java.Syntax: importDeclarationImportDeclaration :: TypedName ImportDeclaration
+ Hydra.Dsl.Java.Syntax: inclusiveOrExpressionInclusiveOrExpression :: TypedName InclusiveOrExpression
+ Hydra.Dsl.Java.Syntax: instanceInitializerInstanceInitializer :: TypedName InstanceInitializer
+ Hydra.Dsl.Java.Syntax: instanceofExpressionInstanceofExpression :: TypedName InstanceofExpression
+ Hydra.Dsl.Java.Syntax: instanceofExpression_RhsInstanceofExpression_Rhs :: TypedName InstanceofExpression_Rhs
+ Hydra.Dsl.Java.Syntax: integerLiteralIntegerLiteral :: TypedName IntegerLiteral
+ Hydra.Dsl.Java.Syntax: integralTypeIntegralType :: TypedName IntegralType
+ Hydra.Dsl.Java.Syntax: interfaceBodyInterfaceBody :: TypedName InterfaceBody
+ Hydra.Dsl.Java.Syntax: interfaceDeclarationInterfaceDeclaration :: TypedName InterfaceDeclaration
+ Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationInterfaceMemberDeclaration :: TypedName InterfaceMemberDeclaration
+ Hydra.Dsl.Java.Syntax: interfaceMemberDeclarationWithCommentsInterfaceMemberDeclarationWithComments :: TypedName InterfaceMemberDeclarationWithComments
+ Hydra.Dsl.Java.Syntax: interfaceMethodDeclarationInterfaceMethodDeclaration :: TypedName InterfaceMethodDeclaration
+ Hydra.Dsl.Java.Syntax: interfaceMethodModifierInterfaceMethodModifier :: TypedName InterfaceMethodModifier
+ Hydra.Dsl.Java.Syntax: interfaceModifierInterfaceModifier :: TypedName InterfaceModifier
+ Hydra.Dsl.Java.Syntax: interfaceTypeInterfaceType :: TypedName InterfaceType
+ Hydra.Dsl.Java.Syntax: labeledStatementLabeledStatement :: TypedName LabeledStatement
+ Hydra.Dsl.Java.Syntax: labeledStatementNoShortIfLabeledStatementNoShortIf :: TypedName LabeledStatementNoShortIf
+ Hydra.Dsl.Java.Syntax: lambdaBodyLambdaBody :: TypedName LambdaBody
+ Hydra.Dsl.Java.Syntax: lambdaExpressionLambdaExpression :: TypedName LambdaExpression
+ Hydra.Dsl.Java.Syntax: lambdaParameterLambdaParameter :: TypedName LambdaParameter
+ Hydra.Dsl.Java.Syntax: lambdaParameterTypeLambdaParameterType :: TypedName LambdaParameterType
+ Hydra.Dsl.Java.Syntax: lambdaParameter_NormalLambdaParameter_Normal :: TypedName LambdaParameter_Normal
+ Hydra.Dsl.Java.Syntax: lambdaParametersLambdaParameters :: TypedName LambdaParameters
+ Hydra.Dsl.Java.Syntax: leftHandSideLeftHandSide :: TypedName LeftHandSide
+ Hydra.Dsl.Java.Syntax: literalLiteral :: TypedName Literal
+ Hydra.Dsl.Java.Syntax: localClassOrInterfaceDeclarationLocalClassOrInterfaceDeclaration :: TypedName LocalClassOrInterfaceDeclaration
+ Hydra.Dsl.Java.Syntax: localVariableDeclarationLocalVariableDeclaration :: TypedName LocalVariableDeclaration
+ Hydra.Dsl.Java.Syntax: localVariableDeclarationStatementLocalVariableDeclarationStatement :: TypedName LocalVariableDeclarationStatement
+ Hydra.Dsl.Java.Syntax: localVariableTypeLocalVariableType :: TypedName LocalVariableType
+ Hydra.Dsl.Java.Syntax: markerAnnotationMarkerAnnotation :: TypedName MarkerAnnotation
+ Hydra.Dsl.Java.Syntax: methodBodyMethodBody :: TypedName MethodBody
+ Hydra.Dsl.Java.Syntax: methodDeclarationMethodDeclaration :: TypedName MethodDeclaration
+ Hydra.Dsl.Java.Syntax: methodDeclaratorMethodDeclarator :: TypedName MethodDeclarator
+ Hydra.Dsl.Java.Syntax: methodHeaderMethodHeader :: TypedName MethodHeader
+ Hydra.Dsl.Java.Syntax: methodInvocationMethodInvocation :: TypedName MethodInvocation
+ Hydra.Dsl.Java.Syntax: methodInvocation_ComplexMethodInvocation_Complex :: TypedName MethodInvocation_Complex
+ Hydra.Dsl.Java.Syntax: methodInvocation_HeaderMethodInvocation_Header :: TypedName MethodInvocation_Header
+ Hydra.Dsl.Java.Syntax: methodInvocation_VariantMethodInvocation_Variant :: TypedName MethodInvocation_Variant
+ Hydra.Dsl.Java.Syntax: methodModifierMethodModifier :: TypedName MethodModifier
+ Hydra.Dsl.Java.Syntax: methodNameMethodName :: TypedName MethodName
+ Hydra.Dsl.Java.Syntax: methodReferenceMethodReference :: TypedName MethodReference
+ Hydra.Dsl.Java.Syntax: methodReference_ArrayMethodReference_Array :: TypedName MethodReference_Array
+ Hydra.Dsl.Java.Syntax: methodReference_ExpressionMethodReference_Expression :: TypedName MethodReference_Expression
+ Hydra.Dsl.Java.Syntax: methodReference_NewMethodReference_New :: TypedName MethodReference_New
+ Hydra.Dsl.Java.Syntax: methodReference_PrimaryMethodReference_Primary :: TypedName MethodReference_Primary
+ Hydra.Dsl.Java.Syntax: methodReference_ReferenceTypeMethodReference_ReferenceType :: TypedName MethodReference_ReferenceType
+ Hydra.Dsl.Java.Syntax: methodReference_SuperMethodReference_Super :: TypedName MethodReference_Super
+ Hydra.Dsl.Java.Syntax: modularCompilationUnitModularCompilationUnit :: TypedName ModularCompilationUnit
+ Hydra.Dsl.Java.Syntax: moduleDeclarationModuleDeclaration :: TypedName ModuleDeclaration
+ Hydra.Dsl.Java.Syntax: moduleDirectiveModuleDirective :: TypedName ModuleDirective
+ Hydra.Dsl.Java.Syntax: moduleDirective_ExportsOrOpensModuleDirective_ExportsOrOpens :: TypedName ModuleDirective_ExportsOrOpens
+ Hydra.Dsl.Java.Syntax: moduleDirective_ProvidesModuleDirective_Provides :: TypedName ModuleDirective_Provides
+ Hydra.Dsl.Java.Syntax: moduleDirective_RequiresModuleDirective_Requires :: TypedName ModuleDirective_Requires
+ Hydra.Dsl.Java.Syntax: moduleNameModuleName :: TypedName ModuleName
+ Hydra.Dsl.Java.Syntax: multiplicativeExpressionMultiplicativeExpression :: TypedName MultiplicativeExpression
+ Hydra.Dsl.Java.Syntax: multiplicativeExpression_BinaryMultiplicativeExpression_Binary :: TypedName MultiplicativeExpression_Binary
+ Hydra.Dsl.Java.Syntax: normalAnnotationNormalAnnotation :: TypedName NormalAnnotation
+ Hydra.Dsl.Java.Syntax: normalClassDeclarationNormalClassDeclaration :: TypedName NormalClassDeclaration
+ Hydra.Dsl.Java.Syntax: normalInterfaceDeclarationNormalInterfaceDeclaration :: TypedName NormalInterfaceDeclaration
+ Hydra.Dsl.Java.Syntax: numericTypeArrayNumericTypeArray :: TypedName NumericTypeArray
+ Hydra.Dsl.Java.Syntax: numericTypeNumericType :: TypedName NumericType
+ Hydra.Dsl.Java.Syntax: ordinaryCompilationUnitOrdinaryCompilationUnit :: TypedName OrdinaryCompilationUnit
+ Hydra.Dsl.Java.Syntax: packageDeclarationPackageDeclaration :: TypedName PackageDeclaration
+ Hydra.Dsl.Java.Syntax: packageModifierPackageModifier :: TypedName PackageModifier
+ Hydra.Dsl.Java.Syntax: packageNamePackageName :: TypedName PackageName
+ Hydra.Dsl.Java.Syntax: packageOrTypeNamePackageOrTypeName :: TypedName PackageOrTypeName
+ Hydra.Dsl.Java.Syntax: patternPattern :: TypedName Pattern
+ Hydra.Dsl.Java.Syntax: postDecrementExpressionPostDecrementExpression :: TypedName PostDecrementExpression
+ Hydra.Dsl.Java.Syntax: postIncrementExpressionPostIncrementExpression :: TypedName PostIncrementExpression
+ Hydra.Dsl.Java.Syntax: postfixExpressionPostfixExpression :: TypedName PostfixExpression
+ Hydra.Dsl.Java.Syntax: preDecrementExpressionPreDecrementExpression :: TypedName PreDecrementExpression
+ Hydra.Dsl.Java.Syntax: preIncrementExpressionPreIncrementExpression :: TypedName PreIncrementExpression
+ Hydra.Dsl.Java.Syntax: primaryNoNewArrayExpressionPrimaryNoNewArrayExpression :: TypedName PrimaryNoNewArrayExpression
+ Hydra.Dsl.Java.Syntax: primaryPrimary :: TypedName Primary
+ Hydra.Dsl.Java.Syntax: primitiveTypePrimitiveType :: TypedName PrimitiveType
+ Hydra.Dsl.Java.Syntax: primitiveTypeWithAnnotationsPrimitiveTypeWithAnnotations :: TypedName PrimitiveTypeWithAnnotations
+ Hydra.Dsl.Java.Syntax: receiverParameterReceiverParameter :: TypedName ReceiverParameter
+ Hydra.Dsl.Java.Syntax: recordBodyDeclarationRecordBodyDeclaration :: TypedName RecordBodyDeclaration
+ Hydra.Dsl.Java.Syntax: recordBodyRecordBody :: TypedName RecordBody
+ Hydra.Dsl.Java.Syntax: recordComponentModifierRecordComponentModifier :: TypedName RecordComponentModifier
+ Hydra.Dsl.Java.Syntax: recordComponentRecordComponent :: TypedName RecordComponent
+ Hydra.Dsl.Java.Syntax: recordComponent_SimpleRecordComponent_Simple :: TypedName RecordComponent_Simple
+ Hydra.Dsl.Java.Syntax: recordDeclarationRecordDeclaration :: TypedName RecordDeclaration
+ Hydra.Dsl.Java.Syntax: recordHeaderRecordHeader :: TypedName RecordHeader
+ Hydra.Dsl.Java.Syntax: recordPatternRecordPattern :: TypedName RecordPattern
+ Hydra.Dsl.Java.Syntax: referenceTypeReferenceType :: TypedName ReferenceType
+ Hydra.Dsl.Java.Syntax: relationalExpressionRelationalExpression :: TypedName RelationalExpression
+ Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanEqualRelationalExpression_GreaterThanEqual :: TypedName RelationalExpression_GreaterThanEqual
+ Hydra.Dsl.Java.Syntax: relationalExpression_GreaterThanRelationalExpression_GreaterThan :: TypedName RelationalExpression_GreaterThan
+ Hydra.Dsl.Java.Syntax: relationalExpression_LessThanEqualRelationalExpression_LessThanEqual :: TypedName RelationalExpression_LessThanEqual
+ Hydra.Dsl.Java.Syntax: relationalExpression_LessThanRelationalExpression_LessThan :: TypedName RelationalExpression_LessThan
+ Hydra.Dsl.Java.Syntax: requiresModifierRequiresModifier :: TypedName RequiresModifier
+ Hydra.Dsl.Java.Syntax: resourceResource :: TypedName Resource
+ Hydra.Dsl.Java.Syntax: resourceSpecificationResourceSpecification :: TypedName ResourceSpecification
+ Hydra.Dsl.Java.Syntax: resource_LocalResource_Local :: TypedName Resource_Local
+ Hydra.Dsl.Java.Syntax: resultResult :: TypedName Result
+ Hydra.Dsl.Java.Syntax: returnStatementReturnStatement :: TypedName ReturnStatement
+ Hydra.Dsl.Java.Syntax: shiftExpressionShiftExpression :: TypedName ShiftExpression
+ Hydra.Dsl.Java.Syntax: shiftExpression_BinaryShiftExpression_Binary :: TypedName ShiftExpression_Binary
+ Hydra.Dsl.Java.Syntax: simpleTypeNameSimpleTypeName :: TypedName SimpleTypeName
+ Hydra.Dsl.Java.Syntax: singleElementAnnotationSingleElementAnnotation :: TypedName SingleElementAnnotation
+ Hydra.Dsl.Java.Syntax: singleStaticImportDeclarationSingleStaticImportDeclaration :: TypedName SingleStaticImportDeclaration
+ Hydra.Dsl.Java.Syntax: singleTypeImportDeclarationSingleTypeImportDeclaration :: TypedName SingleTypeImportDeclaration
+ Hydra.Dsl.Java.Syntax: statementExpressionStatementExpression :: TypedName StatementExpression
+ Hydra.Dsl.Java.Syntax: statementNoShortIfStatementNoShortIf :: TypedName StatementNoShortIf
+ Hydra.Dsl.Java.Syntax: statementStatement :: TypedName Statement
+ Hydra.Dsl.Java.Syntax: statementWithoutTrailingSubstatementStatementWithoutTrailingSubstatement :: TypedName StatementWithoutTrailingSubstatement
+ Hydra.Dsl.Java.Syntax: staticImportOnDemandDeclarationStaticImportOnDemandDeclaration :: TypedName StaticImportOnDemandDeclaration
+ Hydra.Dsl.Java.Syntax: staticInitializerStaticInitializer :: TypedName StaticInitializer
+ Hydra.Dsl.Java.Syntax: stringLiteralStringLiteral :: TypedName StringLiteral
+ Hydra.Dsl.Java.Syntax: switchBlockStatementGroupSwitchBlockStatementGroup :: TypedName SwitchBlockStatementGroup
+ Hydra.Dsl.Java.Syntax: switchBlockSwitchBlock :: TypedName SwitchBlock
+ Hydra.Dsl.Java.Syntax: switchBlock_LegacySwitchBlock_Legacy :: TypedName SwitchBlock_Legacy
+ Hydra.Dsl.Java.Syntax: switchExpressionSwitchExpression :: TypedName SwitchExpression
+ Hydra.Dsl.Java.Syntax: switchLabelSwitchLabel :: TypedName SwitchLabel
+ Hydra.Dsl.Java.Syntax: switchRuleSwitchRule :: TypedName SwitchRule
+ Hydra.Dsl.Java.Syntax: switchRule_BodySwitchRule_Body :: TypedName SwitchRule_Body
+ Hydra.Dsl.Java.Syntax: switchStatementSwitchStatement :: TypedName SwitchStatement
+ Hydra.Dsl.Java.Syntax: synchronizedStatementSynchronizedStatement :: TypedName SynchronizedStatement
+ Hydra.Dsl.Java.Syntax: textBlockTextBlock :: TypedName TextBlock
+ Hydra.Dsl.Java.Syntax: throwStatementThrowStatement :: TypedName ThrowStatement
+ Hydra.Dsl.Java.Syntax: throwsThrows :: TypedName Throws
+ Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationTopLevelClassOrInterfaceDeclaration :: TypedName TopLevelClassOrInterfaceDeclaration
+ Hydra.Dsl.Java.Syntax: topLevelClassOrInterfaceDeclarationWithCommentsTopLevelClassOrInterfaceDeclarationWithComments :: TypedName TopLevelClassOrInterfaceDeclarationWithComments
+ Hydra.Dsl.Java.Syntax: tryStatementTryStatement :: TypedName TryStatement
+ Hydra.Dsl.Java.Syntax: tryStatement_SimpleTryStatement_Simple :: TypedName TryStatement_Simple
+ Hydra.Dsl.Java.Syntax: tryStatement_WithFinallyTryStatement_WithFinally :: TypedName TryStatement_WithFinally
+ Hydra.Dsl.Java.Syntax: tryWithResourcesStatementTryWithResourcesStatement :: TypedName TryWithResourcesStatement
+ Hydra.Dsl.Java.Syntax: typeArgumentTypeArgument :: TypedName TypeArgument
+ Hydra.Dsl.Java.Syntax: typeArgumentsOrDiamondTypeArgumentsOrDiamond :: TypedName TypeArgumentsOrDiamond
+ Hydra.Dsl.Java.Syntax: typeBoundTypeBound :: TypedName TypeBound
+ Hydra.Dsl.Java.Syntax: typeBound_ClassOrInterfaceTypeBound_ClassOrInterface :: TypedName TypeBound_ClassOrInterface
+ Hydra.Dsl.Java.Syntax: typeIdentifierTypeIdentifier :: TypedName TypeIdentifier
+ Hydra.Dsl.Java.Syntax: typeImportOnDemandDeclarationTypeImportOnDemandDeclaration :: TypedName TypeImportOnDemandDeclaration
+ Hydra.Dsl.Java.Syntax: typeNameArrayTypeNameArray :: TypedName TypeNameArray
+ Hydra.Dsl.Java.Syntax: typeNameTypeName :: TypedName TypeName
+ Hydra.Dsl.Java.Syntax: typeParameterModifierTypeParameterModifier :: TypedName TypeParameterModifier
+ Hydra.Dsl.Java.Syntax: typeParameterTypeParameter :: TypedName TypeParameter
+ Hydra.Dsl.Java.Syntax: typePatternTypePattern :: TypedName TypePattern
+ Hydra.Dsl.Java.Syntax: typeType :: TypedName Type
+ Hydra.Dsl.Java.Syntax: typeVariableTypeVariable :: TypedName TypeVariable
+ Hydra.Dsl.Java.Syntax: unannClassTypeUnannClassType :: TypedName UnannClassType
+ Hydra.Dsl.Java.Syntax: unannTypeUnannType :: TypedName UnannType
+ Hydra.Dsl.Java.Syntax: unaryExpressionNotPlusMinusUnaryExpressionNotPlusMinus :: TypedName UnaryExpressionNotPlusMinus
+ Hydra.Dsl.Java.Syntax: unaryExpressionUnaryExpression :: TypedName UnaryExpression
+ Hydra.Dsl.Java.Syntax: unqualifiedClassInstanceCreationExpressionUnqualifiedClassInstanceCreationExpression :: TypedName UnqualifiedClassInstanceCreationExpression
+ Hydra.Dsl.Java.Syntax: variableAccessVariableAccess :: TypedName VariableAccess
+ Hydra.Dsl.Java.Syntax: variableArityParameterVariableArityParameter :: TypedName VariableArityParameter
+ Hydra.Dsl.Java.Syntax: variableArityRecordComponentVariableArityRecordComponent :: TypedName VariableArityRecordComponent
+ Hydra.Dsl.Java.Syntax: variableDeclaratorIdVariableDeclaratorId :: TypedName VariableDeclaratorId
+ Hydra.Dsl.Java.Syntax: variableDeclaratorVariableDeclarator :: TypedName VariableDeclarator
+ Hydra.Dsl.Java.Syntax: variableInitializerVariableInitializer :: TypedName VariableInitializer
+ Hydra.Dsl.Java.Syntax: variableModifierVariableModifier :: TypedName VariableModifier
+ Hydra.Dsl.Java.Syntax: whileStatementNoShortIfWhileStatementNoShortIf :: TypedName WhileStatementNoShortIf
+ Hydra.Dsl.Java.Syntax: whileStatementWhileStatement :: TypedName WhileStatement
+ Hydra.Dsl.Java.Syntax: wildcardBoundsWildcardBounds :: TypedName WildcardBounds
+ Hydra.Dsl.Java.Syntax: wildcardWildcard2 :: TypedTerm Wildcard -> TypedTerm (Maybe WildcardBounds)
+ Hydra.Dsl.Java.Syntax: yieldStatementYieldStatement :: TypedName YieldStatement
+ Hydra.Java.Coder: applyOvergenSubstToTermAnnotationsGo :: Map Name Type -> Graph -> Term -> Term
+ Hydra.Java.Syntax: ArrayCreationExpressionNoInit :: ArrayCreationExpressionWithoutInitializer -> ArrayCreationExpression
+ Hydra.Java.Syntax: ArrayCreationExpressionWithInit :: ArrayCreationExpressionWithInitializer -> ArrayCreationExpression
+ Hydra.Java.Syntax: _ArrayCreationExpression_noInit :: Name
+ Hydra.Java.Syntax: _ArrayCreationExpression_withInit :: Name
- Hydra.Dsl.Java.Syntax: wildcardWildcard :: TypedTerm Wildcard -> TypedTerm (Maybe WildcardBounds)
+ Hydra.Dsl.Java.Syntax: wildcardWildcard :: TypedName Wildcard
Files
- CHANGELOG.md +139/−0
- hydra-java.cabal +5/−4
- src/main/haskell/Hydra/Dsl/Java/Environment.hs +16/−0
- src/main/haskell/Hydra/Dsl/Java/Language.hs +68/−0
- src/main/haskell/Hydra/Dsl/Java/Syntax.hs +16865/−15698
- src/main/haskell/Hydra/Java/Coder.hs +17/−15
- src/main/haskell/Hydra/Java/Serde.hs +2/−2
- src/main/haskell/Hydra/Java/Syntax.hs +4/−4
- src/main/haskell/Hydra/Java/Utils.hs +9/−1
CHANGELOG.md view
@@ -15,6 +15,145 @@ --- +## [0.17.1] - unreleased++Development version. Opens the 0.17.x line — the first release built entirely against+published 0.17.0 hosts (Hackage / PyPI / Maven Central), with the `hostOverrides` shims+that were needed while 0.16.1 lacked the effect type and I/O primitives removed.++### New features++- **Generated term-reference DSLs** ([#467](https://github.com/CategoricalData/hydra/issues/467)):+ kernel *term* modules now project generated DSL surfaces, completing the story begun with+ type-module DSLs and the generated primitive wrappers (`hydra.dsl.lib.*`, 0.17.0). A+ signature read-back in the DSL pass reuses the main pass's inference, and a demand-curated+ set of 19 kernel term modules (plus the json/test/extract modules) emits one typed,+ rename-safe reference per definition into every target language — e.g. Haskell+ `Hydra.Dsl.Strip.deannotateType`, Java `hydra.dsl.Strip.deannotateType(...)`, Python+ `hydra.dsl.strip.deannotate_type(...)`. The Java and Python coder sources were pivoted onto+ the generated references, retiring ~700 stringly-typed inline `var("hydra....")` references+ and shrinking Python's hand registry to the non-generatable remainder (byte-identical+ generated output before and after). Follow-ups:+ [#555](https://github.com/CategoricalData/hydra/issues/555) (typed references to derived+ encode/decode/show functions via `TypedName`),+ [#556](https://github.com/CategoricalData/hydra/issues/556) (non-kernel packages).+- **Package validation** ([#574](https://github.com/CategoricalData/hydra/issues/574),+ [#575](https://github.com/CategoricalData/hydra/issues/575)): a translingual `hydra.validate.*`+ framework carries per-package `ValidationProfile`s (error/warning rules, error/warning caps) and a+ catalog of checks — undeclared-package-dependency detection (now a fatal gate, #574),+ definition-name convention (PascalCase), definition ordering, documentation completeness, and+ conflicting-variant-name detection — layered on the existing core term/type well-formedness rules.+ A kernel-strict / others-relaxed policy keeps `/sync` green fleet-wide while the documentation+ backlog drains. See the new [Validation](https://github.com/CategoricalData/hydra/wiki/Validation)+ wiki page for the full per-package constraint specification.+- **DSL-authoring registration guards** ([#554](https://github.com/CategoricalData/hydra/issues/554)):+ fail-fast authoring-time validation for the host-native DSL sources — every DSL-authoring module in+ Java/`hydra-jvm`, Python, and Scala now asserts its definitions are fully registered+ (`Defs.checkComplete` / `check_complete`), backed by a Haskell kernel-source registration-completeness+ scanner, so a definition added to a source file but omitted from its `definitions` list fails loudly+ instead of silently vanishing from the generated output.+- **`hydra-build` package** ([#546](https://github.com/CategoricalData/hydra/issues/546),+ [#529](https://github.com/CategoricalData/hydra/issues/529),+ [#530](https://github.com/CategoricalData/hydra/issues/530)): the build-orchestration logic that had+ lived only in host scripts is now translingual Hydra. Pure module-list utilities became+ `hydra.build.modules` (#529) and the orphan-reconcile decision became `hydra.build.reconcile` (#530),+ each with a translingual test suite; the `hydra.build.*` modules were then extracted into a dedicated+ `hydra-build` package (#546), separate from the kernel.+- **Metadata sidecar + content/version-addressed freshness**+ ([#415](https://github.com/CategoricalData/hydra/issues/415)): dist manifests now carry a+ `moduleFormatVersion` field, and the generator's freshness basis is content/version-addressed — the+ groundwork for reproducible, cache-correct incremental generation.+- **Structured generation-provenance record**+ ([#523](https://github.com/CategoricalData/hydra/issues/523)): each generation run now records a+ structured `Generation` provenance entry (digest v2), replacing the ad-hoc shell threading of+ generation metadata.+- **Worker + issue hierarchy** ([#557](https://github.com/CategoricalData/hydra/issues/557)): a+ principled agent/worker framework — roles and parentage mirroring the GitHub issue tree, a+ cross-worktree message transport with a verify-after-copy protocol, a blocking-aware design-question+ (`decisions/`) channel, an issue-proposal queue with the `/issues` command, an autonomy-dial banner,+ and cross-machine staging coordination. Contributor-facing process only; no change to generated code.++### API and usability++- **DSL usability passes** ([#430](https://github.com/CategoricalData/hydra/issues/430),+ [#553](https://github.com/CategoricalData/hydra/issues/553)): reviewed the host-native Java, Python,+ and Scala DSL surfaces for ergonomics and cross-host parity (documented def shapes, added a Scala+ projection helper), bringing the three authoring dialects into closer alignment.++### Fixed++Bug fixes landed this cycle, grouped by area (see each issue for detail):++- **TypeScript** — reactivated `hydra.lib.*` primitive tests surfaced encoder gaps: lazy show-calling+ let bindings and compact bare-string `LiteralType` expansion in the test converter+ ([#564](https://github.com/CategoricalData/hydra/issues/564)),+ `binaryToBytes` registration + base64 binary decode in `decodeUtf8`+ ([#561](https://github.com/CategoricalData/hydra/issues/561)),+ `hydra.test.build.*` emission after the #546 split+ ([#570](https://github.com/CategoricalData/hydra/issues/570)), and `HYDRA_DEFAULT_IMPLS` support in+ the test runner ([#536](https://github.com/CategoricalData/hydra/issues/536)).+- **Tests and CI** — restored the default-primitive-implementation testing solution+ ([#388](https://github.com/CategoricalData/hydra/issues/388),+ [#549](https://github.com/CategoricalData/hydra/issues/549)), reactivated previously-ignored kernel+ test cases ([#513](https://github.com/CategoricalData/hydra/issues/513),+ [#550](https://github.com/CategoricalData/hydra/issues/550)), wired the regression harnesses into CI+ and split them out of the monolithic Haskell job for timeout headroom+ ([#535](https://github.com/CategoricalData/hydra/issues/535),+ [#563](https://github.com/CategoricalData/hydra/issues/563)), added Scala/Go/Lisp+ self-containment gates to `verify-distribution.sh`+ ([#537](https://github.com/CategoricalData/hydra/issues/537)), a manifest-JSON-tracked CI check+ ([#541](https://github.com/CategoricalData/hydra/issues/541)), a per-package test-digest freshness+ fix ([#551](https://github.com/CategoricalData/hydra/issues/551)), overlay-file restoration in+ `test-stale-output-prune.sh` ([#558](https://github.com/CategoricalData/hydra/issues/558)), and a+ sync-freshness fingerprint that now sees host-native DSL sources+ ([#562](https://github.com/CategoricalData/hydra/issues/562)).+- **Kernel and coders** — Java binary-literal signed-byte emission+ ([#528](https://github.com/CategoricalData/hydra/issues/528)), `hydra.json.Decode.fromJson`+ parametric-type (Application/Forall) support+ ([#531](https://github.com/CategoricalData/hydra/issues/531)), stale 2-param `Coder` shape in+ Java/Scala test bootstrap ([#552](https://github.com/CategoricalData/hydra/issues/552)), and a+ kernel dead-code/TODO cleanup ([#538](https://github.com/CategoricalData/hydra/issues/538)).+- **Lib and build** — `hydra.lib.files` copy/removeDirectory/status overlays across all nine hosts+ ([#525](https://github.com/CategoricalData/hydra/issues/525)), `hydra.build.*` regeneration into the+ Lisp dialects ([#544](https://github.com/CategoricalData/hydra/issues/544)), Scheme maps+ last-writer-wins in `union` ([#545](https://github.com/CategoricalData/hydra/issues/545)),+ standalone-kernel SHA dependency ([#542](https://github.com/CategoricalData/hydra/issues/542)),+ the lexicon's empty Types section ([#539](https://github.com/CategoricalData/hydra/issues/539)), and+ a duplicated generated-file header in `generate-head-haskell-build.py`+ ([#540](https://github.com/CategoricalData/hydra/issues/540)).++- **TypeScript overlay-import rewrite** ([#565](https://github.com/CategoricalData/hydra/issues/565)):+ the TypeScript coder's lib overlay-import rewrite no longer captures `hydra.lib.defaults`, which is a+ generated (not overlaid) module; excluding it fixes spurious import references in generated TypeScript.++- **Lexicon generation** (`bin/regenerate-lexicon.sh`): the generator had been failing+ silently since the encoder/decoder modules moved to in-memory synthesis+ ([#448](https://github.com/CategoricalData/hydra/issues/448)) — the script masked the+ failure and left a stale `docs/hydra-lexicon.txt` missing the four effectful primitive+ libraries (`hydra.lib.{effects,files,system,text}`). The synthesized coder modules are+ now included in the lexicon universe, the script fails loudly, and the regenerated+ lexicon covers all 267 primitives across 17 library modules.+- **`bin/prepare-release.sh`**: the non-blocking Java quality check invoked Gradle+ subprojects (`:hydra-rdf4j:test` etc.) that were removed in+ [#511](https://github.com/CategoricalData/hydra/issues/511), so it always warned without+ checking anything; it now runs the `dist/java/hydra-pg` package tests (the current home+ of the former binding tests).+- **`.gitignore`**: the ignore rules for the overlaid hand-written Haskell runtime still+ named pre-[#501](https://github.com/CategoricalData/hydra/issues/501) paths, so 41+ duplicate copies under `dist/haskell/` had become tracked; the rules now match the+ `Hydra/Overlay/` location and the duplicates are untracked.++### Documentation++- Corrected the 0.17.0 Maven coordinates throughout (Java artifacts publish under group+ `net.fortytwo.hydra.java`, Scala under `net.fortytwo.hydra.scala`,+ [#519](https://github.com/CategoricalData/hydra/issues/519)); added the npm and Scala+ release channels to the README; added TypeScript/Scala/Lisp sections to Getting started;+ repointed stale pre-#418/#501 DSL paths in the architecture docs; added GitHub issue and+ PR templates.++---+ ## [0.17.0] - 2026-07-01 Major themes: first-class support for effects and I/O in the kernel, TypeScript and
hydra-java.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.39.1.+-- This file has been generated from package.yaml by hpack version 0.38.1. -- -- see: https://github.com/sol/hpack name: hydra-java-version: 0.17.0+version: 0.17.1 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@@ -29,6 +29,7 @@ exposed-modules: Hydra.Decode.Gradle Hydra.Dsl.Java.Environment+ Hydra.Dsl.Java.Language Hydra.Dsl.Java.Syntax Hydra.Encode.Gradle Hydra.Gradle@@ -47,7 +48,7 @@ build-depends: base >=4.19.0 && <4.22 , containers >=0.6.7 && <0.8- , hydra-jvm ==0.17.0- , hydra-kernel ==0.17.0+ , hydra-jvm ==0.17.1+ , hydra-kernel ==0.17.1 , scientific >=0.3.7 && <0.4 default-language: Haskell2010
src/main/haskell/Hydra/Dsl/Java/Environment.hs view
@@ -67,6 +67,10 @@ 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 =@@ -1437,6 +1441,10 @@ 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 =@@ -1481,6 +1489,10 @@ 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 =@@ -1517,6 +1529,10 @@ 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
+ src/main/haskell/Hydra/Dsl/Java/Language.hs view
@@ -0,0 +1,68 @@+-- 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.Dsl.Ast as DslAst+import qualified Hydra.Dsl.Coders as DslCoders+import qualified Hydra.Dsl.Core as DslCore+import qualified Hydra.Dsl.Error.Checking as ErrorChecking+import qualified Hydra.Dsl.Error.Core as DslErrorCore+import qualified Hydra.Dsl.Error.Packaging as DslErrorPackaging+import qualified Hydra.Dsl.Errors as DslErrors+import qualified Hydra.Dsl.Graph as DslGraph+import qualified Hydra.Dsl.Json.Model as JsonModel+import qualified Hydra.Dsl.Lexical as DslLexical+import qualified Hydra.Dsl.Packaging as DslPackaging+import qualified Hydra.Dsl.Parsing as DslParsing+import qualified Hydra.Dsl.Paths as DslPaths+import qualified Hydra.Dsl.Query as DslQuery+import qualified Hydra.Dsl.Relational as DslRelational+import qualified Hydra.Dsl.Tabular as DslTabular+import qualified Hydra.Dsl.Testing as DslTesting+import qualified Hydra.Dsl.Topology as DslTopology+import qualified Hydra.Dsl.Typing as DslTyping+import qualified Hydra.Dsl.Util as DslUtil+import qualified Hydra.Dsl.Validation as DslValidation+import qualified Hydra.Dsl.Variants as DslVariants+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, map, pure, sum)+import qualified Data.Scientific as Sci+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 view
@@ -18,15701 +18,16868 @@ Core.wrappedTermTypeName = (Core.Name "hydra.java.syntax.AdditionalBound"), Core.wrappedTermBody = (Typed.unTypedTerm x)})) --- | 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 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 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 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 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 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 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 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 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 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 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 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 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 injection for the withInitializer variant of hydra.java.syntax.ArrayCreationExpression-arrayCreationExpressionWithInitializer :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpression-arrayCreationExpressionWithInitializer x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "withInitializer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | 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 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 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 injection for the withoutInitializer variant of hydra.java.syntax.ArrayCreationExpression-arrayCreationExpressionWithoutInitializer :: Typed.TypedTerm Syntax.ArrayCreationExpressionWithoutInitializer -> Typed.TypedTerm Syntax.ArrayCreationExpression-arrayCreationExpressionWithoutInitializer x =- Typed.TypedTerm (Core.TermInject (Core.Injection {- Core.injectionTypeName = (Core.Name "hydra.java.syntax.ArrayCreationExpression"),- Core.injectionField = Core.Field {- Core.fieldName = (Core.Name "withoutInitializer"),- Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 accessor for the wildcard field of hydra.java.syntax.Wildcard-wildcardWildcard :: Typed.TypedTerm Syntax.Wildcard -> Typed.TypedTerm (Maybe Syntax.WildcardBounds)-wildcardWildcard 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.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/Java/Coder.hs view
@@ -50,6 +50,7 @@ import qualified Hydra.Paths as Paths import qualified Hydra.Predicates as Predicates 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@@ -72,6 +73,7 @@ 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 {@@ -127,10 +129,10 @@ jarg]) applyOvergenSubstToTermAnnotations :: M.Map Core.Name Core.Type -> Core.Term -> t0 -> Graph.Graph -> Either t1 Core.Term-applyOvergenSubstToTermAnnotations subst term0 cx g = Right (applyOvergenSubstToTermAnnotations_go subst g term0)+applyOvergenSubstToTermAnnotations subst term0 cx g = Right (applyOvergenSubstToTermAnnotationsGo subst g term0) -applyOvergenSubstToTermAnnotations_go :: M.Map Core.Name Core.Type -> Graph.Graph -> Core.Term -> Core.Term-applyOvergenSubstToTermAnnotations_go subst cx term =+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@@ -140,33 +142,33 @@ 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 = (applyOvergenSubstToTermAnnotations_go subst cx inner),+ Core.annotatedTermBody = (applyOvergenSubstToTermAnnotationsGo subst cx inner), Core.annotatedTermAnnotation = (Annotations.wrapAnnotationMap ann_)})) Core.TermApplication v0 -> Core.TermApplication (Core.Application {- Core.applicationFunction = (applyOvergenSubstToTermAnnotations_go subst cx (Core.applicationFunction v0)),- Core.applicationArgument = (applyOvergenSubstToTermAnnotations_go subst cx (Core.applicationArgument v0))})+ 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 = (applyOvergenSubstToTermAnnotations_go subst cx (Core.lambdaBody 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 -> applyOvergenSubstToTermAnnotations_go subst cx d) (Core.caseStatementDefault 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 = (applyOvergenSubstToTermAnnotations_go subst cx (Core.caseAlternativeHandler fld))}) (Core.caseStatementCases v0))})+ 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 = (applyOvergenSubstToTermAnnotations_go subst cx (Core.bindingTerm b)),+ Core.bindingTerm = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.bindingTerm b)), Core.bindingTypeScheme = (Core.bindingTypeScheme b)}) (Core.letBindings v0)),- Core.letBody = (applyOvergenSubstToTermAnnotations_go subst cx (Core.letBody v0))})+ Core.letBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.letBody v0))}) Core.TermTypeApplication v0 -> Core.TermTypeApplication (Core.TypeApplicationTerm {- Core.typeApplicationTermBody = (applyOvergenSubstToTermAnnotations_go subst cx (Core.typeApplicationTermBody v0)),+ 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 = (applyOvergenSubstToTermAnnotations_go subst cx (Core.typeLambdaBody v0))})+ Core.typeLambdaBody = (applyOvergenSubstToTermAnnotationsGo subst cx (Core.typeLambdaBody v0))}) _ -> term applySubstFull :: M.Map Core.Name Core.Type -> Core.Type -> Core.Type@@ -301,7 +303,7 @@ g = JavaEnvironment.javaEnvironmentGraph env flatBindings = dedupBindings (JavaEnvironment.aliasesInScopeJavaVars aliases) (flattenBindings bindings) gExtended =- Scoping.extendGraphForLet (\g2 -> \b -> Logic.ifElse (Predicates.isComplexBinding g2 b) (Just (Core.TermLiteral (Core.LiteralBoolean True))) Nothing) g (Core.Let {+ 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)@@ -1322,7 +1324,7 @@ 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 w)))) byteValues))))+ in (Utils.javaArrayCreation Utils.javaBytePrimitiveType (Just (Utils.javaArrayInitializer (Lists.map (\w -> Utils.javaLiteralToJavaExpression (Syntax.LiteralInteger (Syntax.IntegerLiteral (Literals.int32ToBigint (Logic.ifElse (Equality.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.showDecimal v0))] Nothing
src/main/haskell/Hydra/Java/Serde.hs view
@@ -80,8 +80,8 @@ arrayCreationExpressionToExpr :: Syntax.ArrayCreationExpression -> Ast.Expr arrayCreationExpressionToExpr ace = case ace of- Syntax.ArrayCreationExpressionWithoutInitializer_ _ -> Serialization.cst "STUB:ArrayCreationExpression"- Syntax.ArrayCreationExpressionWithInitializer_ v0 -> case v0 of+ Syntax.ArrayCreationExpressionNoInit _ -> Serialization.cst "STUB:ArrayCreationExpression"+ Syntax.ArrayCreationExpressionWithInit v0 -> case v0 of Syntax.ArrayCreationExpressionWithInitializerPrimitive v1 -> let pt = Syntax.arrayCreationExpressionWithInitializer_PrimitiveType v1 ai = Syntax.arrayCreationExpressionWithInitializer_PrimitiveArray v1
src/main/haskell/Hydra/Java/Syntax.hs view
@@ -2858,15 +2858,15 @@ _MethodReference_Array = Core.Name "hydra.java.syntax.MethodReference_Array" data ArrayCreationExpression =- ArrayCreationExpressionWithoutInitializer_ ArrayCreationExpressionWithoutInitializer |- ArrayCreationExpressionWithInitializer_ ArrayCreationExpressionWithInitializer+ ArrayCreationExpressionNoInit ArrayCreationExpressionWithoutInitializer |+ ArrayCreationExpressionWithInit ArrayCreationExpressionWithInitializer deriving (Eq, Ord, Read, Show) _ArrayCreationExpression = Core.Name "hydra.java.syntax.ArrayCreationExpression" -_ArrayCreationExpression_withoutInitializer = Core.Name "withoutInitializer"+_ArrayCreationExpression_noInit = Core.Name "noInit" -_ArrayCreationExpression_withInitializer = Core.Name "withInitializer"+_ArrayCreationExpression_withInit = Core.Name "withInit" data ArrayCreationExpressionWithoutInitializer = ArrayCreationExpressionWithoutInitializerPrimitive ArrayCreationExpressionWithoutInitializer_Primitive |
src/main/haskell/Hydra/Java/Utils.hs view
@@ -191,7 +191,7 @@ javaArrayCreation primType minit = let init_ = Optionals.cases minit (Syntax.ArrayInitializer []) (\i -> i)- in (javaPrimaryToJavaExpression (Syntax.PrimaryArrayCreation (Syntax.ArrayCreationExpressionWithInitializer_ (Syntax.ArrayCreationExpressionWithInitializerPrimitive (Syntax.ArrayCreationExpressionWithInitializer_Primitive {+ in (javaPrimaryToJavaExpression (Syntax.PrimaryArrayCreation (Syntax.ArrayCreationExpressionWithInit (Syntax.ArrayCreationExpressionWithInitializerPrimitive (Syntax.ArrayCreationExpressionWithInitializer_Primitive { Syntax.arrayCreationExpressionWithInitializer_PrimitiveType = primType, Syntax.arrayCreationExpressionWithInitializer_PrimitiveDims = [], Syntax.arrayCreationExpressionWithInitializer_PrimitiveArray = init_})))))@@ -910,6 +910,14 @@ "java", "lib", "files"])),+ (+ Packaging.ModuleName "hydra.lib.hashing",+ (JavaNames.javaPackageName [+ "hydra",+ "overlay",+ "java",+ "lib",+ "hashing"])), ( Packaging.ModuleName "hydra.lib.lists", (JavaNames.javaPackageName [