packages feed

hydra-scala 0.17.7 → 0.18.0

raw patch · 9 files changed

+14536/−14412 lines, 9 filesdep ~hydra-jvmdep ~hydra-kernelPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: hydra-jvm, hydra-kernel

API changes (from Hackage documentation)

- Hydra.Dsl.Scala.Syntax: alternativePat :: TypedTerm Pat -> TypedTerm Pat -> TypedTerm AlternativePat
- Hydra.Dsl.Scala.Syntax: alternativePatLhs :: TypedTerm AlternativePat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: alternativePatRhs :: TypedTerm AlternativePat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: alternativePatWithLhs :: TypedTerm AlternativePat -> TypedTerm Pat -> TypedTerm AlternativePat
- Hydra.Dsl.Scala.Syntax: alternativePatWithRhs :: TypedTerm AlternativePat -> TypedTerm Pat -> TypedTerm AlternativePat
- Hydra.Dsl.Scala.Syntax: andType :: TypedTerm Type -> TypedTerm Type -> TypedTerm AndType
- Hydra.Dsl.Scala.Syntax: andTypeLhs :: TypedTerm AndType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: andTypeRhs :: TypedTerm AndType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: andTypeWithLhs :: TypedTerm AndType -> TypedTerm Type -> TypedTerm AndType
- Hydra.Dsl.Scala.Syntax: andTypeWithRhs :: TypedTerm AndType -> TypedTerm Type -> TypedTerm AndType
- Hydra.Dsl.Scala.Syntax: annotMod :: TypedTerm Init -> TypedTerm AnnotMod
- Hydra.Dsl.Scala.Syntax: annotModInit :: TypedTerm AnnotMod -> TypedTerm Init
- Hydra.Dsl.Scala.Syntax: annotModWithInit :: TypedTerm AnnotMod -> TypedTerm Init -> TypedTerm AnnotMod
- Hydra.Dsl.Scala.Syntax: annotateData :: TypedTerm Data -> TypedTerm [AnnotMod] -> TypedTerm AnnotateData
- Hydra.Dsl.Scala.Syntax: annotateDataAnnots :: TypedTerm AnnotateData -> TypedTerm [AnnotMod]
- Hydra.Dsl.Scala.Syntax: annotateDataExpr :: TypedTerm AnnotateData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: annotateDataWithAnnots :: TypedTerm AnnotateData -> TypedTerm [AnnotMod] -> TypedTerm AnnotateData
- Hydra.Dsl.Scala.Syntax: annotateDataWithExpr :: TypedTerm AnnotateData -> TypedTerm Data -> TypedTerm AnnotateData
- Hydra.Dsl.Scala.Syntax: annotateType :: TypedTerm Type -> TypedTerm [AnnotMod] -> TypedTerm AnnotateType
- Hydra.Dsl.Scala.Syntax: annotateTypeAnnots :: TypedTerm AnnotateType -> TypedTerm [AnnotMod]
- Hydra.Dsl.Scala.Syntax: annotateTypeTpe :: TypedTerm AnnotateType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: annotateTypeWithAnnots :: TypedTerm AnnotateType -> TypedTerm [AnnotMod] -> TypedTerm AnnotateType
- Hydra.Dsl.Scala.Syntax: annotateTypeWithTpe :: TypedTerm AnnotateType -> TypedTerm Type -> TypedTerm AnnotateType
- Hydra.Dsl.Scala.Syntax: anonymousData :: TypedTerm () -> TypedTerm AnonymousData
- Hydra.Dsl.Scala.Syntax: anonymousNameType :: TypedTerm () -> TypedTerm AnonymousNameType
- Hydra.Dsl.Scala.Syntax: applyData :: TypedTerm Data -> TypedTerm [Data] -> TypedTerm ApplyData
- Hydra.Dsl.Scala.Syntax: applyDataArgs :: TypedTerm ApplyData -> TypedTerm [Data]
- Hydra.Dsl.Scala.Syntax: applyDataFun :: TypedTerm ApplyData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: applyDataWithArgs :: TypedTerm ApplyData -> TypedTerm [Data] -> TypedTerm ApplyData
- Hydra.Dsl.Scala.Syntax: applyDataWithFun :: TypedTerm ApplyData -> TypedTerm Data -> TypedTerm ApplyData
- Hydra.Dsl.Scala.Syntax: applyInfixData :: TypedTerm Data -> TypedTerm NameData -> TypedTerm [Type] -> TypedTerm [Data] -> TypedTerm ApplyInfixData
- Hydra.Dsl.Scala.Syntax: applyInfixDataArgs :: TypedTerm ApplyInfixData -> TypedTerm [Data]
- Hydra.Dsl.Scala.Syntax: applyInfixDataLhs :: TypedTerm ApplyInfixData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: applyInfixDataOp :: TypedTerm ApplyInfixData -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: applyInfixDataTargs :: TypedTerm ApplyInfixData -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: applyInfixDataWithArgs :: TypedTerm ApplyInfixData -> TypedTerm [Data] -> TypedTerm ApplyInfixData
- Hydra.Dsl.Scala.Syntax: applyInfixDataWithLhs :: TypedTerm ApplyInfixData -> TypedTerm Data -> TypedTerm ApplyInfixData
- Hydra.Dsl.Scala.Syntax: applyInfixDataWithOp :: TypedTerm ApplyInfixData -> TypedTerm NameData -> TypedTerm ApplyInfixData
- Hydra.Dsl.Scala.Syntax: applyInfixDataWithTargs :: TypedTerm ApplyInfixData -> TypedTerm [Type] -> TypedTerm ApplyInfixData
- Hydra.Dsl.Scala.Syntax: applyInfixType :: TypedTerm Type -> TypedTerm NameType -> TypedTerm Type -> TypedTerm ApplyInfixType
- Hydra.Dsl.Scala.Syntax: applyInfixTypeLhs :: TypedTerm ApplyInfixType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: applyInfixTypeOp :: TypedTerm ApplyInfixType -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: applyInfixTypeRhs :: TypedTerm ApplyInfixType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: applyInfixTypeWithLhs :: TypedTerm ApplyInfixType -> TypedTerm Type -> TypedTerm ApplyInfixType
- Hydra.Dsl.Scala.Syntax: applyInfixTypeWithOp :: TypedTerm ApplyInfixType -> TypedTerm NameType -> TypedTerm ApplyInfixType
- Hydra.Dsl.Scala.Syntax: applyInfixTypeWithRhs :: TypedTerm ApplyInfixType -> TypedTerm Type -> TypedTerm ApplyInfixType
- Hydra.Dsl.Scala.Syntax: applyType :: TypedTerm Type -> TypedTerm [Type] -> TypedTerm ApplyType
- Hydra.Dsl.Scala.Syntax: applyTypeArgs :: TypedTerm ApplyType -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: applyTypeData :: TypedTerm Data -> TypedTerm NameData -> TypedTerm [Type] -> TypedTerm [Data] -> TypedTerm ApplyTypeData
- Hydra.Dsl.Scala.Syntax: applyTypeDataArgs :: TypedTerm ApplyTypeData -> TypedTerm [Data]
- Hydra.Dsl.Scala.Syntax: applyTypeDataLhs :: TypedTerm ApplyTypeData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: applyTypeDataOp :: TypedTerm ApplyTypeData -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: applyTypeDataTargs :: TypedTerm ApplyTypeData -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: applyTypeDataWithArgs :: TypedTerm ApplyTypeData -> TypedTerm [Data] -> TypedTerm ApplyTypeData
- Hydra.Dsl.Scala.Syntax: applyTypeDataWithLhs :: TypedTerm ApplyTypeData -> TypedTerm Data -> TypedTerm ApplyTypeData
- Hydra.Dsl.Scala.Syntax: applyTypeDataWithOp :: TypedTerm ApplyTypeData -> TypedTerm NameData -> TypedTerm ApplyTypeData
- Hydra.Dsl.Scala.Syntax: applyTypeDataWithTargs :: TypedTerm ApplyTypeData -> TypedTerm [Type] -> TypedTerm ApplyTypeData
- Hydra.Dsl.Scala.Syntax: applyTypeTpe :: TypedTerm ApplyType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: applyTypeWithArgs :: TypedTerm ApplyType -> TypedTerm [Type] -> TypedTerm ApplyType
- Hydra.Dsl.Scala.Syntax: applyTypeWithTpe :: TypedTerm ApplyType -> TypedTerm Type -> TypedTerm ApplyType
- Hydra.Dsl.Scala.Syntax: applyUnaryData :: TypedTerm NameData -> TypedTerm Data -> TypedTerm ApplyUnaryData
- Hydra.Dsl.Scala.Syntax: applyUnaryDataArg :: TypedTerm ApplyUnaryData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: applyUnaryDataOp :: TypedTerm ApplyUnaryData -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: applyUnaryDataWithArg :: TypedTerm ApplyUnaryData -> TypedTerm Data -> TypedTerm ApplyUnaryData
- Hydra.Dsl.Scala.Syntax: applyUnaryDataWithOp :: TypedTerm ApplyUnaryData -> TypedTerm NameData -> TypedTerm ApplyUnaryData
- Hydra.Dsl.Scala.Syntax: applyUsingData :: TypedTerm Data -> TypedTerm [Data] -> TypedTerm ApplyUsingData
- Hydra.Dsl.Scala.Syntax: applyUsingDataFun :: TypedTerm ApplyUsingData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: applyUsingDataTargs :: TypedTerm ApplyUsingData -> TypedTerm [Data]
- Hydra.Dsl.Scala.Syntax: applyUsingDataWithFun :: TypedTerm ApplyUsingData -> TypedTerm Data -> TypedTerm ApplyUsingData
- Hydra.Dsl.Scala.Syntax: applyUsingDataWithTargs :: TypedTerm ApplyUsingData -> TypedTerm [Data] -> TypedTerm ApplyUsingData
- Hydra.Dsl.Scala.Syntax: ascribeData :: TypedTerm Data -> TypedTerm Type -> TypedTerm AscribeData
- Hydra.Dsl.Scala.Syntax: ascribeDataExpr :: TypedTerm AscribeData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: ascribeDataTpe :: TypedTerm AscribeData -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: ascribeDataWithExpr :: TypedTerm AscribeData -> TypedTerm Data -> TypedTerm AscribeData
- Hydra.Dsl.Scala.Syntax: ascribeDataWithTpe :: TypedTerm AscribeData -> TypedTerm Type -> TypedTerm AscribeData
- Hydra.Dsl.Scala.Syntax: assignData :: TypedTerm Data -> TypedTerm Data -> TypedTerm AssignData
- Hydra.Dsl.Scala.Syntax: assignDataLhs :: TypedTerm AssignData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: assignDataRhs :: TypedTerm AssignData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: assignDataWithLhs :: TypedTerm AssignData -> TypedTerm Data -> TypedTerm AssignData
- Hydra.Dsl.Scala.Syntax: assignDataWithRhs :: TypedTerm AssignData -> TypedTerm Data -> TypedTerm AssignData
- Hydra.Dsl.Scala.Syntax: bindPat :: TypedTerm Pat -> TypedTerm Pat -> TypedTerm BindPat
- Hydra.Dsl.Scala.Syntax: bindPatLhs :: TypedTerm BindPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: bindPatRhs :: TypedTerm BindPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: bindPatWithLhs :: TypedTerm BindPat -> TypedTerm Pat -> TypedTerm BindPat
- Hydra.Dsl.Scala.Syntax: bindPatWithRhs :: TypedTerm BindPat -> TypedTerm Pat -> TypedTerm BindPat
- Hydra.Dsl.Scala.Syntax: blockData :: TypedTerm [Stat] -> TypedTerm BlockData
- Hydra.Dsl.Scala.Syntax: blockDataStats :: TypedTerm BlockData -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: blockDataWithStats :: TypedTerm BlockData -> TypedTerm [Stat] -> TypedTerm BlockData
- Hydra.Dsl.Scala.Syntax: byNameType :: TypedTerm Type -> TypedTerm ByNameType
- Hydra.Dsl.Scala.Syntax: byNameTypeTpe :: TypedTerm ByNameType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: byNameTypeWithTpe :: TypedTerm ByNameType -> TypedTerm Type -> TypedTerm ByNameType
- Hydra.Dsl.Scala.Syntax: caseBody :: TypedTerm Case -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: caseCond :: TypedTerm Case -> TypedTerm (Maybe Data)
- Hydra.Dsl.Scala.Syntax: caseGeneratorEnumerator :: TypedTerm Pat -> TypedTerm Data -> TypedTerm CaseGeneratorEnumerator
- Hydra.Dsl.Scala.Syntax: caseGeneratorEnumeratorPat :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: caseGeneratorEnumeratorRhs :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: caseGeneratorEnumeratorWithPat :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Pat -> TypedTerm CaseGeneratorEnumerator
- Hydra.Dsl.Scala.Syntax: caseGeneratorEnumeratorWithRhs :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Data -> TypedTerm CaseGeneratorEnumerator
- Hydra.Dsl.Scala.Syntax: casePat :: TypedTerm Case -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: caseTreeCase :: TypedTerm Case -> TypedTerm CaseTree
- Hydra.Dsl.Scala.Syntax: caseTreeTypeCase :: TypedTerm TypeCase -> TypedTerm CaseTree
- Hydra.Dsl.Scala.Syntax: caseWithBody :: TypedTerm Case -> TypedTerm Data -> TypedTerm Case
- Hydra.Dsl.Scala.Syntax: caseWithCond :: TypedTerm Case -> TypedTerm (Maybe Data) -> TypedTerm Case
- Hydra.Dsl.Scala.Syntax: caseWithPat :: TypedTerm Case -> TypedTerm Pat -> TypedTerm Case
- Hydra.Dsl.Scala.Syntax: case_ :: TypedTerm Pat -> TypedTerm (Maybe Data) -> TypedTerm Data -> TypedTerm Case
- Hydra.Dsl.Scala.Syntax: classDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm Template -> TypedTerm ClassDefn
- Hydra.Dsl.Scala.Syntax: classDefnCtor :: TypedTerm ClassDefn -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: classDefnMods :: TypedTerm ClassDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: classDefnName :: TypedTerm ClassDefn -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: classDefnTemplate :: TypedTerm ClassDefn -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: classDefnTparams :: TypedTerm ClassDefn -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: classDefnWithCtor :: TypedTerm ClassDefn -> TypedTerm PrimaryCtor -> TypedTerm ClassDefn
- Hydra.Dsl.Scala.Syntax: classDefnWithMods :: TypedTerm ClassDefn -> TypedTerm [Mod] -> TypedTerm ClassDefn
- Hydra.Dsl.Scala.Syntax: classDefnWithName :: TypedTerm ClassDefn -> TypedTerm NameType -> TypedTerm ClassDefn
- Hydra.Dsl.Scala.Syntax: classDefnWithTemplate :: TypedTerm ClassDefn -> TypedTerm Template -> TypedTerm ClassDefn
- Hydra.Dsl.Scala.Syntax: classDefnWithTparams :: TypedTerm ClassDefn -> TypedTerm [ParamType] -> TypedTerm ClassDefn
- Hydra.Dsl.Scala.Syntax: contextFunctionData :: TypedTerm [ParamData] -> TypedTerm Data -> TypedTerm ContextFunctionData
- Hydra.Dsl.Scala.Syntax: contextFunctionDataBody :: TypedTerm ContextFunctionData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: contextFunctionDataParams :: TypedTerm ContextFunctionData -> TypedTerm [ParamData]
- Hydra.Dsl.Scala.Syntax: contextFunctionDataWithBody :: TypedTerm ContextFunctionData -> TypedTerm Data -> TypedTerm ContextFunctionData
- Hydra.Dsl.Scala.Syntax: contextFunctionDataWithParams :: TypedTerm ContextFunctionData -> TypedTerm [ParamData] -> TypedTerm ContextFunctionData
- Hydra.Dsl.Scala.Syntax: contextFunctionType :: TypedTerm [Type] -> TypedTerm Type -> TypedTerm ContextFunctionType
- Hydra.Dsl.Scala.Syntax: contextFunctionTypeParams :: TypedTerm ContextFunctionType -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: contextFunctionTypeRes :: TypedTerm ContextFunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: contextFunctionTypeWithParams :: TypedTerm ContextFunctionType -> TypedTerm [Type] -> TypedTerm ContextFunctionType
- Hydra.Dsl.Scala.Syntax: contextFunctionTypeWithRes :: TypedTerm ContextFunctionType -> TypedTerm Type -> TypedTerm ContextFunctionType
- Hydra.Dsl.Scala.Syntax: ctorPrimary :: TypedTerm PrimaryCtor -> TypedTerm Ctor
- Hydra.Dsl.Scala.Syntax: ctorSecondary :: TypedTerm SecondaryCtor -> TypedTerm Ctor
- Hydra.Dsl.Scala.Syntax: dataAnnotate :: TypedTerm AnnotateData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataApply :: TypedTerm ApplyData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataApplyType :: TypedTerm ApplyTypeData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataApplyUsing :: TypedTerm ApplyUsingData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataAscribe :: TypedTerm AscribeData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataAssign :: TypedTerm AssignData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataBlock :: TypedTerm BlockData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataContextFunction :: TypedTerm ContextFunctionData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataDo :: TypedTerm DoData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataEndMarker :: TypedTerm EndMarkerData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataEta :: TypedTerm EtaData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataFor :: TypedTerm ForData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataForYield :: TypedTerm ForYieldData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataFunction :: TypedTerm FunctionData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataIf :: TypedTerm IfData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataInterpolate :: TypedTerm InterpolateData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataLit :: TypedTerm Lit -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataMatch :: TypedTerm MatchData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataMemberObject :: TypedTerm ObjectPkg -> TypedTerm DataMember
- Hydra.Dsl.Scala.Syntax: dataMemberPkg :: TypedTerm Pkg -> TypedTerm DataMember
- Hydra.Dsl.Scala.Syntax: dataNew :: TypedTerm NewData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataNewAnonymous :: TypedTerm NewAnonymousData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataParam :: TypedTerm ParamData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataPartialFunction :: TypedTerm PartialFunctionData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataPlaceholder :: TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataPolyFunction :: TypedTerm PolyFunctionData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataRef :: TypedTerm RefData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataRepeated :: TypedTerm RepeatedData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataReturn :: TypedTerm ReturnData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataThrow :: TypedTerm ThrowData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataTry :: TypedTerm TryData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataTryWithHandler :: TypedTerm TryWithHandlerData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataTuple :: TypedTerm TupleData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: dataWhile :: TypedTerm WhileData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: declDef :: TypedTerm DefDecl -> TypedTerm Decl
- Hydra.Dsl.Scala.Syntax: declGiven :: TypedTerm GivenDecl -> TypedTerm Decl
- Hydra.Dsl.Scala.Syntax: declType :: TypedTerm TypeDecl -> TypedTerm Decl
- Hydra.Dsl.Scala.Syntax: declVal :: TypedTerm ValDecl -> TypedTerm Decl
- Hydra.Dsl.Scala.Syntax: declVar :: TypedTerm VarDecl -> TypedTerm Decl
- Hydra.Dsl.Scala.Syntax: defDecl :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm DefDecl
- Hydra.Dsl.Scala.Syntax: defDeclDecltpe :: TypedTerm DefDecl -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: defDeclMods :: TypedTerm DefDecl -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: defDeclName :: TypedTerm DefDecl -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: defDeclParamss :: TypedTerm DefDecl -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: defDeclTparams :: TypedTerm DefDecl -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: defDeclWithDecltpe :: TypedTerm DefDecl -> TypedTerm Type -> TypedTerm DefDecl
- Hydra.Dsl.Scala.Syntax: defDeclWithMods :: TypedTerm DefDecl -> TypedTerm [Mod] -> TypedTerm DefDecl
- Hydra.Dsl.Scala.Syntax: defDeclWithName :: TypedTerm DefDecl -> TypedTerm NameData -> TypedTerm DefDecl
- Hydra.Dsl.Scala.Syntax: defDeclWithParamss :: TypedTerm DefDecl -> TypedTerm [[ParamData]] -> TypedTerm DefDecl
- Hydra.Dsl.Scala.Syntax: defDeclWithTparams :: TypedTerm DefDecl -> TypedTerm [ParamType] -> TypedTerm DefDecl
- Hydra.Dsl.Scala.Syntax: defDefn :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm (Maybe Type) -> TypedTerm Data -> TypedTerm DefDefn
- Hydra.Dsl.Scala.Syntax: defDefnBody :: TypedTerm DefDefn -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: defDefnDecltpe :: TypedTerm DefDefn -> TypedTerm (Maybe Type)
- Hydra.Dsl.Scala.Syntax: defDefnMods :: TypedTerm DefDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: defDefnName :: TypedTerm DefDefn -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: defDefnParamss :: TypedTerm DefDefn -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: defDefnTparams :: TypedTerm DefDefn -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: defDefnWithBody :: TypedTerm DefDefn -> TypedTerm Data -> TypedTerm DefDefn
- Hydra.Dsl.Scala.Syntax: defDefnWithDecltpe :: TypedTerm DefDefn -> TypedTerm (Maybe Type) -> TypedTerm DefDefn
- Hydra.Dsl.Scala.Syntax: defDefnWithMods :: TypedTerm DefDefn -> TypedTerm [Mod] -> TypedTerm DefDefn
- Hydra.Dsl.Scala.Syntax: defDefnWithName :: TypedTerm DefDefn -> TypedTerm NameData -> TypedTerm DefDefn
- Hydra.Dsl.Scala.Syntax: defDefnWithParamss :: TypedTerm DefDefn -> TypedTerm [[ParamData]] -> TypedTerm DefDefn
- Hydra.Dsl.Scala.Syntax: defDefnWithTparams :: TypedTerm DefDefn -> TypedTerm [ParamType] -> TypedTerm DefDefn
- Hydra.Dsl.Scala.Syntax: defnClass :: TypedTerm ClassDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnDef :: TypedTerm DefDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnEnum :: TypedTerm EnumDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnEnumCase :: TypedTerm EnumCaseDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnExtensionGroup :: TypedTerm ExtensionGroupDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnGiven :: TypedTerm GivenDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnGivenAlias :: TypedTerm GivenAliasDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnObject :: TypedTerm ObjectDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnRepeatedEnumCase :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnTrait :: TypedTerm TraitDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnType :: TypedTerm TypeDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnVal :: TypedTerm ValDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: defnVar :: TypedTerm VarDefn -> TypedTerm Defn
- Hydra.Dsl.Scala.Syntax: doData :: TypedTerm Data -> TypedTerm Data -> TypedTerm DoData
- Hydra.Dsl.Scala.Syntax: doDataBody :: TypedTerm DoData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: doDataExpr :: TypedTerm DoData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: doDataWithBody :: TypedTerm DoData -> TypedTerm Data -> TypedTerm DoData
- Hydra.Dsl.Scala.Syntax: doDataWithExpr :: TypedTerm DoData -> TypedTerm Data -> TypedTerm DoData
- Hydra.Dsl.Scala.Syntax: endMarkerData :: TypedTerm NameData -> TypedTerm EndMarkerData
- Hydra.Dsl.Scala.Syntax: endMarkerDataName :: TypedTerm EndMarkerData -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: endMarkerDataWithName :: TypedTerm EndMarkerData -> TypedTerm NameData -> TypedTerm EndMarkerData
- Hydra.Dsl.Scala.Syntax: enumCaseDefn :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm [Init] -> TypedTerm EnumCaseDefn
- Hydra.Dsl.Scala.Syntax: enumCaseDefnCtor :: TypedTerm EnumCaseDefn -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: enumCaseDefnInits :: TypedTerm EnumCaseDefn -> TypedTerm [Init]
- Hydra.Dsl.Scala.Syntax: enumCaseDefnMods :: TypedTerm EnumCaseDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: enumCaseDefnName :: TypedTerm EnumCaseDefn -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: enumCaseDefnTparams :: TypedTerm EnumCaseDefn -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: enumCaseDefnWithCtor :: TypedTerm EnumCaseDefn -> TypedTerm PrimaryCtor -> TypedTerm EnumCaseDefn
- Hydra.Dsl.Scala.Syntax: enumCaseDefnWithInits :: TypedTerm EnumCaseDefn -> TypedTerm [Init] -> TypedTerm EnumCaseDefn
- Hydra.Dsl.Scala.Syntax: enumCaseDefnWithMods :: TypedTerm EnumCaseDefn -> TypedTerm [Mod] -> TypedTerm EnumCaseDefn
- Hydra.Dsl.Scala.Syntax: enumCaseDefnWithName :: TypedTerm EnumCaseDefn -> TypedTerm NameData -> TypedTerm EnumCaseDefn
- Hydra.Dsl.Scala.Syntax: enumCaseDefnWithTparams :: TypedTerm EnumCaseDefn -> TypedTerm [ParamType] -> TypedTerm EnumCaseDefn
- Hydra.Dsl.Scala.Syntax: enumDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm Template -> TypedTerm EnumDefn
- Hydra.Dsl.Scala.Syntax: enumDefnCtor :: TypedTerm EnumDefn -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: enumDefnMods :: TypedTerm EnumDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: enumDefnName :: TypedTerm EnumDefn -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: enumDefnTemplate :: TypedTerm EnumDefn -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: enumDefnTparams :: TypedTerm EnumDefn -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: enumDefnWithCtor :: TypedTerm EnumDefn -> TypedTerm PrimaryCtor -> TypedTerm EnumDefn
- Hydra.Dsl.Scala.Syntax: enumDefnWithMods :: TypedTerm EnumDefn -> TypedTerm [Mod] -> TypedTerm EnumDefn
- Hydra.Dsl.Scala.Syntax: enumDefnWithName :: TypedTerm EnumDefn -> TypedTerm NameType -> TypedTerm EnumDefn
- Hydra.Dsl.Scala.Syntax: enumDefnWithTemplate :: TypedTerm EnumDefn -> TypedTerm Template -> TypedTerm EnumDefn
- Hydra.Dsl.Scala.Syntax: enumDefnWithTparams :: TypedTerm EnumDefn -> TypedTerm [ParamType] -> TypedTerm EnumDefn
- Hydra.Dsl.Scala.Syntax: enumeratorCaseGenerator :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Enumerator
- Hydra.Dsl.Scala.Syntax: enumeratorGenerator :: TypedTerm GeneratorEnumerator -> TypedTerm Enumerator
- Hydra.Dsl.Scala.Syntax: enumeratorGuard :: TypedTerm GuardEnumerator -> TypedTerm Enumerator
- Hydra.Dsl.Scala.Syntax: enumeratorVal :: TypedTerm ValEnumerator -> TypedTerm Enumerator
- Hydra.Dsl.Scala.Syntax: etaData :: TypedTerm Data -> TypedTerm EtaData
- Hydra.Dsl.Scala.Syntax: etaDataExpr :: TypedTerm EtaData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: etaDataWithExpr :: TypedTerm EtaData -> TypedTerm Data -> TypedTerm EtaData
- Hydra.Dsl.Scala.Syntax: existentialType :: TypedTerm Type -> TypedTerm [Stat] -> TypedTerm ExistentialType
- Hydra.Dsl.Scala.Syntax: existentialTypeStats :: TypedTerm ExistentialType -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: existentialTypeTpe :: TypedTerm ExistentialType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: existentialTypeWithStats :: TypedTerm ExistentialType -> TypedTerm [Stat] -> TypedTerm ExistentialType
- Hydra.Dsl.Scala.Syntax: existentialTypeWithTpe :: TypedTerm ExistentialType -> TypedTerm Type -> TypedTerm ExistentialType
- Hydra.Dsl.Scala.Syntax: export :: TypedTerm [Importer] -> TypedTerm Export
- Hydra.Dsl.Scala.Syntax: exportImporters :: TypedTerm Export -> TypedTerm [Importer]
- Hydra.Dsl.Scala.Syntax: exportWithImporters :: TypedTerm Export -> TypedTerm [Importer] -> TypedTerm Export
- Hydra.Dsl.Scala.Syntax: extensionGroupDefn :: TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm Stat -> TypedTerm ExtensionGroupDefn
- Hydra.Dsl.Scala.Syntax: extensionGroupDefnBody :: TypedTerm ExtensionGroupDefn -> TypedTerm Stat
- Hydra.Dsl.Scala.Syntax: extensionGroupDefnParmss :: TypedTerm ExtensionGroupDefn -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: extensionGroupDefnTparams :: TypedTerm ExtensionGroupDefn -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: extensionGroupDefnWithBody :: TypedTerm ExtensionGroupDefn -> TypedTerm Stat -> TypedTerm ExtensionGroupDefn
- Hydra.Dsl.Scala.Syntax: extensionGroupDefnWithParmss :: TypedTerm ExtensionGroupDefn -> TypedTerm [[ParamData]] -> TypedTerm ExtensionGroupDefn
- Hydra.Dsl.Scala.Syntax: extensionGroupDefnWithTparams :: TypedTerm ExtensionGroupDefn -> TypedTerm [ParamType] -> TypedTerm ExtensionGroupDefn
- Hydra.Dsl.Scala.Syntax: extractInfixPat :: TypedTerm Pat -> TypedTerm NameData -> TypedTerm [Pat] -> TypedTerm ExtractInfixPat
- Hydra.Dsl.Scala.Syntax: extractInfixPatLhs :: TypedTerm ExtractInfixPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: extractInfixPatOp :: TypedTerm ExtractInfixPat -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: extractInfixPatRhs :: TypedTerm ExtractInfixPat -> TypedTerm [Pat]
- Hydra.Dsl.Scala.Syntax: extractInfixPatWithLhs :: TypedTerm ExtractInfixPat -> TypedTerm Pat -> TypedTerm ExtractInfixPat
- Hydra.Dsl.Scala.Syntax: extractInfixPatWithOp :: TypedTerm ExtractInfixPat -> TypedTerm NameData -> TypedTerm ExtractInfixPat
- Hydra.Dsl.Scala.Syntax: extractInfixPatWithRhs :: TypedTerm ExtractInfixPat -> TypedTerm [Pat] -> TypedTerm ExtractInfixPat
- Hydra.Dsl.Scala.Syntax: extractPat :: TypedTerm Data -> TypedTerm [Pat] -> TypedTerm ExtractPat
- Hydra.Dsl.Scala.Syntax: extractPatArgs :: TypedTerm ExtractPat -> TypedTerm [Pat]
- Hydra.Dsl.Scala.Syntax: extractPatFun :: TypedTerm ExtractPat -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: extractPatWithArgs :: TypedTerm ExtractPat -> TypedTerm [Pat] -> TypedTerm ExtractPat
- Hydra.Dsl.Scala.Syntax: extractPatWithFun :: TypedTerm ExtractPat -> TypedTerm Data -> TypedTerm ExtractPat
- Hydra.Dsl.Scala.Syntax: forData :: TypedTerm [Enumerator] -> TypedTerm ForData
- Hydra.Dsl.Scala.Syntax: forDataEnums :: TypedTerm ForData -> TypedTerm [Enumerator]
- Hydra.Dsl.Scala.Syntax: forDataWithEnums :: TypedTerm ForData -> TypedTerm [Enumerator] -> TypedTerm ForData
- Hydra.Dsl.Scala.Syntax: forYieldData :: TypedTerm [Enumerator] -> TypedTerm ForYieldData
- Hydra.Dsl.Scala.Syntax: forYieldDataEnums :: TypedTerm ForYieldData -> TypedTerm [Enumerator]
- Hydra.Dsl.Scala.Syntax: forYieldDataWithEnums :: TypedTerm ForYieldData -> TypedTerm [Enumerator] -> TypedTerm ForYieldData
- Hydra.Dsl.Scala.Syntax: functionData :: TypedTerm [ParamData] -> TypedTerm Data -> TypedTerm FunctionData
- Hydra.Dsl.Scala.Syntax: functionDataBody :: TypedTerm FunctionData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: functionDataParams :: TypedTerm FunctionData -> TypedTerm [ParamData]
- Hydra.Dsl.Scala.Syntax: functionDataWithBody :: TypedTerm FunctionData -> TypedTerm Data -> TypedTerm FunctionData
- Hydra.Dsl.Scala.Syntax: functionDataWithParams :: TypedTerm FunctionData -> TypedTerm [ParamData] -> TypedTerm FunctionData
- Hydra.Dsl.Scala.Syntax: functionType :: TypedTerm [Type] -> TypedTerm Type -> TypedTerm FunctionType
- Hydra.Dsl.Scala.Syntax: functionTypeParams :: TypedTerm FunctionType -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: functionTypeRes :: TypedTerm FunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: functionTypeWithParams :: TypedTerm FunctionType -> TypedTerm [Type] -> TypedTerm FunctionType
- Hydra.Dsl.Scala.Syntax: functionTypeWithRes :: TypedTerm FunctionType -> TypedTerm Type -> TypedTerm FunctionType
- Hydra.Dsl.Scala.Syntax: generatorEnumerator :: TypedTerm Pat -> TypedTerm Data -> TypedTerm GeneratorEnumerator
- Hydra.Dsl.Scala.Syntax: generatorEnumeratorPat :: TypedTerm GeneratorEnumerator -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: generatorEnumeratorRhs :: TypedTerm GeneratorEnumerator -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: generatorEnumeratorWithPat :: TypedTerm GeneratorEnumerator -> TypedTerm Pat -> TypedTerm GeneratorEnumerator
- Hydra.Dsl.Scala.Syntax: generatorEnumeratorWithRhs :: TypedTerm GeneratorEnumerator -> TypedTerm Data -> TypedTerm GeneratorEnumerator
- Hydra.Dsl.Scala.Syntax: givenAliasDefn :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamType]] -> TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm Data -> TypedTerm GivenAliasDefn
- Hydra.Dsl.Scala.Syntax: givenAliasDefnBody :: TypedTerm GivenAliasDefn -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: givenAliasDefnDecltpe :: TypedTerm GivenAliasDefn -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: givenAliasDefnMods :: TypedTerm GivenAliasDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: givenAliasDefnName :: TypedTerm GivenAliasDefn -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: givenAliasDefnSparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: givenAliasDefnTparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamType]]
- Hydra.Dsl.Scala.Syntax: givenAliasDefnWithBody :: TypedTerm GivenAliasDefn -> TypedTerm Data -> TypedTerm GivenAliasDefn
- Hydra.Dsl.Scala.Syntax: givenAliasDefnWithDecltpe :: TypedTerm GivenAliasDefn -> TypedTerm Type -> TypedTerm GivenAliasDefn
- Hydra.Dsl.Scala.Syntax: givenAliasDefnWithMods :: TypedTerm GivenAliasDefn -> TypedTerm [Mod] -> TypedTerm GivenAliasDefn
- Hydra.Dsl.Scala.Syntax: givenAliasDefnWithName :: TypedTerm GivenAliasDefn -> TypedTerm Name -> TypedTerm GivenAliasDefn
- Hydra.Dsl.Scala.Syntax: givenAliasDefnWithSparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamData]] -> TypedTerm GivenAliasDefn
- Hydra.Dsl.Scala.Syntax: givenAliasDefnWithTparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamType]] -> TypedTerm GivenAliasDefn
- Hydra.Dsl.Scala.Syntax: givenDecl :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm GivenDecl
- Hydra.Dsl.Scala.Syntax: givenDeclDecltpe :: TypedTerm GivenDecl -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: givenDeclMods :: TypedTerm GivenDecl -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: givenDeclName :: TypedTerm GivenDecl -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: givenDeclSparams :: TypedTerm GivenDecl -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: givenDeclTparams :: TypedTerm GivenDecl -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: givenDeclWithDecltpe :: TypedTerm GivenDecl -> TypedTerm Type -> TypedTerm GivenDecl
- Hydra.Dsl.Scala.Syntax: givenDeclWithMods :: TypedTerm GivenDecl -> TypedTerm [Mod] -> TypedTerm GivenDecl
- Hydra.Dsl.Scala.Syntax: givenDeclWithName :: TypedTerm GivenDecl -> TypedTerm NameData -> TypedTerm GivenDecl
- Hydra.Dsl.Scala.Syntax: givenDeclWithSparams :: TypedTerm GivenDecl -> TypedTerm [[ParamData]] -> TypedTerm GivenDecl
- Hydra.Dsl.Scala.Syntax: givenDeclWithTparams :: TypedTerm GivenDecl -> TypedTerm [ParamType] -> TypedTerm GivenDecl
- Hydra.Dsl.Scala.Syntax: givenDefn :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamType]] -> TypedTerm [[ParamData]] -> TypedTerm Template -> TypedTerm GivenDefn
- Hydra.Dsl.Scala.Syntax: givenDefnMods :: TypedTerm GivenDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: givenDefnName :: TypedTerm GivenDefn -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: givenDefnSparams :: TypedTerm GivenDefn -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: givenDefnTempl :: TypedTerm GivenDefn -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: givenDefnTparams :: TypedTerm GivenDefn -> TypedTerm [[ParamType]]
- Hydra.Dsl.Scala.Syntax: givenDefnWithMods :: TypedTerm GivenDefn -> TypedTerm [Mod] -> TypedTerm GivenDefn
- Hydra.Dsl.Scala.Syntax: givenDefnWithName :: TypedTerm GivenDefn -> TypedTerm Name -> TypedTerm GivenDefn
- Hydra.Dsl.Scala.Syntax: givenDefnWithSparams :: TypedTerm GivenDefn -> TypedTerm [[ParamData]] -> TypedTerm GivenDefn
- Hydra.Dsl.Scala.Syntax: givenDefnWithTempl :: TypedTerm GivenDefn -> TypedTerm Template -> TypedTerm GivenDefn
- Hydra.Dsl.Scala.Syntax: givenDefnWithTparams :: TypedTerm GivenDefn -> TypedTerm [[ParamType]] -> TypedTerm GivenDefn
- Hydra.Dsl.Scala.Syntax: givenImportee :: TypedTerm Type -> TypedTerm GivenImportee
- Hydra.Dsl.Scala.Syntax: givenImporteeTpe :: TypedTerm GivenImportee -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: givenImporteeWithTpe :: TypedTerm GivenImportee -> TypedTerm Type -> TypedTerm GivenImportee
- Hydra.Dsl.Scala.Syntax: givenPat :: TypedTerm Type -> TypedTerm GivenPat
- Hydra.Dsl.Scala.Syntax: givenPatTpe :: TypedTerm GivenPat -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: givenPatWithTpe :: TypedTerm GivenPat -> TypedTerm Type -> TypedTerm GivenPat
- Hydra.Dsl.Scala.Syntax: guardEnumerator :: TypedTerm Data -> TypedTerm GuardEnumerator
- Hydra.Dsl.Scala.Syntax: guardEnumeratorCond :: TypedTerm GuardEnumerator -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: guardEnumeratorWithCond :: TypedTerm GuardEnumerator -> TypedTerm Data -> TypedTerm GuardEnumerator
- Hydra.Dsl.Scala.Syntax: ifData :: TypedTerm Data -> TypedTerm Data -> TypedTerm Data -> TypedTerm IfData
- Hydra.Dsl.Scala.Syntax: ifDataCond :: TypedTerm IfData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: ifDataElsep :: TypedTerm IfData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: ifDataThenp :: TypedTerm IfData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: ifDataWithCond :: TypedTerm IfData -> TypedTerm Data -> TypedTerm IfData
- Hydra.Dsl.Scala.Syntax: ifDataWithElsep :: TypedTerm IfData -> TypedTerm Data -> TypedTerm IfData
- Hydra.Dsl.Scala.Syntax: ifDataWithThenp :: TypedTerm IfData -> TypedTerm Data -> TypedTerm IfData
- Hydra.Dsl.Scala.Syntax: implicitFunctionType :: TypedTerm [Type] -> TypedTerm Type -> TypedTerm ImplicitFunctionType
- Hydra.Dsl.Scala.Syntax: implicitFunctionTypeParams :: TypedTerm ImplicitFunctionType -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: implicitFunctionTypeRes :: TypedTerm ImplicitFunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: implicitFunctionTypeWithParams :: TypedTerm ImplicitFunctionType -> TypedTerm [Type] -> TypedTerm ImplicitFunctionType
- Hydra.Dsl.Scala.Syntax: implicitFunctionTypeWithRes :: TypedTerm ImplicitFunctionType -> TypedTerm Type -> TypedTerm ImplicitFunctionType
- Hydra.Dsl.Scala.Syntax: importExportStatExport :: TypedTerm Export -> TypedTerm ImportExportStat
- Hydra.Dsl.Scala.Syntax: importExportStatImport :: TypedTerm Import -> TypedTerm ImportExportStat
- Hydra.Dsl.Scala.Syntax: importImporters :: TypedTerm Import -> TypedTerm [Importer]
- Hydra.Dsl.Scala.Syntax: importWithImporters :: TypedTerm Import -> TypedTerm [Importer] -> TypedTerm Import
- Hydra.Dsl.Scala.Syntax: import_ :: TypedTerm [Importer] -> TypedTerm Import
- Hydra.Dsl.Scala.Syntax: importeeGiven :: TypedTerm GivenImportee -> TypedTerm Importee
- Hydra.Dsl.Scala.Syntax: importeeGivenAll :: TypedTerm Importee
- Hydra.Dsl.Scala.Syntax: importeeName :: TypedTerm NameImportee -> TypedTerm Importee
- Hydra.Dsl.Scala.Syntax: importeeRename :: TypedTerm RenameImportee -> TypedTerm Importee
- Hydra.Dsl.Scala.Syntax: importeeUnimport :: TypedTerm UnimportImportee -> TypedTerm Importee
- Hydra.Dsl.Scala.Syntax: importeeWildcard :: TypedTerm Importee
- Hydra.Dsl.Scala.Syntax: importer :: TypedTerm RefData -> TypedTerm [Importee] -> TypedTerm Importer
- Hydra.Dsl.Scala.Syntax: importerImportees :: TypedTerm Importer -> TypedTerm [Importee]
- Hydra.Dsl.Scala.Syntax: importerRef :: TypedTerm Importer -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: importerWithImportees :: TypedTerm Importer -> TypedTerm [Importee] -> TypedTerm Importer
- Hydra.Dsl.Scala.Syntax: importerWithRef :: TypedTerm Importer -> TypedTerm RefData -> TypedTerm Importer
- Hydra.Dsl.Scala.Syntax: init :: TypedTerm Type -> TypedTerm Name -> TypedTerm [[Data]] -> TypedTerm Init
- Hydra.Dsl.Scala.Syntax: initArgss :: TypedTerm Init -> TypedTerm [[Data]]
- Hydra.Dsl.Scala.Syntax: initName :: TypedTerm Init -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: initTpe :: TypedTerm Init -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: initWithArgss :: TypedTerm Init -> TypedTerm [[Data]] -> TypedTerm Init
- Hydra.Dsl.Scala.Syntax: initWithName :: TypedTerm Init -> TypedTerm Name -> TypedTerm Init
- Hydra.Dsl.Scala.Syntax: initWithTpe :: TypedTerm Init -> TypedTerm Type -> TypedTerm Init
- Hydra.Dsl.Scala.Syntax: interpolateData :: TypedTerm NameData -> TypedTerm [Lit] -> TypedTerm [Data] -> TypedTerm InterpolateData
- Hydra.Dsl.Scala.Syntax: interpolateDataArgs :: TypedTerm InterpolateData -> TypedTerm [Data]
- Hydra.Dsl.Scala.Syntax: interpolateDataParts :: TypedTerm InterpolateData -> TypedTerm [Lit]
- Hydra.Dsl.Scala.Syntax: interpolateDataPrefix :: TypedTerm InterpolateData -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: interpolateDataWithArgs :: TypedTerm InterpolateData -> TypedTerm [Data] -> TypedTerm InterpolateData
- Hydra.Dsl.Scala.Syntax: interpolateDataWithParts :: TypedTerm InterpolateData -> TypedTerm [Lit] -> TypedTerm InterpolateData
- Hydra.Dsl.Scala.Syntax: interpolateDataWithPrefix :: TypedTerm InterpolateData -> TypedTerm NameData -> TypedTerm InterpolateData
- Hydra.Dsl.Scala.Syntax: interpolatePat :: TypedTerm NameData -> TypedTerm [Lit] -> TypedTerm InterpolatePat
- Hydra.Dsl.Scala.Syntax: interpolatePatParts :: TypedTerm InterpolatePat -> TypedTerm [Lit]
- Hydra.Dsl.Scala.Syntax: interpolatePatPrefix :: TypedTerm InterpolatePat -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: interpolatePatWithParts :: TypedTerm InterpolatePat -> TypedTerm [Lit] -> TypedTerm InterpolatePat
- Hydra.Dsl.Scala.Syntax: interpolatePatWithPrefix :: TypedTerm InterpolatePat -> TypedTerm NameData -> TypedTerm InterpolatePat
- Hydra.Dsl.Scala.Syntax: lambdaType :: TypedTerm [ParamType] -> TypedTerm Type -> TypedTerm LambdaType
- Hydra.Dsl.Scala.Syntax: lambdaTypeTparams :: TypedTerm LambdaType -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: lambdaTypeTpe :: TypedTerm LambdaType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: lambdaTypeWithTparams :: TypedTerm LambdaType -> TypedTerm [ParamType] -> TypedTerm LambdaType
- Hydra.Dsl.Scala.Syntax: lambdaTypeWithTpe :: TypedTerm LambdaType -> TypedTerm Type -> TypedTerm LambdaType
- Hydra.Dsl.Scala.Syntax: litBoolean :: TypedTerm Bool -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litByte :: TypedTerm Int8 -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litBytes :: TypedTerm [Int] -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litChar :: TypedTerm Int -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litDouble :: TypedTerm Double -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litFloat :: TypedTerm Float -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litInt :: TypedTerm Int -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litLong :: TypedTerm Int64 -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litNull :: TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litShort :: TypedTerm Int16 -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litString :: TypedTerm String -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litSymbol :: TypedTerm ScalaSymbol -> TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: litUnit :: TypedTerm Lit
- Hydra.Dsl.Scala.Syntax: matchData :: TypedTerm Data -> TypedTerm [Case] -> TypedTerm MatchData
- Hydra.Dsl.Scala.Syntax: matchDataCases :: TypedTerm MatchData -> TypedTerm [Case]
- Hydra.Dsl.Scala.Syntax: matchDataExpr :: TypedTerm MatchData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: matchDataWithCases :: TypedTerm MatchData -> TypedTerm [Case] -> TypedTerm MatchData
- Hydra.Dsl.Scala.Syntax: matchDataWithExpr :: TypedTerm MatchData -> TypedTerm Data -> TypedTerm MatchData
- Hydra.Dsl.Scala.Syntax: matchType :: TypedTerm Type -> TypedTerm [TypeCase] -> TypedTerm MatchType
- Hydra.Dsl.Scala.Syntax: matchTypeCases :: TypedTerm MatchType -> TypedTerm [TypeCase]
- Hydra.Dsl.Scala.Syntax: matchTypeTpe :: TypedTerm MatchType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: matchTypeWithCases :: TypedTerm MatchType -> TypedTerm [TypeCase] -> TypedTerm MatchType
- Hydra.Dsl.Scala.Syntax: matchTypeWithTpe :: TypedTerm MatchType -> TypedTerm Type -> TypedTerm MatchType
- Hydra.Dsl.Scala.Syntax: memberSelf :: TypedTerm Self -> TypedTerm Member
- Hydra.Dsl.Scala.Syntax: memberTerm :: TypedTerm DataMember -> TypedTerm Member
- Hydra.Dsl.Scala.Syntax: memberTermParam :: TypedTerm ParamData -> TypedTerm Member
- Hydra.Dsl.Scala.Syntax: memberType :: TypedTerm TypeMember -> TypedTerm Member
- Hydra.Dsl.Scala.Syntax: memberTypeParam :: TypedTerm ParamType -> TypedTerm Member
- Hydra.Dsl.Scala.Syntax: methodType :: TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm MethodType
- Hydra.Dsl.Scala.Syntax: methodTypeParamss :: TypedTerm MethodType -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: methodTypeTpe :: TypedTerm MethodType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: methodTypeWithParamss :: TypedTerm MethodType -> TypedTerm [[ParamData]] -> TypedTerm MethodType
- Hydra.Dsl.Scala.Syntax: methodTypeWithTpe :: TypedTerm MethodType -> TypedTerm Type -> TypedTerm MethodType
- Hydra.Dsl.Scala.Syntax: modAbstract :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modAnnot :: TypedTerm AnnotMod -> TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modCase :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modContravariant :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modCovariant :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modFinal :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modImplicit :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modInfix :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modInline :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modLazy :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modOpaque :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modOpen :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modOverride :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modPrivate :: TypedTerm PrivateMod -> TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modProtected :: TypedTerm ProtectedMod -> TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modSealed :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modSuper :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modTransparent :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modUsing :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modValParam :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: modVarParam :: TypedTerm Mod
- Hydra.Dsl.Scala.Syntax: nameAnonymous :: TypedTerm Name
- Hydra.Dsl.Scala.Syntax: nameData :: TypedTerm PredefString -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: nameDataValue :: TypedTerm NameData -> TypedTerm PredefString
- Hydra.Dsl.Scala.Syntax: nameDataWithValue :: TypedTerm NameData -> TypedTerm PredefString -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: nameImportee :: TypedTerm Name -> TypedTerm NameImportee
- Hydra.Dsl.Scala.Syntax: nameImporteeName :: TypedTerm NameImportee -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: nameImporteeWithName :: TypedTerm NameImportee -> TypedTerm Name -> TypedTerm NameImportee
- Hydra.Dsl.Scala.Syntax: nameIndeterminate :: TypedTerm PredefString -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: nameType :: TypedTerm String -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: nameTypeValue :: TypedTerm NameType -> TypedTerm String
- Hydra.Dsl.Scala.Syntax: nameTypeWithValue :: TypedTerm NameType -> TypedTerm String -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: nameValue :: TypedTerm String -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: newAnonymousData :: TypedTerm Template -> TypedTerm NewAnonymousData
- Hydra.Dsl.Scala.Syntax: newAnonymousDataTempl :: TypedTerm NewAnonymousData -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: newAnonymousDataWithTempl :: TypedTerm NewAnonymousData -> TypedTerm Template -> TypedTerm NewAnonymousData
- Hydra.Dsl.Scala.Syntax: newData :: TypedTerm Init -> TypedTerm NewData
- Hydra.Dsl.Scala.Syntax: newDataInit :: TypedTerm NewData -> TypedTerm Init
- Hydra.Dsl.Scala.Syntax: newDataWithInit :: TypedTerm NewData -> TypedTerm Init -> TypedTerm NewData
- Hydra.Dsl.Scala.Syntax: objectDefn :: TypedTerm NameData -> TypedTerm ObjectDefn
- Hydra.Dsl.Scala.Syntax: objectDefnName :: TypedTerm ObjectDefn -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: objectDefnWithName :: TypedTerm ObjectDefn -> TypedTerm NameData -> TypedTerm ObjectDefn
- Hydra.Dsl.Scala.Syntax: objectPkg :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm Template -> TypedTerm ObjectPkg
- Hydra.Dsl.Scala.Syntax: objectPkgMods :: TypedTerm ObjectPkg -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: objectPkgName :: TypedTerm ObjectPkg -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: objectPkgTemplate :: TypedTerm ObjectPkg -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: objectPkgWithMods :: TypedTerm ObjectPkg -> TypedTerm [Mod] -> TypedTerm ObjectPkg
- Hydra.Dsl.Scala.Syntax: objectPkgWithName :: TypedTerm ObjectPkg -> TypedTerm NameData -> TypedTerm ObjectPkg
- Hydra.Dsl.Scala.Syntax: objectPkgWithTemplate :: TypedTerm ObjectPkg -> TypedTerm Template -> TypedTerm ObjectPkg
- Hydra.Dsl.Scala.Syntax: orType :: TypedTerm Type -> TypedTerm Type -> TypedTerm OrType
- Hydra.Dsl.Scala.Syntax: orTypeLhs :: TypedTerm OrType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: orTypeRhs :: TypedTerm OrType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: orTypeWithLhs :: TypedTerm OrType -> TypedTerm Type -> TypedTerm OrType
- Hydra.Dsl.Scala.Syntax: orTypeWithRhs :: TypedTerm OrType -> TypedTerm Type -> TypedTerm OrType
- Hydra.Dsl.Scala.Syntax: paramData :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm (Maybe Type) -> TypedTerm (Maybe Data) -> TypedTerm ParamData
- Hydra.Dsl.Scala.Syntax: paramDataDecltpe :: TypedTerm ParamData -> TypedTerm (Maybe Type)
- Hydra.Dsl.Scala.Syntax: paramDataDefault :: TypedTerm ParamData -> TypedTerm (Maybe Data)
- Hydra.Dsl.Scala.Syntax: paramDataMods :: TypedTerm ParamData -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: paramDataName :: TypedTerm ParamData -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: paramDataWithDecltpe :: TypedTerm ParamData -> TypedTerm (Maybe Type) -> TypedTerm ParamData
- Hydra.Dsl.Scala.Syntax: paramDataWithDefault :: TypedTerm ParamData -> TypedTerm (Maybe Data) -> TypedTerm ParamData
- Hydra.Dsl.Scala.Syntax: paramDataWithMods :: TypedTerm ParamData -> TypedTerm [Mod] -> TypedTerm ParamData
- Hydra.Dsl.Scala.Syntax: paramDataWithName :: TypedTerm ParamData -> TypedTerm Name -> TypedTerm ParamData
- Hydra.Dsl.Scala.Syntax: paramType :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [ParamType] -> TypedTerm [TypeBounds] -> TypedTerm [Type] -> TypedTerm [Type] -> TypedTerm ParamType
- Hydra.Dsl.Scala.Syntax: paramTypeCbounds :: TypedTerm ParamType -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: paramTypeMods :: TypedTerm ParamType -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: paramTypeName :: TypedTerm ParamType -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: paramTypeTbounds :: TypedTerm ParamType -> TypedTerm [TypeBounds]
- Hydra.Dsl.Scala.Syntax: paramTypeTparams :: TypedTerm ParamType -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: paramTypeVbounds :: TypedTerm ParamType -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: paramTypeWithCbounds :: TypedTerm ParamType -> TypedTerm [Type] -> TypedTerm ParamType
- Hydra.Dsl.Scala.Syntax: paramTypeWithMods :: TypedTerm ParamType -> TypedTerm [Mod] -> TypedTerm ParamType
- Hydra.Dsl.Scala.Syntax: paramTypeWithName :: TypedTerm ParamType -> TypedTerm Name -> TypedTerm ParamType
- Hydra.Dsl.Scala.Syntax: paramTypeWithTbounds :: TypedTerm ParamType -> TypedTerm [TypeBounds] -> TypedTerm ParamType
- Hydra.Dsl.Scala.Syntax: paramTypeWithTparams :: TypedTerm ParamType -> TypedTerm [ParamType] -> TypedTerm ParamType
- Hydra.Dsl.Scala.Syntax: paramTypeWithVbounds :: TypedTerm ParamType -> TypedTerm [Type] -> TypedTerm ParamType
- Hydra.Dsl.Scala.Syntax: partialFunctionData :: TypedTerm [Case] -> TypedTerm PartialFunctionData
- Hydra.Dsl.Scala.Syntax: partialFunctionDataCases :: TypedTerm PartialFunctionData -> TypedTerm [Case]
- Hydra.Dsl.Scala.Syntax: partialFunctionDataWithCases :: TypedTerm PartialFunctionData -> TypedTerm [Case] -> TypedTerm PartialFunctionData
- Hydra.Dsl.Scala.Syntax: patAlternative :: TypedTerm AlternativePat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patBind :: TypedTerm BindPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patExtract :: TypedTerm ExtractPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patExtractInfix :: TypedTerm ExtractInfixPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patGiven :: TypedTerm GivenPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patInterpolate :: TypedTerm InterpolatePat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patRepeated :: TypedTerm RepeatedPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patSeqWildcard :: TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patTuple :: TypedTerm TuplePat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patTyped :: TypedTerm TypedPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patVar :: TypedTerm VarPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: patWildcard :: TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: pkg :: TypedTerm NameData -> TypedTerm RefData -> TypedTerm [Stat] -> TypedTerm Pkg
- Hydra.Dsl.Scala.Syntax: pkgName :: TypedTerm Pkg -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: pkgRef :: TypedTerm Pkg -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: pkgStats :: TypedTerm Pkg -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: pkgWithName :: TypedTerm Pkg -> TypedTerm NameData -> TypedTerm Pkg
- Hydra.Dsl.Scala.Syntax: pkgWithRef :: TypedTerm Pkg -> TypedTerm RefData -> TypedTerm Pkg
- Hydra.Dsl.Scala.Syntax: pkgWithStats :: TypedTerm Pkg -> TypedTerm [Stat] -> TypedTerm Pkg
- Hydra.Dsl.Scala.Syntax: placeholderType :: TypedTerm TypeBounds -> TypedTerm PlaceholderType
- Hydra.Dsl.Scala.Syntax: placeholderTypeBounds :: TypedTerm PlaceholderType -> TypedTerm TypeBounds
- Hydra.Dsl.Scala.Syntax: placeholderTypeWithBounds :: TypedTerm PlaceholderType -> TypedTerm TypeBounds -> TypedTerm PlaceholderType
- Hydra.Dsl.Scala.Syntax: polyFunctionData :: TypedTerm [ParamType] -> TypedTerm Data -> TypedTerm PolyFunctionData
- Hydra.Dsl.Scala.Syntax: polyFunctionDataBody :: TypedTerm PolyFunctionData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: polyFunctionDataTparams :: TypedTerm PolyFunctionData -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: polyFunctionDataWithBody :: TypedTerm PolyFunctionData -> TypedTerm Data -> TypedTerm PolyFunctionData
- Hydra.Dsl.Scala.Syntax: polyFunctionDataWithTparams :: TypedTerm PolyFunctionData -> TypedTerm [ParamType] -> TypedTerm PolyFunctionData
- Hydra.Dsl.Scala.Syntax: polyFunctionType :: TypedTerm [ParamType] -> TypedTerm Type -> TypedTerm PolyFunctionType
- Hydra.Dsl.Scala.Syntax: polyFunctionTypeTparams :: TypedTerm PolyFunctionType -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: polyFunctionTypeTpe :: TypedTerm PolyFunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: polyFunctionTypeWithTparams :: TypedTerm PolyFunctionType -> TypedTerm [ParamType] -> TypedTerm PolyFunctionType
- Hydra.Dsl.Scala.Syntax: polyFunctionTypeWithTpe :: TypedTerm PolyFunctionType -> TypedTerm Type -> TypedTerm PolyFunctionType
- Hydra.Dsl.Scala.Syntax: predefString :: TypedTerm String -> TypedTerm PredefString
- Hydra.Dsl.Scala.Syntax: primaryCtor :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamData]] -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: primaryCtorMods :: TypedTerm PrimaryCtor -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: primaryCtorName :: TypedTerm PrimaryCtor -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: primaryCtorParamss :: TypedTerm PrimaryCtor -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: primaryCtorWithMods :: TypedTerm PrimaryCtor -> TypedTerm [Mod] -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: primaryCtorWithName :: TypedTerm PrimaryCtor -> TypedTerm Name -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: primaryCtorWithParamss :: TypedTerm PrimaryCtor -> TypedTerm [[ParamData]] -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: privateMod :: TypedTerm Ref -> TypedTerm PrivateMod
- Hydra.Dsl.Scala.Syntax: privateModWithWithin :: TypedTerm PrivateMod -> TypedTerm Ref -> TypedTerm PrivateMod
- Hydra.Dsl.Scala.Syntax: privateModWithin :: TypedTerm PrivateMod -> TypedTerm Ref
- Hydra.Dsl.Scala.Syntax: projectType :: TypedTerm Type -> TypedTerm NameType -> TypedTerm ProjectType
- Hydra.Dsl.Scala.Syntax: projectTypeName :: TypedTerm ProjectType -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: projectTypeQual :: TypedTerm ProjectType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: projectTypeWithName :: TypedTerm ProjectType -> TypedTerm NameType -> TypedTerm ProjectType
- Hydra.Dsl.Scala.Syntax: projectTypeWithQual :: TypedTerm ProjectType -> TypedTerm Type -> TypedTerm ProjectType
- Hydra.Dsl.Scala.Syntax: protectedMod :: TypedTerm Ref -> TypedTerm ProtectedMod
- Hydra.Dsl.Scala.Syntax: protectedModWithWithin :: TypedTerm ProtectedMod -> TypedTerm Ref -> TypedTerm ProtectedMod
- Hydra.Dsl.Scala.Syntax: protectedModWithin :: TypedTerm ProtectedMod -> TypedTerm Ref
- Hydra.Dsl.Scala.Syntax: refDataAnonymous :: TypedTerm AnonymousData -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: refDataApplyUnary :: TypedTerm ApplyUnaryData -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: refDataName :: TypedTerm NameData -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: refDataSelect :: TypedTerm SelectData -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: refDataSuper :: TypedTerm SuperData -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: refDataThis :: TypedTerm ThisData -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: refInit :: TypedTerm Init -> TypedTerm Ref
- Hydra.Dsl.Scala.Syntax: refName :: TypedTerm Name -> TypedTerm Ref
- Hydra.Dsl.Scala.Syntax: refTypeName :: TypedTerm NameType -> TypedTerm RefType
- Hydra.Dsl.Scala.Syntax: refTypeProject :: TypedTerm ProjectType -> TypedTerm RefType
- Hydra.Dsl.Scala.Syntax: refTypeSelect :: TypedTerm SelectType -> TypedTerm RefType
- Hydra.Dsl.Scala.Syntax: refTypeSingleton :: TypedTerm SingletonType -> TypedTerm RefType
- Hydra.Dsl.Scala.Syntax: refineType :: TypedTerm (Maybe Type) -> TypedTerm [Stat] -> TypedTerm RefineType
- Hydra.Dsl.Scala.Syntax: refineTypeStats :: TypedTerm RefineType -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: refineTypeTpe :: TypedTerm RefineType -> TypedTerm (Maybe Type)
- Hydra.Dsl.Scala.Syntax: refineTypeWithStats :: TypedTerm RefineType -> TypedTerm [Stat] -> TypedTerm RefineType
- Hydra.Dsl.Scala.Syntax: refineTypeWithTpe :: TypedTerm RefineType -> TypedTerm (Maybe Type) -> TypedTerm RefineType
- Hydra.Dsl.Scala.Syntax: renameImportee :: TypedTerm Name -> TypedTerm Name -> TypedTerm RenameImportee
- Hydra.Dsl.Scala.Syntax: renameImporteeName :: TypedTerm RenameImportee -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: renameImporteeRename :: TypedTerm RenameImportee -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: renameImporteeWithName :: TypedTerm RenameImportee -> TypedTerm Name -> TypedTerm RenameImportee
- Hydra.Dsl.Scala.Syntax: renameImporteeWithRename :: TypedTerm RenameImportee -> TypedTerm Name -> TypedTerm RenameImportee
- Hydra.Dsl.Scala.Syntax: repeatedData :: TypedTerm Data -> TypedTerm RepeatedData
- Hydra.Dsl.Scala.Syntax: repeatedDataExpr :: TypedTerm RepeatedData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: repeatedDataWithExpr :: TypedTerm RepeatedData -> TypedTerm Data -> TypedTerm RepeatedData
- Hydra.Dsl.Scala.Syntax: repeatedEnumCaseDefn :: TypedTerm [Mod] -> TypedTerm [NameData] -> TypedTerm RepeatedEnumCaseDefn
- Hydra.Dsl.Scala.Syntax: repeatedEnumCaseDefnCases :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [NameData]
- Hydra.Dsl.Scala.Syntax: repeatedEnumCaseDefnMods :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: repeatedEnumCaseDefnWithCases :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [NameData] -> TypedTerm RepeatedEnumCaseDefn
- Hydra.Dsl.Scala.Syntax: repeatedEnumCaseDefnWithMods :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [Mod] -> TypedTerm RepeatedEnumCaseDefn
- Hydra.Dsl.Scala.Syntax: repeatedPat :: TypedTerm NameData -> TypedTerm RepeatedPat
- Hydra.Dsl.Scala.Syntax: repeatedPatName :: TypedTerm RepeatedPat -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: repeatedPatWithName :: TypedTerm RepeatedPat -> TypedTerm NameData -> TypedTerm RepeatedPat
- Hydra.Dsl.Scala.Syntax: repeatedType :: TypedTerm Type -> TypedTerm RepeatedType
- Hydra.Dsl.Scala.Syntax: repeatedTypeTpe :: TypedTerm RepeatedType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: repeatedTypeWithTpe :: TypedTerm RepeatedType -> TypedTerm Type -> TypedTerm RepeatedType
- Hydra.Dsl.Scala.Syntax: returnData :: TypedTerm Data -> TypedTerm ReturnData
- Hydra.Dsl.Scala.Syntax: returnDataExpr :: TypedTerm ReturnData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: returnDataWithExpr :: TypedTerm ReturnData -> TypedTerm Data -> TypedTerm ReturnData
- Hydra.Dsl.Scala.Syntax: scalaSymbol :: TypedTerm String -> TypedTerm ScalaSymbol
- Hydra.Dsl.Scala.Syntax: scalaSymbolName :: TypedTerm ScalaSymbol -> TypedTerm String
- Hydra.Dsl.Scala.Syntax: scalaSymbolWithName :: TypedTerm ScalaSymbol -> TypedTerm String -> TypedTerm ScalaSymbol
- Hydra.Dsl.Scala.Syntax: secondaryCtor :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamData]] -> TypedTerm Init -> TypedTerm [Stat] -> TypedTerm SecondaryCtor
- Hydra.Dsl.Scala.Syntax: secondaryCtorInit :: TypedTerm SecondaryCtor -> TypedTerm Init
- Hydra.Dsl.Scala.Syntax: secondaryCtorMods :: TypedTerm SecondaryCtor -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: secondaryCtorName :: TypedTerm SecondaryCtor -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: secondaryCtorParamss :: TypedTerm SecondaryCtor -> TypedTerm [[ParamData]]
- Hydra.Dsl.Scala.Syntax: secondaryCtorStats :: TypedTerm SecondaryCtor -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: secondaryCtorWithInit :: TypedTerm SecondaryCtor -> TypedTerm Init -> TypedTerm SecondaryCtor
- Hydra.Dsl.Scala.Syntax: secondaryCtorWithMods :: TypedTerm SecondaryCtor -> TypedTerm [Mod] -> TypedTerm SecondaryCtor
- Hydra.Dsl.Scala.Syntax: secondaryCtorWithName :: TypedTerm SecondaryCtor -> TypedTerm Name -> TypedTerm SecondaryCtor
- Hydra.Dsl.Scala.Syntax: secondaryCtorWithParamss :: TypedTerm SecondaryCtor -> TypedTerm [[ParamData]] -> TypedTerm SecondaryCtor
- Hydra.Dsl.Scala.Syntax: secondaryCtorWithStats :: TypedTerm SecondaryCtor -> TypedTerm [Stat] -> TypedTerm SecondaryCtor
- Hydra.Dsl.Scala.Syntax: selectData :: TypedTerm Data -> TypedTerm NameData -> TypedTerm SelectData
- Hydra.Dsl.Scala.Syntax: selectDataName :: TypedTerm SelectData -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: selectDataQual :: TypedTerm SelectData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: selectDataWithName :: TypedTerm SelectData -> TypedTerm NameData -> TypedTerm SelectData
- Hydra.Dsl.Scala.Syntax: selectDataWithQual :: TypedTerm SelectData -> TypedTerm Data -> TypedTerm SelectData
- Hydra.Dsl.Scala.Syntax: selectType :: TypedTerm RefData -> TypedTerm NameType -> TypedTerm SelectType
- Hydra.Dsl.Scala.Syntax: selectTypeName :: TypedTerm SelectType -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: selectTypeQual :: TypedTerm SelectType -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: selectTypeWithName :: TypedTerm SelectType -> TypedTerm NameType -> TypedTerm SelectType
- Hydra.Dsl.Scala.Syntax: selectTypeWithQual :: TypedTerm SelectType -> TypedTerm RefData -> TypedTerm SelectType
- Hydra.Dsl.Scala.Syntax: self :: TypedTerm () -> TypedTerm Self
- Hydra.Dsl.Scala.Syntax: singletonType :: TypedTerm RefData -> TypedTerm SingletonType
- Hydra.Dsl.Scala.Syntax: singletonTypeRef :: TypedTerm SingletonType -> TypedTerm RefData
- Hydra.Dsl.Scala.Syntax: singletonTypeWithRef :: TypedTerm SingletonType -> TypedTerm RefData -> TypedTerm SingletonType
- Hydra.Dsl.Scala.Syntax: source :: TypedTerm [Stat] -> TypedTerm Source
- Hydra.Dsl.Scala.Syntax: sourceStats :: TypedTerm Source -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: sourceWithStats :: TypedTerm Source -> TypedTerm [Stat] -> TypedTerm Source
- Hydra.Dsl.Scala.Syntax: statDecl :: TypedTerm Decl -> TypedTerm Stat
- Hydra.Dsl.Scala.Syntax: statDefn :: TypedTerm Defn -> TypedTerm Stat
- Hydra.Dsl.Scala.Syntax: statImportExport :: TypedTerm ImportExportStat -> TypedTerm Stat
- Hydra.Dsl.Scala.Syntax: statTerm :: TypedTerm Data -> TypedTerm Stat
- Hydra.Dsl.Scala.Syntax: superData :: TypedTerm Name -> TypedTerm Name -> TypedTerm SuperData
- Hydra.Dsl.Scala.Syntax: superDataSuperp :: TypedTerm SuperData -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: superDataThisp :: TypedTerm SuperData -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: superDataWithSuperp :: TypedTerm SuperData -> TypedTerm Name -> TypedTerm SuperData
- Hydra.Dsl.Scala.Syntax: superDataWithThisp :: TypedTerm SuperData -> TypedTerm Name -> TypedTerm SuperData
- Hydra.Dsl.Scala.Syntax: template :: TypedTerm [Stat] -> TypedTerm [Init] -> TypedTerm Self -> TypedTerm [Stat] -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: templateEarly :: TypedTerm Template -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: templateInits :: TypedTerm Template -> TypedTerm [Init]
- Hydra.Dsl.Scala.Syntax: templateSelf :: TypedTerm Template -> TypedTerm Self
- Hydra.Dsl.Scala.Syntax: templateStats :: TypedTerm Template -> TypedTerm [Stat]
- Hydra.Dsl.Scala.Syntax: templateWithEarly :: TypedTerm Template -> TypedTerm [Stat] -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: templateWithInits :: TypedTerm Template -> TypedTerm [Init] -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: templateWithSelf :: TypedTerm Template -> TypedTerm Self -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: templateWithStats :: TypedTerm Template -> TypedTerm [Stat] -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: thisData :: TypedTerm () -> TypedTerm ThisData
- Hydra.Dsl.Scala.Syntax: throwData :: TypedTerm Data -> TypedTerm ThrowData
- Hydra.Dsl.Scala.Syntax: throwDataExpr :: TypedTerm ThrowData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: throwDataWithExpr :: TypedTerm ThrowData -> TypedTerm Data -> TypedTerm ThrowData
- Hydra.Dsl.Scala.Syntax: traitDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm Template -> TypedTerm TraitDefn
- Hydra.Dsl.Scala.Syntax: traitDefnCtor :: TypedTerm TraitDefn -> TypedTerm PrimaryCtor
- Hydra.Dsl.Scala.Syntax: traitDefnMods :: TypedTerm TraitDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: traitDefnName :: TypedTerm TraitDefn -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: traitDefnTemplate :: TypedTerm TraitDefn -> TypedTerm Template
- Hydra.Dsl.Scala.Syntax: traitDefnTparams :: TypedTerm TraitDefn -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: traitDefnWithCtor :: TypedTerm TraitDefn -> TypedTerm PrimaryCtor -> TypedTerm TraitDefn
- Hydra.Dsl.Scala.Syntax: traitDefnWithMods :: TypedTerm TraitDefn -> TypedTerm [Mod] -> TypedTerm TraitDefn
- Hydra.Dsl.Scala.Syntax: traitDefnWithName :: TypedTerm TraitDefn -> TypedTerm NameType -> TypedTerm TraitDefn
- Hydra.Dsl.Scala.Syntax: traitDefnWithTemplate :: TypedTerm TraitDefn -> TypedTerm Template -> TypedTerm TraitDefn
- Hydra.Dsl.Scala.Syntax: traitDefnWithTparams :: TypedTerm TraitDefn -> TypedTerm [ParamType] -> TypedTerm TraitDefn
- Hydra.Dsl.Scala.Syntax: treeBounds :: TypedTerm TypeBounds -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeCaseTree :: TypedTerm CaseTree -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeCtor :: TypedTerm Ctor -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeEnumerator :: TypedTerm Enumerator -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeImportee :: TypedTerm Importee -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeImporter :: TypedTerm Importer -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeMember :: TypedTerm Member -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeMod :: TypedTerm Mod -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treePat :: TypedTerm Pat -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeRef :: TypedTerm Ref -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeSource :: TypedTerm Source -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeStat :: TypedTerm Stat -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeTemplate :: TypedTerm Template -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: treeType :: TypedTerm Type -> TypedTerm Tree
- Hydra.Dsl.Scala.Syntax: tryData :: TypedTerm Data -> TypedTerm [Case] -> TypedTerm (Maybe Data) -> TypedTerm TryData
- Hydra.Dsl.Scala.Syntax: tryDataCatchp :: TypedTerm TryData -> TypedTerm [Case]
- Hydra.Dsl.Scala.Syntax: tryDataExpr :: TypedTerm TryData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: tryDataFinallyp :: TypedTerm TryData -> TypedTerm (Maybe Data)
- Hydra.Dsl.Scala.Syntax: tryDataWithCatchp :: TypedTerm TryData -> TypedTerm [Case] -> TypedTerm TryData
- Hydra.Dsl.Scala.Syntax: tryDataWithExpr :: TypedTerm TryData -> TypedTerm Data -> TypedTerm TryData
- Hydra.Dsl.Scala.Syntax: tryDataWithFinallyp :: TypedTerm TryData -> TypedTerm (Maybe Data) -> TypedTerm TryData
- Hydra.Dsl.Scala.Syntax: tryWithHandlerData :: TypedTerm Data -> TypedTerm Data -> TypedTerm (Maybe Data) -> TypedTerm TryWithHandlerData
- Hydra.Dsl.Scala.Syntax: tryWithHandlerDataCatchp :: TypedTerm TryWithHandlerData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: tryWithHandlerDataExpr :: TypedTerm TryWithHandlerData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: tryWithHandlerDataFinallyp :: TypedTerm TryWithHandlerData -> TypedTerm (Maybe Data)
- Hydra.Dsl.Scala.Syntax: tryWithHandlerDataWithCatchp :: TypedTerm TryWithHandlerData -> TypedTerm Data -> TypedTerm TryWithHandlerData
- Hydra.Dsl.Scala.Syntax: tryWithHandlerDataWithExpr :: TypedTerm TryWithHandlerData -> TypedTerm Data -> TypedTerm TryWithHandlerData
- Hydra.Dsl.Scala.Syntax: tryWithHandlerDataWithFinallyp :: TypedTerm TryWithHandlerData -> TypedTerm (Maybe Data) -> TypedTerm TryWithHandlerData
- Hydra.Dsl.Scala.Syntax: tupleData :: TypedTerm [Data] -> TypedTerm TupleData
- Hydra.Dsl.Scala.Syntax: tupleDataArgs :: TypedTerm TupleData -> TypedTerm [Data]
- Hydra.Dsl.Scala.Syntax: tupleDataWithArgs :: TypedTerm TupleData -> TypedTerm [Data] -> TypedTerm TupleData
- Hydra.Dsl.Scala.Syntax: tuplePat :: TypedTerm [Pat] -> TypedTerm TuplePat
- Hydra.Dsl.Scala.Syntax: tuplePatArgs :: TypedTerm TuplePat -> TypedTerm [Pat]
- Hydra.Dsl.Scala.Syntax: tuplePatWithArgs :: TypedTerm TuplePat -> TypedTerm [Pat] -> TypedTerm TuplePat
- Hydra.Dsl.Scala.Syntax: tupleType :: TypedTerm [Type] -> TypedTerm TupleType
- Hydra.Dsl.Scala.Syntax: tupleTypeArgs :: TypedTerm TupleType -> TypedTerm [Type]
- Hydra.Dsl.Scala.Syntax: tupleTypeWithArgs :: TypedTerm TupleType -> TypedTerm [Type] -> TypedTerm TupleType
- Hydra.Dsl.Scala.Syntax: typeAnd :: TypedTerm AndType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeAnnotate :: TypedTerm AnnotateType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeAnonymousName :: TypedTerm AnonymousNameType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeApply :: TypedTerm ApplyType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeApplyInfix :: TypedTerm ApplyInfixType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeBounds :: TypedTerm (Maybe Type) -> TypedTerm (Maybe Type) -> TypedTerm TypeBounds
- Hydra.Dsl.Scala.Syntax: typeBoundsHi :: TypedTerm TypeBounds -> TypedTerm (Maybe Type)
- Hydra.Dsl.Scala.Syntax: typeBoundsLo :: TypedTerm TypeBounds -> TypedTerm (Maybe Type)
- Hydra.Dsl.Scala.Syntax: typeBoundsWithHi :: TypedTerm TypeBounds -> TypedTerm (Maybe Type) -> TypedTerm TypeBounds
- Hydra.Dsl.Scala.Syntax: typeBoundsWithLo :: TypedTerm TypeBounds -> TypedTerm (Maybe Type) -> TypedTerm TypeBounds
- Hydra.Dsl.Scala.Syntax: typeByName :: TypedTerm ByNameType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeCase :: TypedTerm Type -> TypedTerm Type -> TypedTerm TypeCase
- Hydra.Dsl.Scala.Syntax: typeCaseBody :: TypedTerm TypeCase -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeCasePat :: TypedTerm TypeCase -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeCaseWithBody :: TypedTerm TypeCase -> TypedTerm Type -> TypedTerm TypeCase
- Hydra.Dsl.Scala.Syntax: typeCaseWithPat :: TypedTerm TypeCase -> TypedTerm Type -> TypedTerm TypeCase
- Hydra.Dsl.Scala.Syntax: typeContextFunction :: TypedTerm ContextFunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeDecl :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm TypeBounds -> TypedTerm TypeDecl
- Hydra.Dsl.Scala.Syntax: typeDeclBounds :: TypedTerm TypeDecl -> TypedTerm TypeBounds
- Hydra.Dsl.Scala.Syntax: typeDeclMods :: TypedTerm TypeDecl -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: typeDeclName :: TypedTerm TypeDecl -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: typeDeclTparams :: TypedTerm TypeDecl -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: typeDeclWithBounds :: TypedTerm TypeDecl -> TypedTerm TypeBounds -> TypedTerm TypeDecl
- Hydra.Dsl.Scala.Syntax: typeDeclWithMods :: TypedTerm TypeDecl -> TypedTerm [Mod] -> TypedTerm TypeDecl
- Hydra.Dsl.Scala.Syntax: typeDeclWithName :: TypedTerm TypeDecl -> TypedTerm NameType -> TypedTerm TypeDecl
- Hydra.Dsl.Scala.Syntax: typeDeclWithTparams :: TypedTerm TypeDecl -> TypedTerm [ParamType] -> TypedTerm TypeDecl
- Hydra.Dsl.Scala.Syntax: typeDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm Type -> TypedTerm TypeDefn
- Hydra.Dsl.Scala.Syntax: typeDefnBody :: TypedTerm TypeDefn -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeDefnMods :: TypedTerm TypeDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: typeDefnName :: TypedTerm TypeDefn -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: typeDefnTparams :: TypedTerm TypeDefn -> TypedTerm [ParamType]
- Hydra.Dsl.Scala.Syntax: typeDefnWithBody :: TypedTerm TypeDefn -> TypedTerm Type -> TypedTerm TypeDefn
- Hydra.Dsl.Scala.Syntax: typeDefnWithMods :: TypedTerm TypeDefn -> TypedTerm [Mod] -> TypedTerm TypeDefn
- Hydra.Dsl.Scala.Syntax: typeDefnWithName :: TypedTerm TypeDefn -> TypedTerm NameType -> TypedTerm TypeDefn
- Hydra.Dsl.Scala.Syntax: typeDefnWithTparams :: TypedTerm TypeDefn -> TypedTerm [ParamType] -> TypedTerm TypeDefn
- Hydra.Dsl.Scala.Syntax: typeExistential :: TypedTerm ExistentialType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeFunction :: TypedTerm FunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeImplicitFunction :: TypedTerm ImplicitFunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeLambda :: TypedTerm LambdaType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeMatch :: TypedTerm MatchType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeMember :: TypedTerm NameType -> TypedTerm TypeMember
- Hydra.Dsl.Scala.Syntax: typeMemberName :: TypedTerm TypeMember -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: typeMemberWithName :: TypedTerm TypeMember -> TypedTerm NameType -> TypedTerm TypeMember
- Hydra.Dsl.Scala.Syntax: typeMethod :: TypedTerm MethodType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeOr :: TypedTerm OrType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typePlaceholder :: TypedTerm PlaceholderType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typePolyFunction :: TypedTerm PolyFunctionType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeRef :: TypedTerm RefType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeRefine :: TypedTerm RefineType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeRepeated :: TypedTerm RepeatedType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeTuple :: TypedTerm TupleType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeTypedParam :: TypedTerm TypedParamType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeVar :: TypedTerm VarType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typeWith :: TypedTerm WithType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typedParamType :: TypedTerm Name -> TypedTerm Type -> TypedTerm TypedParamType
- Hydra.Dsl.Scala.Syntax: typedParamTypeName :: TypedTerm TypedParamType -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: typedParamTypeTyp :: TypedTerm TypedParamType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typedParamTypeWithName :: TypedTerm TypedParamType -> TypedTerm Name -> TypedTerm TypedParamType
- Hydra.Dsl.Scala.Syntax: typedParamTypeWithTyp :: TypedTerm TypedParamType -> TypedTerm Type -> TypedTerm TypedParamType
- Hydra.Dsl.Scala.Syntax: typedPat :: TypedTerm Pat -> TypedTerm Type -> TypedTerm TypedPat
- Hydra.Dsl.Scala.Syntax: typedPatLhs :: TypedTerm TypedPat -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: typedPatRhs :: TypedTerm TypedPat -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: typedPatWithLhs :: TypedTerm TypedPat -> TypedTerm Pat -> TypedTerm TypedPat
- Hydra.Dsl.Scala.Syntax: typedPatWithRhs :: TypedTerm TypedPat -> TypedTerm Type -> TypedTerm TypedPat
- Hydra.Dsl.Scala.Syntax: unAnonymousData :: TypedTerm AnonymousData -> TypedTerm ()
- Hydra.Dsl.Scala.Syntax: unAnonymousNameType :: TypedTerm AnonymousNameType -> TypedTerm ()
- Hydra.Dsl.Scala.Syntax: unPredefString :: TypedTerm PredefString -> TypedTerm String
- Hydra.Dsl.Scala.Syntax: unSelf :: TypedTerm Self -> TypedTerm ()
- Hydra.Dsl.Scala.Syntax: unThisData :: TypedTerm ThisData -> TypedTerm ()
- Hydra.Dsl.Scala.Syntax: unimportImportee :: TypedTerm Name -> TypedTerm UnimportImportee
- Hydra.Dsl.Scala.Syntax: unimportImporteeName :: TypedTerm UnimportImportee -> TypedTerm Name
- Hydra.Dsl.Scala.Syntax: unimportImporteeWithName :: TypedTerm UnimportImportee -> TypedTerm Name -> TypedTerm UnimportImportee
- Hydra.Dsl.Scala.Syntax: valDecl :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm Type -> TypedTerm ValDecl
- Hydra.Dsl.Scala.Syntax: valDeclDecltpe :: TypedTerm ValDecl -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: valDeclMods :: TypedTerm ValDecl -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: valDeclPats :: TypedTerm ValDecl -> TypedTerm [Pat]
- Hydra.Dsl.Scala.Syntax: valDeclWithDecltpe :: TypedTerm ValDecl -> TypedTerm Type -> TypedTerm ValDecl
- Hydra.Dsl.Scala.Syntax: valDeclWithMods :: TypedTerm ValDecl -> TypedTerm [Mod] -> TypedTerm ValDecl
- Hydra.Dsl.Scala.Syntax: valDeclWithPats :: TypedTerm ValDecl -> TypedTerm [Pat] -> TypedTerm ValDecl
- Hydra.Dsl.Scala.Syntax: valDefn :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm (Maybe Type) -> TypedTerm Data -> TypedTerm ValDefn
- Hydra.Dsl.Scala.Syntax: valDefnDecltpe :: TypedTerm ValDefn -> TypedTerm (Maybe Type)
- Hydra.Dsl.Scala.Syntax: valDefnMods :: TypedTerm ValDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: valDefnPats :: TypedTerm ValDefn -> TypedTerm [Pat]
- Hydra.Dsl.Scala.Syntax: valDefnRhs :: TypedTerm ValDefn -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: valDefnWithDecltpe :: TypedTerm ValDefn -> TypedTerm (Maybe Type) -> TypedTerm ValDefn
- Hydra.Dsl.Scala.Syntax: valDefnWithMods :: TypedTerm ValDefn -> TypedTerm [Mod] -> TypedTerm ValDefn
- Hydra.Dsl.Scala.Syntax: valDefnWithPats :: TypedTerm ValDefn -> TypedTerm [Pat] -> TypedTerm ValDefn
- Hydra.Dsl.Scala.Syntax: valDefnWithRhs :: TypedTerm ValDefn -> TypedTerm Data -> TypedTerm ValDefn
- Hydra.Dsl.Scala.Syntax: valEnumerator :: TypedTerm Pat -> TypedTerm Data -> TypedTerm ValEnumerator
- Hydra.Dsl.Scala.Syntax: valEnumeratorPat :: TypedTerm ValEnumerator -> TypedTerm Pat
- Hydra.Dsl.Scala.Syntax: valEnumeratorRhs :: TypedTerm ValEnumerator -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: valEnumeratorWithPat :: TypedTerm ValEnumerator -> TypedTerm Pat -> TypedTerm ValEnumerator
- Hydra.Dsl.Scala.Syntax: valEnumeratorWithRhs :: TypedTerm ValEnumerator -> TypedTerm Data -> TypedTerm ValEnumerator
- Hydra.Dsl.Scala.Syntax: varDecl :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm Type -> TypedTerm VarDecl
- Hydra.Dsl.Scala.Syntax: varDeclDecltpe :: TypedTerm VarDecl -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: varDeclMods :: TypedTerm VarDecl -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: varDeclPats :: TypedTerm VarDecl -> TypedTerm [Pat]
- Hydra.Dsl.Scala.Syntax: varDeclWithDecltpe :: TypedTerm VarDecl -> TypedTerm Type -> TypedTerm VarDecl
- Hydra.Dsl.Scala.Syntax: varDeclWithMods :: TypedTerm VarDecl -> TypedTerm [Mod] -> TypedTerm VarDecl
- Hydra.Dsl.Scala.Syntax: varDeclWithPats :: TypedTerm VarDecl -> TypedTerm [Pat] -> TypedTerm VarDecl
- Hydra.Dsl.Scala.Syntax: varDefn :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm Type -> TypedTerm (Maybe Data) -> TypedTerm VarDefn
- Hydra.Dsl.Scala.Syntax: varDefnDecltpe :: TypedTerm VarDefn -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: varDefnMods :: TypedTerm VarDefn -> TypedTerm [Mod]
- Hydra.Dsl.Scala.Syntax: varDefnPats :: TypedTerm VarDefn -> TypedTerm [Pat]
- Hydra.Dsl.Scala.Syntax: varDefnRhs :: TypedTerm VarDefn -> TypedTerm (Maybe Data)
- Hydra.Dsl.Scala.Syntax: varDefnWithDecltpe :: TypedTerm VarDefn -> TypedTerm Type -> TypedTerm VarDefn
- Hydra.Dsl.Scala.Syntax: varDefnWithMods :: TypedTerm VarDefn -> TypedTerm [Mod] -> TypedTerm VarDefn
- Hydra.Dsl.Scala.Syntax: varDefnWithPats :: TypedTerm VarDefn -> TypedTerm [Pat] -> TypedTerm VarDefn
- Hydra.Dsl.Scala.Syntax: varDefnWithRhs :: TypedTerm VarDefn -> TypedTerm (Maybe Data) -> TypedTerm VarDefn
- Hydra.Dsl.Scala.Syntax: varPat :: TypedTerm NameData -> TypedTerm VarPat
- Hydra.Dsl.Scala.Syntax: varPatName :: TypedTerm VarPat -> TypedTerm NameData
- Hydra.Dsl.Scala.Syntax: varPatWithName :: TypedTerm VarPat -> TypedTerm NameData -> TypedTerm VarPat
- Hydra.Dsl.Scala.Syntax: varType :: TypedTerm NameType -> TypedTerm VarType
- Hydra.Dsl.Scala.Syntax: varTypeName :: TypedTerm VarType -> TypedTerm NameType
- Hydra.Dsl.Scala.Syntax: varTypeWithName :: TypedTerm VarType -> TypedTerm NameType -> TypedTerm VarType
- Hydra.Dsl.Scala.Syntax: whileData :: TypedTerm Data -> TypedTerm Data -> TypedTerm WhileData
- Hydra.Dsl.Scala.Syntax: whileDataBody :: TypedTerm WhileData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: whileDataExpr :: TypedTerm WhileData -> TypedTerm Data
- Hydra.Dsl.Scala.Syntax: whileDataWithBody :: TypedTerm WhileData -> TypedTerm Data -> TypedTerm WhileData
- Hydra.Dsl.Scala.Syntax: whileDataWithExpr :: TypedTerm WhileData -> TypedTerm Data -> TypedTerm WhileData
- Hydra.Dsl.Scala.Syntax: withType :: TypedTerm Type -> TypedTerm Type -> TypedTerm WithType
- Hydra.Dsl.Scala.Syntax: withTypeLhs :: TypedTerm WithType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: withTypeRhs :: TypedTerm WithType -> TypedTerm Type
- Hydra.Dsl.Scala.Syntax: withTypeWithLhs :: TypedTerm WithType -> TypedTerm Type -> TypedTerm WithType
- Hydra.Dsl.Scala.Syntax: withTypeWithRhs :: TypedTerm WithType -> TypedTerm Type -> TypedTerm WithType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AlternativePat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AndType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AnnotMod
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AnnotateData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AnnotateType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AnonymousData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AnonymousNameType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ApplyData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ApplyInfixData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ApplyInfixType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ApplyType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ApplyTypeData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ApplyUnaryData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ApplyUsingData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AscribeData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.AssignData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.BindPat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.BlockData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ByNameType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Case
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.CaseGeneratorEnumerator
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.CaseTree
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ClassDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ContextFunctionData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ContextFunctionType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Ctor
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Data
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.DataMember
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Decl
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.DefDecl
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.DefDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Defn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.DoData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.EndMarkerData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.EnumCaseDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.EnumDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Enumerator
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.EtaData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ExistentialType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Export
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ExtensionGroupDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ExtractInfixPat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ExtractPat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ForData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ForYieldData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.FunctionData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.FunctionType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.GeneratorEnumerator
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.GivenAliasDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.GivenDecl
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.GivenDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.GivenImportee
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.GivenPat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.GuardEnumerator
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.IfData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ImplicitFunctionType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Import
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ImportExportStat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Importee
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Importer
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Init
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.InterpolateData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.InterpolatePat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.LambdaType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Lit
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.MatchData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.MatchType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Member
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.MethodType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Mod
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Name
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.NameData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.NameImportee
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.NameType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.NewAnonymousData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.NewData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ObjectDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ObjectPkg
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.OrType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ParamData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ParamType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.PartialFunctionData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Pat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Pkg
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.PlaceholderType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.PolyFunctionData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.PolyFunctionType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.PredefString
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.PrimaryCtor
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.PrivateMod
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ProjectType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ProtectedMod
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Ref
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RefData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RefType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RefineType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RenameImportee
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RepeatedData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RepeatedEnumCaseDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RepeatedPat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.RepeatedType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ReturnData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ScalaSymbol
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.SecondaryCtor
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.SelectData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.SelectType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Self
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.SingletonType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Source
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Stat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.SuperData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Template
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ThisData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ThrowData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TraitDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Tree
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TryData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TryWithHandlerData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TupleData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TuplePat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TupleType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.Type
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TypeBounds
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TypeCase
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TypeDecl
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TypeDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TypeMember
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TypedParamType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.TypedPat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.UnimportImportee
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ValDecl
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ValDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.ValEnumerator
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.VarDecl
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.VarDefn
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.VarPat
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.VarType
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.WhileData
- Hydra.Scala.Syntax: instance GHC.Read.Read Hydra.Scala.Syntax.WithType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AlternativePat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AndType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AnnotMod
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AnnotateData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AnnotateType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AnonymousData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AnonymousNameType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ApplyData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ApplyInfixData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ApplyInfixType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ApplyType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ApplyTypeData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ApplyUnaryData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ApplyUsingData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AscribeData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.AssignData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.BindPat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.BlockData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ByNameType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Case
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.CaseGeneratorEnumerator
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.CaseTree
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ClassDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ContextFunctionData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ContextFunctionType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Ctor
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Data
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.DataMember
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Decl
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.DefDecl
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.DefDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Defn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.DoData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.EndMarkerData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.EnumCaseDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.EnumDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Enumerator
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.EtaData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ExistentialType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Export
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ExtensionGroupDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ExtractInfixPat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ExtractPat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ForData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ForYieldData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.FunctionData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.FunctionType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.GeneratorEnumerator
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.GivenAliasDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.GivenDecl
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.GivenDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.GivenImportee
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.GivenPat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.GuardEnumerator
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.IfData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ImplicitFunctionType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Import
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ImportExportStat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Importee
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Importer
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Init
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.InterpolateData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.InterpolatePat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.LambdaType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Lit
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.MatchData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.MatchType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Member
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.MethodType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Mod
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Name
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.NameData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.NameImportee
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.NameType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.NewAnonymousData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.NewData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ObjectDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ObjectPkg
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.OrType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ParamData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ParamType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.PartialFunctionData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Pat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Pkg
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.PlaceholderType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.PolyFunctionData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.PolyFunctionType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.PredefString
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.PrimaryCtor
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.PrivateMod
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ProjectType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ProtectedMod
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Ref
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RefData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RefType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RefineType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RenameImportee
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RepeatedData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RepeatedEnumCaseDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RepeatedPat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.RepeatedType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ReturnData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ScalaSymbol
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.SecondaryCtor
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.SelectData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.SelectType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Self
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.SingletonType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Source
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Stat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.SuperData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Template
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ThisData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ThrowData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TraitDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Tree
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TryData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TryWithHandlerData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TupleData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TuplePat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TupleType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.Type
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TypeBounds
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TypeCase
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TypeDecl
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TypeDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TypeMember
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TypedParamType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.TypedPat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.UnimportImportee
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ValDecl
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ValDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.ValEnumerator
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.VarDecl
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.VarDefn
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.VarPat
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.VarType
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.WhileData
- Hydra.Scala.Syntax: instance GHC.Show.Show Hydra.Scala.Syntax.WithType
+ Hydra.Scala.Dsl.Syntax: alternativePat :: TypedTerm Pat -> TypedTerm Pat -> TypedTerm AlternativePat
+ Hydra.Scala.Dsl.Syntax: alternativePatLhs :: TypedTerm AlternativePat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: alternativePatRhs :: TypedTerm AlternativePat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: alternativePatWithLhs :: TypedTerm AlternativePat -> TypedTerm Pat -> TypedTerm AlternativePat
+ Hydra.Scala.Dsl.Syntax: alternativePatWithRhs :: TypedTerm AlternativePat -> TypedTerm Pat -> TypedTerm AlternativePat
+ Hydra.Scala.Dsl.Syntax: andType :: TypedTerm Type -> TypedTerm Type -> TypedTerm AndType
+ Hydra.Scala.Dsl.Syntax: andTypeLhs :: TypedTerm AndType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: andTypeRhs :: TypedTerm AndType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: andTypeWithLhs :: TypedTerm AndType -> TypedTerm Type -> TypedTerm AndType
+ Hydra.Scala.Dsl.Syntax: andTypeWithRhs :: TypedTerm AndType -> TypedTerm Type -> TypedTerm AndType
+ Hydra.Scala.Dsl.Syntax: annotMod :: TypedTerm Init -> TypedTerm AnnotMod
+ Hydra.Scala.Dsl.Syntax: annotModInit :: TypedTerm AnnotMod -> TypedTerm Init
+ Hydra.Scala.Dsl.Syntax: annotModWithInit :: TypedTerm AnnotMod -> TypedTerm Init -> TypedTerm AnnotMod
+ Hydra.Scala.Dsl.Syntax: annotateData :: TypedTerm Data -> TypedTerm [AnnotMod] -> TypedTerm AnnotateData
+ Hydra.Scala.Dsl.Syntax: annotateDataAnnots :: TypedTerm AnnotateData -> TypedTerm [AnnotMod]
+ Hydra.Scala.Dsl.Syntax: annotateDataExpr :: TypedTerm AnnotateData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: annotateDataWithAnnots :: TypedTerm AnnotateData -> TypedTerm [AnnotMod] -> TypedTerm AnnotateData
+ Hydra.Scala.Dsl.Syntax: annotateDataWithExpr :: TypedTerm AnnotateData -> TypedTerm Data -> TypedTerm AnnotateData
+ Hydra.Scala.Dsl.Syntax: annotateType :: TypedTerm Type -> TypedTerm [AnnotMod] -> TypedTerm AnnotateType
+ Hydra.Scala.Dsl.Syntax: annotateTypeAnnots :: TypedTerm AnnotateType -> TypedTerm [AnnotMod]
+ Hydra.Scala.Dsl.Syntax: annotateTypeTpe :: TypedTerm AnnotateType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: annotateTypeWithAnnots :: TypedTerm AnnotateType -> TypedTerm [AnnotMod] -> TypedTerm AnnotateType
+ Hydra.Scala.Dsl.Syntax: annotateTypeWithTpe :: TypedTerm AnnotateType -> TypedTerm Type -> TypedTerm AnnotateType
+ Hydra.Scala.Dsl.Syntax: anonymousData :: TypedTerm () -> TypedTerm AnonymousData
+ Hydra.Scala.Dsl.Syntax: anonymousNameType :: TypedTerm () -> TypedTerm AnonymousNameType
+ Hydra.Scala.Dsl.Syntax: applyData :: TypedTerm Data -> TypedTerm [Data] -> TypedTerm ApplyData
+ Hydra.Scala.Dsl.Syntax: applyDataArgs :: TypedTerm ApplyData -> TypedTerm [Data]
+ Hydra.Scala.Dsl.Syntax: applyDataFun :: TypedTerm ApplyData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: applyDataWithArgs :: TypedTerm ApplyData -> TypedTerm [Data] -> TypedTerm ApplyData
+ Hydra.Scala.Dsl.Syntax: applyDataWithFun :: TypedTerm ApplyData -> TypedTerm Data -> TypedTerm ApplyData
+ Hydra.Scala.Dsl.Syntax: applyInfixData :: TypedTerm Data -> TypedTerm NameData -> TypedTerm [Type] -> TypedTerm [Data] -> TypedTerm ApplyInfixData
+ Hydra.Scala.Dsl.Syntax: applyInfixDataArgs :: TypedTerm ApplyInfixData -> TypedTerm [Data]
+ Hydra.Scala.Dsl.Syntax: applyInfixDataLhs :: TypedTerm ApplyInfixData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: applyInfixDataOp :: TypedTerm ApplyInfixData -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: applyInfixDataTargs :: TypedTerm ApplyInfixData -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: applyInfixDataWithArgs :: TypedTerm ApplyInfixData -> TypedTerm [Data] -> TypedTerm ApplyInfixData
+ Hydra.Scala.Dsl.Syntax: applyInfixDataWithLhs :: TypedTerm ApplyInfixData -> TypedTerm Data -> TypedTerm ApplyInfixData
+ Hydra.Scala.Dsl.Syntax: applyInfixDataWithOp :: TypedTerm ApplyInfixData -> TypedTerm NameData -> TypedTerm ApplyInfixData
+ Hydra.Scala.Dsl.Syntax: applyInfixDataWithTargs :: TypedTerm ApplyInfixData -> TypedTerm [Type] -> TypedTerm ApplyInfixData
+ Hydra.Scala.Dsl.Syntax: applyInfixType :: TypedTerm Type -> TypedTerm NameType -> TypedTerm Type -> TypedTerm ApplyInfixType
+ Hydra.Scala.Dsl.Syntax: applyInfixTypeLhs :: TypedTerm ApplyInfixType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: applyInfixTypeOp :: TypedTerm ApplyInfixType -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: applyInfixTypeRhs :: TypedTerm ApplyInfixType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: applyInfixTypeWithLhs :: TypedTerm ApplyInfixType -> TypedTerm Type -> TypedTerm ApplyInfixType
+ Hydra.Scala.Dsl.Syntax: applyInfixTypeWithOp :: TypedTerm ApplyInfixType -> TypedTerm NameType -> TypedTerm ApplyInfixType
+ Hydra.Scala.Dsl.Syntax: applyInfixTypeWithRhs :: TypedTerm ApplyInfixType -> TypedTerm Type -> TypedTerm ApplyInfixType
+ Hydra.Scala.Dsl.Syntax: applyType :: TypedTerm Type -> TypedTerm [Type] -> TypedTerm ApplyType
+ Hydra.Scala.Dsl.Syntax: applyTypeArgs :: TypedTerm ApplyType -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: applyTypeData :: TypedTerm Data -> TypedTerm NameData -> TypedTerm [Type] -> TypedTerm [Data] -> TypedTerm ApplyTypeData
+ Hydra.Scala.Dsl.Syntax: applyTypeDataArgs :: TypedTerm ApplyTypeData -> TypedTerm [Data]
+ Hydra.Scala.Dsl.Syntax: applyTypeDataLhs :: TypedTerm ApplyTypeData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: applyTypeDataOp :: TypedTerm ApplyTypeData -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: applyTypeDataTargs :: TypedTerm ApplyTypeData -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: applyTypeDataWithArgs :: TypedTerm ApplyTypeData -> TypedTerm [Data] -> TypedTerm ApplyTypeData
+ Hydra.Scala.Dsl.Syntax: applyTypeDataWithLhs :: TypedTerm ApplyTypeData -> TypedTerm Data -> TypedTerm ApplyTypeData
+ Hydra.Scala.Dsl.Syntax: applyTypeDataWithOp :: TypedTerm ApplyTypeData -> TypedTerm NameData -> TypedTerm ApplyTypeData
+ Hydra.Scala.Dsl.Syntax: applyTypeDataWithTargs :: TypedTerm ApplyTypeData -> TypedTerm [Type] -> TypedTerm ApplyTypeData
+ Hydra.Scala.Dsl.Syntax: applyTypeTpe :: TypedTerm ApplyType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: applyTypeWithArgs :: TypedTerm ApplyType -> TypedTerm [Type] -> TypedTerm ApplyType
+ Hydra.Scala.Dsl.Syntax: applyTypeWithTpe :: TypedTerm ApplyType -> TypedTerm Type -> TypedTerm ApplyType
+ Hydra.Scala.Dsl.Syntax: applyUnaryData :: TypedTerm NameData -> TypedTerm Data -> TypedTerm ApplyUnaryData
+ Hydra.Scala.Dsl.Syntax: applyUnaryDataArg :: TypedTerm ApplyUnaryData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: applyUnaryDataOp :: TypedTerm ApplyUnaryData -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: applyUnaryDataWithArg :: TypedTerm ApplyUnaryData -> TypedTerm Data -> TypedTerm ApplyUnaryData
+ Hydra.Scala.Dsl.Syntax: applyUnaryDataWithOp :: TypedTerm ApplyUnaryData -> TypedTerm NameData -> TypedTerm ApplyUnaryData
+ Hydra.Scala.Dsl.Syntax: applyUsingData :: TypedTerm Data -> TypedTerm [Data] -> TypedTerm ApplyUsingData
+ Hydra.Scala.Dsl.Syntax: applyUsingDataFun :: TypedTerm ApplyUsingData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: applyUsingDataTargs :: TypedTerm ApplyUsingData -> TypedTerm [Data]
+ Hydra.Scala.Dsl.Syntax: applyUsingDataWithFun :: TypedTerm ApplyUsingData -> TypedTerm Data -> TypedTerm ApplyUsingData
+ Hydra.Scala.Dsl.Syntax: applyUsingDataWithTargs :: TypedTerm ApplyUsingData -> TypedTerm [Data] -> TypedTerm ApplyUsingData
+ Hydra.Scala.Dsl.Syntax: ascribeData :: TypedTerm Data -> TypedTerm Type -> TypedTerm AscribeData
+ Hydra.Scala.Dsl.Syntax: ascribeDataExpr :: TypedTerm AscribeData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: ascribeDataTpe :: TypedTerm AscribeData -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: ascribeDataWithExpr :: TypedTerm AscribeData -> TypedTerm Data -> TypedTerm AscribeData
+ Hydra.Scala.Dsl.Syntax: ascribeDataWithTpe :: TypedTerm AscribeData -> TypedTerm Type -> TypedTerm AscribeData
+ Hydra.Scala.Dsl.Syntax: assignData :: TypedTerm Data -> TypedTerm Data -> TypedTerm AssignData
+ Hydra.Scala.Dsl.Syntax: assignDataLhs :: TypedTerm AssignData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: assignDataRhs :: TypedTerm AssignData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: assignDataWithLhs :: TypedTerm AssignData -> TypedTerm Data -> TypedTerm AssignData
+ Hydra.Scala.Dsl.Syntax: assignDataWithRhs :: TypedTerm AssignData -> TypedTerm Data -> TypedTerm AssignData
+ Hydra.Scala.Dsl.Syntax: bindPat :: TypedTerm Pat -> TypedTerm Pat -> TypedTerm BindPat
+ Hydra.Scala.Dsl.Syntax: bindPatLhs :: TypedTerm BindPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: bindPatRhs :: TypedTerm BindPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: bindPatWithLhs :: TypedTerm BindPat -> TypedTerm Pat -> TypedTerm BindPat
+ Hydra.Scala.Dsl.Syntax: bindPatWithRhs :: TypedTerm BindPat -> TypedTerm Pat -> TypedTerm BindPat
+ Hydra.Scala.Dsl.Syntax: blockData :: TypedTerm [Stat] -> TypedTerm BlockData
+ Hydra.Scala.Dsl.Syntax: blockDataStats :: TypedTerm BlockData -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: blockDataWithStats :: TypedTerm BlockData -> TypedTerm [Stat] -> TypedTerm BlockData
+ Hydra.Scala.Dsl.Syntax: byNameType :: TypedTerm Type -> TypedTerm ByNameType
+ Hydra.Scala.Dsl.Syntax: byNameTypeTpe :: TypedTerm ByNameType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: byNameTypeWithTpe :: TypedTerm ByNameType -> TypedTerm Type -> TypedTerm ByNameType
+ Hydra.Scala.Dsl.Syntax: caseBody :: TypedTerm Case -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: caseCond :: TypedTerm Case -> TypedTerm (Maybe Data)
+ Hydra.Scala.Dsl.Syntax: caseGeneratorEnumerator :: TypedTerm Pat -> TypedTerm Data -> TypedTerm CaseGeneratorEnumerator
+ Hydra.Scala.Dsl.Syntax: caseGeneratorEnumeratorPat :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: caseGeneratorEnumeratorRhs :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: caseGeneratorEnumeratorWithPat :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Pat -> TypedTerm CaseGeneratorEnumerator
+ Hydra.Scala.Dsl.Syntax: caseGeneratorEnumeratorWithRhs :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Data -> TypedTerm CaseGeneratorEnumerator
+ Hydra.Scala.Dsl.Syntax: casePat :: TypedTerm Case -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: caseTreeCase :: TypedTerm Case -> TypedTerm CaseTree
+ Hydra.Scala.Dsl.Syntax: caseTreeTypeCase :: TypedTerm TypeCase -> TypedTerm CaseTree
+ Hydra.Scala.Dsl.Syntax: caseWithBody :: TypedTerm Case -> TypedTerm Data -> TypedTerm Case
+ Hydra.Scala.Dsl.Syntax: caseWithCond :: TypedTerm Case -> TypedTerm (Maybe Data) -> TypedTerm Case
+ Hydra.Scala.Dsl.Syntax: caseWithPat :: TypedTerm Case -> TypedTerm Pat -> TypedTerm Case
+ Hydra.Scala.Dsl.Syntax: case_ :: TypedTerm Pat -> TypedTerm (Maybe Data) -> TypedTerm Data -> TypedTerm Case
+ Hydra.Scala.Dsl.Syntax: classDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm Template -> TypedTerm ClassDefn
+ Hydra.Scala.Dsl.Syntax: classDefnCtor :: TypedTerm ClassDefn -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: classDefnMods :: TypedTerm ClassDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: classDefnName :: TypedTerm ClassDefn -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: classDefnTemplate :: TypedTerm ClassDefn -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: classDefnTparams :: TypedTerm ClassDefn -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: classDefnWithCtor :: TypedTerm ClassDefn -> TypedTerm PrimaryCtor -> TypedTerm ClassDefn
+ Hydra.Scala.Dsl.Syntax: classDefnWithMods :: TypedTerm ClassDefn -> TypedTerm [Mod] -> TypedTerm ClassDefn
+ Hydra.Scala.Dsl.Syntax: classDefnWithName :: TypedTerm ClassDefn -> TypedTerm NameType -> TypedTerm ClassDefn
+ Hydra.Scala.Dsl.Syntax: classDefnWithTemplate :: TypedTerm ClassDefn -> TypedTerm Template -> TypedTerm ClassDefn
+ Hydra.Scala.Dsl.Syntax: classDefnWithTparams :: TypedTerm ClassDefn -> TypedTerm [ParamType] -> TypedTerm ClassDefn
+ Hydra.Scala.Dsl.Syntax: contextFunctionData :: TypedTerm [ParamData] -> TypedTerm Data -> TypedTerm ContextFunctionData
+ Hydra.Scala.Dsl.Syntax: contextFunctionDataBody :: TypedTerm ContextFunctionData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: contextFunctionDataParams :: TypedTerm ContextFunctionData -> TypedTerm [ParamData]
+ Hydra.Scala.Dsl.Syntax: contextFunctionDataWithBody :: TypedTerm ContextFunctionData -> TypedTerm Data -> TypedTerm ContextFunctionData
+ Hydra.Scala.Dsl.Syntax: contextFunctionDataWithParams :: TypedTerm ContextFunctionData -> TypedTerm [ParamData] -> TypedTerm ContextFunctionData
+ Hydra.Scala.Dsl.Syntax: contextFunctionType :: TypedTerm [Type] -> TypedTerm Type -> TypedTerm ContextFunctionType
+ Hydra.Scala.Dsl.Syntax: contextFunctionTypeParams :: TypedTerm ContextFunctionType -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: contextFunctionTypeRes :: TypedTerm ContextFunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: contextFunctionTypeWithParams :: TypedTerm ContextFunctionType -> TypedTerm [Type] -> TypedTerm ContextFunctionType
+ Hydra.Scala.Dsl.Syntax: contextFunctionTypeWithRes :: TypedTerm ContextFunctionType -> TypedTerm Type -> TypedTerm ContextFunctionType
+ Hydra.Scala.Dsl.Syntax: ctorPrimary :: TypedTerm PrimaryCtor -> TypedTerm Ctor
+ Hydra.Scala.Dsl.Syntax: ctorSecondary :: TypedTerm SecondaryCtor -> TypedTerm Ctor
+ Hydra.Scala.Dsl.Syntax: dataAnnotate :: TypedTerm AnnotateData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataApply :: TypedTerm ApplyData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataApplyType :: TypedTerm ApplyTypeData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataApplyUsing :: TypedTerm ApplyUsingData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataAscribe :: TypedTerm AscribeData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataAssign :: TypedTerm AssignData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataBlock :: TypedTerm BlockData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataContextFunction :: TypedTerm ContextFunctionData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataDo :: TypedTerm DoData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataEndMarker :: TypedTerm EndMarkerData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataEta :: TypedTerm EtaData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataFor :: TypedTerm ForData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataForYield :: TypedTerm ForYieldData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataFunction :: TypedTerm FunctionData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataIf :: TypedTerm IfData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataInterpolate :: TypedTerm InterpolateData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataLit :: TypedTerm Lit -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataMatch :: TypedTerm MatchData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataMemberObject :: TypedTerm ObjectPkg -> TypedTerm DataMember
+ Hydra.Scala.Dsl.Syntax: dataMemberPkg :: TypedTerm Pkg -> TypedTerm DataMember
+ Hydra.Scala.Dsl.Syntax: dataNew :: TypedTerm NewData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataNewAnonymous :: TypedTerm NewAnonymousData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataParam :: TypedTerm ParamData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataPartialFunction :: TypedTerm PartialFunctionData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataPlaceholder :: TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataPolyFunction :: TypedTerm PolyFunctionData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataRef :: TypedTerm RefData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataRepeated :: TypedTerm RepeatedData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataReturn :: TypedTerm ReturnData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataThrow :: TypedTerm ThrowData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataTry :: TypedTerm TryData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataTryWithHandler :: TypedTerm TryWithHandlerData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataTuple :: TypedTerm TupleData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: dataWhile :: TypedTerm WhileData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: declDef :: TypedTerm DefDecl -> TypedTerm Decl
+ Hydra.Scala.Dsl.Syntax: declGiven :: TypedTerm GivenDecl -> TypedTerm Decl
+ Hydra.Scala.Dsl.Syntax: declType :: TypedTerm TypeDecl -> TypedTerm Decl
+ Hydra.Scala.Dsl.Syntax: declVal :: TypedTerm ValDecl -> TypedTerm Decl
+ Hydra.Scala.Dsl.Syntax: declVar :: TypedTerm VarDecl -> TypedTerm Decl
+ Hydra.Scala.Dsl.Syntax: defDecl :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm DefDecl
+ Hydra.Scala.Dsl.Syntax: defDeclDecltpe :: TypedTerm DefDecl -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: defDeclMods :: TypedTerm DefDecl -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: defDeclName :: TypedTerm DefDecl -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: defDeclParamss :: TypedTerm DefDecl -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: defDeclTparams :: TypedTerm DefDecl -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: defDeclWithDecltpe :: TypedTerm DefDecl -> TypedTerm Type -> TypedTerm DefDecl
+ Hydra.Scala.Dsl.Syntax: defDeclWithMods :: TypedTerm DefDecl -> TypedTerm [Mod] -> TypedTerm DefDecl
+ Hydra.Scala.Dsl.Syntax: defDeclWithName :: TypedTerm DefDecl -> TypedTerm NameData -> TypedTerm DefDecl
+ Hydra.Scala.Dsl.Syntax: defDeclWithParamss :: TypedTerm DefDecl -> TypedTerm [[ParamData]] -> TypedTerm DefDecl
+ Hydra.Scala.Dsl.Syntax: defDeclWithTparams :: TypedTerm DefDecl -> TypedTerm [ParamType] -> TypedTerm DefDecl
+ Hydra.Scala.Dsl.Syntax: defDefn :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm (Maybe Type) -> TypedTerm Data -> TypedTerm DefDefn
+ Hydra.Scala.Dsl.Syntax: defDefnBody :: TypedTerm DefDefn -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: defDefnDecltpe :: TypedTerm DefDefn -> TypedTerm (Maybe Type)
+ Hydra.Scala.Dsl.Syntax: defDefnMods :: TypedTerm DefDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: defDefnName :: TypedTerm DefDefn -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: defDefnParamss :: TypedTerm DefDefn -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: defDefnTparams :: TypedTerm DefDefn -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: defDefnWithBody :: TypedTerm DefDefn -> TypedTerm Data -> TypedTerm DefDefn
+ Hydra.Scala.Dsl.Syntax: defDefnWithDecltpe :: TypedTerm DefDefn -> TypedTerm (Maybe Type) -> TypedTerm DefDefn
+ Hydra.Scala.Dsl.Syntax: defDefnWithMods :: TypedTerm DefDefn -> TypedTerm [Mod] -> TypedTerm DefDefn
+ Hydra.Scala.Dsl.Syntax: defDefnWithName :: TypedTerm DefDefn -> TypedTerm NameData -> TypedTerm DefDefn
+ Hydra.Scala.Dsl.Syntax: defDefnWithParamss :: TypedTerm DefDefn -> TypedTerm [[ParamData]] -> TypedTerm DefDefn
+ Hydra.Scala.Dsl.Syntax: defDefnWithTparams :: TypedTerm DefDefn -> TypedTerm [ParamType] -> TypedTerm DefDefn
+ Hydra.Scala.Dsl.Syntax: defnClass :: TypedTerm ClassDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnDef :: TypedTerm DefDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnEnum :: TypedTerm EnumDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnEnumCase :: TypedTerm EnumCaseDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnExtensionGroup :: TypedTerm ExtensionGroupDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnGiven :: TypedTerm GivenDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnGivenAlias :: TypedTerm GivenAliasDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnObject :: TypedTerm ObjectDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnRepeatedEnumCase :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnTrait :: TypedTerm TraitDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnType :: TypedTerm TypeDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnVal :: TypedTerm ValDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: defnVar :: TypedTerm VarDefn -> TypedTerm Defn
+ Hydra.Scala.Dsl.Syntax: doData :: TypedTerm Data -> TypedTerm Data -> TypedTerm DoData
+ Hydra.Scala.Dsl.Syntax: doDataBody :: TypedTerm DoData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: doDataExpr :: TypedTerm DoData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: doDataWithBody :: TypedTerm DoData -> TypedTerm Data -> TypedTerm DoData
+ Hydra.Scala.Dsl.Syntax: doDataWithExpr :: TypedTerm DoData -> TypedTerm Data -> TypedTerm DoData
+ Hydra.Scala.Dsl.Syntax: endMarkerData :: TypedTerm NameData -> TypedTerm EndMarkerData
+ Hydra.Scala.Dsl.Syntax: endMarkerDataName :: TypedTerm EndMarkerData -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: endMarkerDataWithName :: TypedTerm EndMarkerData -> TypedTerm NameData -> TypedTerm EndMarkerData
+ Hydra.Scala.Dsl.Syntax: enumCaseDefn :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm [Init] -> TypedTerm EnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnCtor :: TypedTerm EnumCaseDefn -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnInits :: TypedTerm EnumCaseDefn -> TypedTerm [Init]
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnMods :: TypedTerm EnumCaseDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnName :: TypedTerm EnumCaseDefn -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnTparams :: TypedTerm EnumCaseDefn -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnWithCtor :: TypedTerm EnumCaseDefn -> TypedTerm PrimaryCtor -> TypedTerm EnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnWithInits :: TypedTerm EnumCaseDefn -> TypedTerm [Init] -> TypedTerm EnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnWithMods :: TypedTerm EnumCaseDefn -> TypedTerm [Mod] -> TypedTerm EnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnWithName :: TypedTerm EnumCaseDefn -> TypedTerm NameData -> TypedTerm EnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: enumCaseDefnWithTparams :: TypedTerm EnumCaseDefn -> TypedTerm [ParamType] -> TypedTerm EnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: enumDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm Template -> TypedTerm EnumDefn
+ Hydra.Scala.Dsl.Syntax: enumDefnCtor :: TypedTerm EnumDefn -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: enumDefnMods :: TypedTerm EnumDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: enumDefnName :: TypedTerm EnumDefn -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: enumDefnTemplate :: TypedTerm EnumDefn -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: enumDefnTparams :: TypedTerm EnumDefn -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: enumDefnWithCtor :: TypedTerm EnumDefn -> TypedTerm PrimaryCtor -> TypedTerm EnumDefn
+ Hydra.Scala.Dsl.Syntax: enumDefnWithMods :: TypedTerm EnumDefn -> TypedTerm [Mod] -> TypedTerm EnumDefn
+ Hydra.Scala.Dsl.Syntax: enumDefnWithName :: TypedTerm EnumDefn -> TypedTerm NameType -> TypedTerm EnumDefn
+ Hydra.Scala.Dsl.Syntax: enumDefnWithTemplate :: TypedTerm EnumDefn -> TypedTerm Template -> TypedTerm EnumDefn
+ Hydra.Scala.Dsl.Syntax: enumDefnWithTparams :: TypedTerm EnumDefn -> TypedTerm [ParamType] -> TypedTerm EnumDefn
+ Hydra.Scala.Dsl.Syntax: enumeratorCaseGenerator :: TypedTerm CaseGeneratorEnumerator -> TypedTerm Enumerator
+ Hydra.Scala.Dsl.Syntax: enumeratorGenerator :: TypedTerm GeneratorEnumerator -> TypedTerm Enumerator
+ Hydra.Scala.Dsl.Syntax: enumeratorGuard :: TypedTerm GuardEnumerator -> TypedTerm Enumerator
+ Hydra.Scala.Dsl.Syntax: enumeratorVal :: TypedTerm ValEnumerator -> TypedTerm Enumerator
+ Hydra.Scala.Dsl.Syntax: etaData :: TypedTerm Data -> TypedTerm EtaData
+ Hydra.Scala.Dsl.Syntax: etaDataExpr :: TypedTerm EtaData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: etaDataWithExpr :: TypedTerm EtaData -> TypedTerm Data -> TypedTerm EtaData
+ Hydra.Scala.Dsl.Syntax: existentialType :: TypedTerm Type -> TypedTerm [Stat] -> TypedTerm ExistentialType
+ Hydra.Scala.Dsl.Syntax: existentialTypeStats :: TypedTerm ExistentialType -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: existentialTypeTpe :: TypedTerm ExistentialType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: existentialTypeWithStats :: TypedTerm ExistentialType -> TypedTerm [Stat] -> TypedTerm ExistentialType
+ Hydra.Scala.Dsl.Syntax: existentialTypeWithTpe :: TypedTerm ExistentialType -> TypedTerm Type -> TypedTerm ExistentialType
+ Hydra.Scala.Dsl.Syntax: export :: TypedTerm [Importer] -> TypedTerm Export
+ Hydra.Scala.Dsl.Syntax: exportImporters :: TypedTerm Export -> TypedTerm [Importer]
+ Hydra.Scala.Dsl.Syntax: exportWithImporters :: TypedTerm Export -> TypedTerm [Importer] -> TypedTerm Export
+ Hydra.Scala.Dsl.Syntax: extensionGroupDefn :: TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm Stat -> TypedTerm ExtensionGroupDefn
+ Hydra.Scala.Dsl.Syntax: extensionGroupDefnBody :: TypedTerm ExtensionGroupDefn -> TypedTerm Stat
+ Hydra.Scala.Dsl.Syntax: extensionGroupDefnParmss :: TypedTerm ExtensionGroupDefn -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: extensionGroupDefnTparams :: TypedTerm ExtensionGroupDefn -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: extensionGroupDefnWithBody :: TypedTerm ExtensionGroupDefn -> TypedTerm Stat -> TypedTerm ExtensionGroupDefn
+ Hydra.Scala.Dsl.Syntax: extensionGroupDefnWithParmss :: TypedTerm ExtensionGroupDefn -> TypedTerm [[ParamData]] -> TypedTerm ExtensionGroupDefn
+ Hydra.Scala.Dsl.Syntax: extensionGroupDefnWithTparams :: TypedTerm ExtensionGroupDefn -> TypedTerm [ParamType] -> TypedTerm ExtensionGroupDefn
+ Hydra.Scala.Dsl.Syntax: extractInfixPat :: TypedTerm Pat -> TypedTerm NameData -> TypedTerm [Pat] -> TypedTerm ExtractInfixPat
+ Hydra.Scala.Dsl.Syntax: extractInfixPatLhs :: TypedTerm ExtractInfixPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: extractInfixPatOp :: TypedTerm ExtractInfixPat -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: extractInfixPatRhs :: TypedTerm ExtractInfixPat -> TypedTerm [Pat]
+ Hydra.Scala.Dsl.Syntax: extractInfixPatWithLhs :: TypedTerm ExtractInfixPat -> TypedTerm Pat -> TypedTerm ExtractInfixPat
+ Hydra.Scala.Dsl.Syntax: extractInfixPatWithOp :: TypedTerm ExtractInfixPat -> TypedTerm NameData -> TypedTerm ExtractInfixPat
+ Hydra.Scala.Dsl.Syntax: extractInfixPatWithRhs :: TypedTerm ExtractInfixPat -> TypedTerm [Pat] -> TypedTerm ExtractInfixPat
+ Hydra.Scala.Dsl.Syntax: extractPat :: TypedTerm Data -> TypedTerm [Pat] -> TypedTerm Bool -> TypedTerm ExtractPat
+ Hydra.Scala.Dsl.Syntax: extractPatArgs :: TypedTerm ExtractPat -> TypedTerm [Pat]
+ Hydra.Scala.Dsl.Syntax: extractPatFun :: TypedTerm ExtractPat -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: extractPatIsCall :: TypedTerm ExtractPat -> TypedTerm Bool
+ Hydra.Scala.Dsl.Syntax: extractPatWithArgs :: TypedTerm ExtractPat -> TypedTerm [Pat] -> TypedTerm ExtractPat
+ Hydra.Scala.Dsl.Syntax: extractPatWithFun :: TypedTerm ExtractPat -> TypedTerm Data -> TypedTerm ExtractPat
+ Hydra.Scala.Dsl.Syntax: forData :: TypedTerm [Enumerator] -> TypedTerm ForData
+ Hydra.Scala.Dsl.Syntax: forDataEnums :: TypedTerm ForData -> TypedTerm [Enumerator]
+ Hydra.Scala.Dsl.Syntax: forDataWithEnums :: TypedTerm ForData -> TypedTerm [Enumerator] -> TypedTerm ForData
+ Hydra.Scala.Dsl.Syntax: forYieldData :: TypedTerm [Enumerator] -> TypedTerm ForYieldData
+ Hydra.Scala.Dsl.Syntax: forYieldDataEnums :: TypedTerm ForYieldData -> TypedTerm [Enumerator]
+ Hydra.Scala.Dsl.Syntax: forYieldDataWithEnums :: TypedTerm ForYieldData -> TypedTerm [Enumerator] -> TypedTerm ForYieldData
+ Hydra.Scala.Dsl.Syntax: functionData :: TypedTerm [ParamData] -> TypedTerm Data -> TypedTerm FunctionData
+ Hydra.Scala.Dsl.Syntax: functionDataBody :: TypedTerm FunctionData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: functionDataParams :: TypedTerm FunctionData -> TypedTerm [ParamData]
+ Hydra.Scala.Dsl.Syntax: functionDataWithBody :: TypedTerm FunctionData -> TypedTerm Data -> TypedTerm FunctionData
+ Hydra.Scala.Dsl.Syntax: functionDataWithParams :: TypedTerm FunctionData -> TypedTerm [ParamData] -> TypedTerm FunctionData
+ Hydra.Scala.Dsl.Syntax: functionType :: TypedTerm [Type] -> TypedTerm Type -> TypedTerm FunctionType
+ Hydra.Scala.Dsl.Syntax: functionTypeParams :: TypedTerm FunctionType -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: functionTypeRes :: TypedTerm FunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: functionTypeWithParams :: TypedTerm FunctionType -> TypedTerm [Type] -> TypedTerm FunctionType
+ Hydra.Scala.Dsl.Syntax: functionTypeWithRes :: TypedTerm FunctionType -> TypedTerm Type -> TypedTerm FunctionType
+ Hydra.Scala.Dsl.Syntax: generatorEnumerator :: TypedTerm Pat -> TypedTerm Data -> TypedTerm GeneratorEnumerator
+ Hydra.Scala.Dsl.Syntax: generatorEnumeratorPat :: TypedTerm GeneratorEnumerator -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: generatorEnumeratorRhs :: TypedTerm GeneratorEnumerator -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: generatorEnumeratorWithPat :: TypedTerm GeneratorEnumerator -> TypedTerm Pat -> TypedTerm GeneratorEnumerator
+ Hydra.Scala.Dsl.Syntax: generatorEnumeratorWithRhs :: TypedTerm GeneratorEnumerator -> TypedTerm Data -> TypedTerm GeneratorEnumerator
+ Hydra.Scala.Dsl.Syntax: givenAliasDefn :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamType]] -> TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm Data -> TypedTerm GivenAliasDefn
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnBody :: TypedTerm GivenAliasDefn -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnDecltpe :: TypedTerm GivenAliasDefn -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnMods :: TypedTerm GivenAliasDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnName :: TypedTerm GivenAliasDefn -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnSparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnTparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamType]]
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnWithBody :: TypedTerm GivenAliasDefn -> TypedTerm Data -> TypedTerm GivenAliasDefn
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnWithDecltpe :: TypedTerm GivenAliasDefn -> TypedTerm Type -> TypedTerm GivenAliasDefn
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnWithMods :: TypedTerm GivenAliasDefn -> TypedTerm [Mod] -> TypedTerm GivenAliasDefn
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnWithName :: TypedTerm GivenAliasDefn -> TypedTerm Name -> TypedTerm GivenAliasDefn
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnWithSparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamData]] -> TypedTerm GivenAliasDefn
+ Hydra.Scala.Dsl.Syntax: givenAliasDefnWithTparams :: TypedTerm GivenAliasDefn -> TypedTerm [[ParamType]] -> TypedTerm GivenAliasDefn
+ Hydra.Scala.Dsl.Syntax: givenDecl :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm [ParamType] -> TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm GivenDecl
+ Hydra.Scala.Dsl.Syntax: givenDeclDecltpe :: TypedTerm GivenDecl -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: givenDeclMods :: TypedTerm GivenDecl -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: givenDeclName :: TypedTerm GivenDecl -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: givenDeclSparams :: TypedTerm GivenDecl -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: givenDeclTparams :: TypedTerm GivenDecl -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: givenDeclWithDecltpe :: TypedTerm GivenDecl -> TypedTerm Type -> TypedTerm GivenDecl
+ Hydra.Scala.Dsl.Syntax: givenDeclWithMods :: TypedTerm GivenDecl -> TypedTerm [Mod] -> TypedTerm GivenDecl
+ Hydra.Scala.Dsl.Syntax: givenDeclWithName :: TypedTerm GivenDecl -> TypedTerm NameData -> TypedTerm GivenDecl
+ Hydra.Scala.Dsl.Syntax: givenDeclWithSparams :: TypedTerm GivenDecl -> TypedTerm [[ParamData]] -> TypedTerm GivenDecl
+ Hydra.Scala.Dsl.Syntax: givenDeclWithTparams :: TypedTerm GivenDecl -> TypedTerm [ParamType] -> TypedTerm GivenDecl
+ Hydra.Scala.Dsl.Syntax: givenDefn :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamType]] -> TypedTerm [[ParamData]] -> TypedTerm Template -> TypedTerm GivenDefn
+ Hydra.Scala.Dsl.Syntax: givenDefnMods :: TypedTerm GivenDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: givenDefnName :: TypedTerm GivenDefn -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: givenDefnSparams :: TypedTerm GivenDefn -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: givenDefnTempl :: TypedTerm GivenDefn -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: givenDefnTparams :: TypedTerm GivenDefn -> TypedTerm [[ParamType]]
+ Hydra.Scala.Dsl.Syntax: givenDefnWithMods :: TypedTerm GivenDefn -> TypedTerm [Mod] -> TypedTerm GivenDefn
+ Hydra.Scala.Dsl.Syntax: givenDefnWithName :: TypedTerm GivenDefn -> TypedTerm Name -> TypedTerm GivenDefn
+ Hydra.Scala.Dsl.Syntax: givenDefnWithSparams :: TypedTerm GivenDefn -> TypedTerm [[ParamData]] -> TypedTerm GivenDefn
+ Hydra.Scala.Dsl.Syntax: givenDefnWithTempl :: TypedTerm GivenDefn -> TypedTerm Template -> TypedTerm GivenDefn
+ Hydra.Scala.Dsl.Syntax: givenDefnWithTparams :: TypedTerm GivenDefn -> TypedTerm [[ParamType]] -> TypedTerm GivenDefn
+ Hydra.Scala.Dsl.Syntax: givenImportee :: TypedTerm Type -> TypedTerm GivenImportee
+ Hydra.Scala.Dsl.Syntax: givenImporteeTpe :: TypedTerm GivenImportee -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: givenImporteeWithTpe :: TypedTerm GivenImportee -> TypedTerm Type -> TypedTerm GivenImportee
+ Hydra.Scala.Dsl.Syntax: givenPat :: TypedTerm Type -> TypedTerm GivenPat
+ Hydra.Scala.Dsl.Syntax: givenPatTpe :: TypedTerm GivenPat -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: givenPatWithTpe :: TypedTerm GivenPat -> TypedTerm Type -> TypedTerm GivenPat
+ Hydra.Scala.Dsl.Syntax: guardEnumerator :: TypedTerm Data -> TypedTerm GuardEnumerator
+ Hydra.Scala.Dsl.Syntax: guardEnumeratorCond :: TypedTerm GuardEnumerator -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: guardEnumeratorWithCond :: TypedTerm GuardEnumerator -> TypedTerm Data -> TypedTerm GuardEnumerator
+ Hydra.Scala.Dsl.Syntax: ifData :: TypedTerm Data -> TypedTerm Data -> TypedTerm Data -> TypedTerm IfData
+ Hydra.Scala.Dsl.Syntax: ifDataCond :: TypedTerm IfData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: ifDataElsep :: TypedTerm IfData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: ifDataThenp :: TypedTerm IfData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: ifDataWithCond :: TypedTerm IfData -> TypedTerm Data -> TypedTerm IfData
+ Hydra.Scala.Dsl.Syntax: ifDataWithElsep :: TypedTerm IfData -> TypedTerm Data -> TypedTerm IfData
+ Hydra.Scala.Dsl.Syntax: ifDataWithThenp :: TypedTerm IfData -> TypedTerm Data -> TypedTerm IfData
+ Hydra.Scala.Dsl.Syntax: implicitFunctionType :: TypedTerm [Type] -> TypedTerm Type -> TypedTerm ImplicitFunctionType
+ Hydra.Scala.Dsl.Syntax: implicitFunctionTypeParams :: TypedTerm ImplicitFunctionType -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: implicitFunctionTypeRes :: TypedTerm ImplicitFunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: implicitFunctionTypeWithParams :: TypedTerm ImplicitFunctionType -> TypedTerm [Type] -> TypedTerm ImplicitFunctionType
+ Hydra.Scala.Dsl.Syntax: implicitFunctionTypeWithRes :: TypedTerm ImplicitFunctionType -> TypedTerm Type -> TypedTerm ImplicitFunctionType
+ Hydra.Scala.Dsl.Syntax: importExportStatExport :: TypedTerm Export -> TypedTerm ImportExportStat
+ Hydra.Scala.Dsl.Syntax: importExportStatImport :: TypedTerm Import -> TypedTerm ImportExportStat
+ Hydra.Scala.Dsl.Syntax: importImporters :: TypedTerm Import -> TypedTerm [Importer]
+ Hydra.Scala.Dsl.Syntax: importWithImporters :: TypedTerm Import -> TypedTerm [Importer] -> TypedTerm Import
+ Hydra.Scala.Dsl.Syntax: import_ :: TypedTerm [Importer] -> TypedTerm Import
+ Hydra.Scala.Dsl.Syntax: importeeGiven :: TypedTerm GivenImportee -> TypedTerm Importee
+ Hydra.Scala.Dsl.Syntax: importeeGivenAll :: TypedTerm Importee
+ Hydra.Scala.Dsl.Syntax: importeeName :: TypedTerm NameImportee -> TypedTerm Importee
+ Hydra.Scala.Dsl.Syntax: importeeRename :: TypedTerm RenameImportee -> TypedTerm Importee
+ Hydra.Scala.Dsl.Syntax: importeeUnimport :: TypedTerm UnimportImportee -> TypedTerm Importee
+ Hydra.Scala.Dsl.Syntax: importeeWildcard :: TypedTerm Importee
+ Hydra.Scala.Dsl.Syntax: importer :: TypedTerm RefData -> TypedTerm [Importee] -> TypedTerm Importer
+ Hydra.Scala.Dsl.Syntax: importerImportees :: TypedTerm Importer -> TypedTerm [Importee]
+ Hydra.Scala.Dsl.Syntax: importerRef :: TypedTerm Importer -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: importerWithImportees :: TypedTerm Importer -> TypedTerm [Importee] -> TypedTerm Importer
+ Hydra.Scala.Dsl.Syntax: importerWithRef :: TypedTerm Importer -> TypedTerm RefData -> TypedTerm Importer
+ Hydra.Scala.Dsl.Syntax: init :: TypedTerm Type -> TypedTerm Name -> TypedTerm [[Data]] -> TypedTerm Init
+ Hydra.Scala.Dsl.Syntax: initArgss :: TypedTerm Init -> TypedTerm [[Data]]
+ Hydra.Scala.Dsl.Syntax: initName :: TypedTerm Init -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: initTpe :: TypedTerm Init -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: initWithArgss :: TypedTerm Init -> TypedTerm [[Data]] -> TypedTerm Init
+ Hydra.Scala.Dsl.Syntax: initWithName :: TypedTerm Init -> TypedTerm Name -> TypedTerm Init
+ Hydra.Scala.Dsl.Syntax: initWithTpe :: TypedTerm Init -> TypedTerm Type -> TypedTerm Init
+ Hydra.Scala.Dsl.Syntax: interpolateData :: TypedTerm NameData -> TypedTerm [Lit] -> TypedTerm [Data] -> TypedTerm InterpolateData
+ Hydra.Scala.Dsl.Syntax: interpolateDataArgs :: TypedTerm InterpolateData -> TypedTerm [Data]
+ Hydra.Scala.Dsl.Syntax: interpolateDataParts :: TypedTerm InterpolateData -> TypedTerm [Lit]
+ Hydra.Scala.Dsl.Syntax: interpolateDataPrefix :: TypedTerm InterpolateData -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: interpolateDataWithArgs :: TypedTerm InterpolateData -> TypedTerm [Data] -> TypedTerm InterpolateData
+ Hydra.Scala.Dsl.Syntax: interpolateDataWithParts :: TypedTerm InterpolateData -> TypedTerm [Lit] -> TypedTerm InterpolateData
+ Hydra.Scala.Dsl.Syntax: interpolateDataWithPrefix :: TypedTerm InterpolateData -> TypedTerm NameData -> TypedTerm InterpolateData
+ Hydra.Scala.Dsl.Syntax: interpolatePat :: TypedTerm NameData -> TypedTerm [Lit] -> TypedTerm InterpolatePat
+ Hydra.Scala.Dsl.Syntax: interpolatePatParts :: TypedTerm InterpolatePat -> TypedTerm [Lit]
+ Hydra.Scala.Dsl.Syntax: interpolatePatPrefix :: TypedTerm InterpolatePat -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: interpolatePatWithParts :: TypedTerm InterpolatePat -> TypedTerm [Lit] -> TypedTerm InterpolatePat
+ Hydra.Scala.Dsl.Syntax: interpolatePatWithPrefix :: TypedTerm InterpolatePat -> TypedTerm NameData -> TypedTerm InterpolatePat
+ Hydra.Scala.Dsl.Syntax: lambdaType :: TypedTerm [ParamType] -> TypedTerm Type -> TypedTerm LambdaType
+ Hydra.Scala.Dsl.Syntax: lambdaTypeTparams :: TypedTerm LambdaType -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: lambdaTypeTpe :: TypedTerm LambdaType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: lambdaTypeWithTparams :: TypedTerm LambdaType -> TypedTerm [ParamType] -> TypedTerm LambdaType
+ Hydra.Scala.Dsl.Syntax: lambdaTypeWithTpe :: TypedTerm LambdaType -> TypedTerm Type -> TypedTerm LambdaType
+ Hydra.Scala.Dsl.Syntax: litBoolean :: TypedTerm Bool -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litByte :: TypedTerm Int8 -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litBytes :: TypedTerm [Int] -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litChar :: TypedTerm Int -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litDouble :: TypedTerm Double -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litFloat :: TypedTerm Float -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litInt :: TypedTerm Int -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litLong :: TypedTerm Int64 -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litNull :: TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litShort :: TypedTerm Int16 -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litString :: TypedTerm String -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litSymbol :: TypedTerm ScalaSymbol -> TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: litUnit :: TypedTerm Lit
+ Hydra.Scala.Dsl.Syntax: matchData :: TypedTerm Data -> TypedTerm [Case] -> TypedTerm MatchData
+ Hydra.Scala.Dsl.Syntax: matchDataCases :: TypedTerm MatchData -> TypedTerm [Case]
+ Hydra.Scala.Dsl.Syntax: matchDataExpr :: TypedTerm MatchData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: matchDataWithCases :: TypedTerm MatchData -> TypedTerm [Case] -> TypedTerm MatchData
+ Hydra.Scala.Dsl.Syntax: matchDataWithExpr :: TypedTerm MatchData -> TypedTerm Data -> TypedTerm MatchData
+ Hydra.Scala.Dsl.Syntax: matchType :: TypedTerm Type -> TypedTerm [TypeCase] -> TypedTerm MatchType
+ Hydra.Scala.Dsl.Syntax: matchTypeCases :: TypedTerm MatchType -> TypedTerm [TypeCase]
+ Hydra.Scala.Dsl.Syntax: matchTypeTpe :: TypedTerm MatchType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: matchTypeWithCases :: TypedTerm MatchType -> TypedTerm [TypeCase] -> TypedTerm MatchType
+ Hydra.Scala.Dsl.Syntax: matchTypeWithTpe :: TypedTerm MatchType -> TypedTerm Type -> TypedTerm MatchType
+ Hydra.Scala.Dsl.Syntax: memberSelf :: TypedTerm Self -> TypedTerm Member
+ Hydra.Scala.Dsl.Syntax: memberTerm :: TypedTerm DataMember -> TypedTerm Member
+ Hydra.Scala.Dsl.Syntax: memberTermParam :: TypedTerm ParamData -> TypedTerm Member
+ Hydra.Scala.Dsl.Syntax: memberType :: TypedTerm TypeMember -> TypedTerm Member
+ Hydra.Scala.Dsl.Syntax: memberTypeParam :: TypedTerm ParamType -> TypedTerm Member
+ Hydra.Scala.Dsl.Syntax: methodType :: TypedTerm [[ParamData]] -> TypedTerm Type -> TypedTerm MethodType
+ Hydra.Scala.Dsl.Syntax: methodTypeParamss :: TypedTerm MethodType -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: methodTypeTpe :: TypedTerm MethodType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: methodTypeWithParamss :: TypedTerm MethodType -> TypedTerm [[ParamData]] -> TypedTerm MethodType
+ Hydra.Scala.Dsl.Syntax: methodTypeWithTpe :: TypedTerm MethodType -> TypedTerm Type -> TypedTerm MethodType
+ Hydra.Scala.Dsl.Syntax: modAbstract :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modAnnot :: TypedTerm AnnotMod -> TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modCase :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modContravariant :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modCovariant :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modFinal :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modImplicit :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modInfix :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modInline :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modLazy :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modOpaque :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modOpen :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modOverride :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modPrivate :: TypedTerm PrivateMod -> TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modProtected :: TypedTerm ProtectedMod -> TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modSealed :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modSuper :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modTransparent :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modUsing :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modValParam :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: modVarParam :: TypedTerm Mod
+ Hydra.Scala.Dsl.Syntax: nameAnonymous :: TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: nameData :: TypedTerm PredefString -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: nameDataValue :: TypedTerm NameData -> TypedTerm PredefString
+ Hydra.Scala.Dsl.Syntax: nameDataWithValue :: TypedTerm NameData -> TypedTerm PredefString -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: nameImportee :: TypedTerm Name -> TypedTerm NameImportee
+ Hydra.Scala.Dsl.Syntax: nameImporteeName :: TypedTerm NameImportee -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: nameImporteeWithName :: TypedTerm NameImportee -> TypedTerm Name -> TypedTerm NameImportee
+ Hydra.Scala.Dsl.Syntax: nameIndeterminate :: TypedTerm PredefString -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: nameType :: TypedTerm String -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: nameTypeValue :: TypedTerm NameType -> TypedTerm String
+ Hydra.Scala.Dsl.Syntax: nameTypeWithValue :: TypedTerm NameType -> TypedTerm String -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: nameValue :: TypedTerm String -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: newAnonymousData :: TypedTerm Template -> TypedTerm NewAnonymousData
+ Hydra.Scala.Dsl.Syntax: newAnonymousDataTempl :: TypedTerm NewAnonymousData -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: newAnonymousDataWithTempl :: TypedTerm NewAnonymousData -> TypedTerm Template -> TypedTerm NewAnonymousData
+ Hydra.Scala.Dsl.Syntax: newData :: TypedTerm Init -> TypedTerm NewData
+ Hydra.Scala.Dsl.Syntax: newDataInit :: TypedTerm NewData -> TypedTerm Init
+ Hydra.Scala.Dsl.Syntax: newDataWithInit :: TypedTerm NewData -> TypedTerm Init -> TypedTerm NewData
+ Hydra.Scala.Dsl.Syntax: objectDefn :: TypedTerm NameData -> TypedTerm ObjectDefn
+ Hydra.Scala.Dsl.Syntax: objectDefnName :: TypedTerm ObjectDefn -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: objectDefnWithName :: TypedTerm ObjectDefn -> TypedTerm NameData -> TypedTerm ObjectDefn
+ Hydra.Scala.Dsl.Syntax: objectPkg :: TypedTerm [Mod] -> TypedTerm NameData -> TypedTerm Template -> TypedTerm ObjectPkg
+ Hydra.Scala.Dsl.Syntax: objectPkgMods :: TypedTerm ObjectPkg -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: objectPkgName :: TypedTerm ObjectPkg -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: objectPkgTemplate :: TypedTerm ObjectPkg -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: objectPkgWithMods :: TypedTerm ObjectPkg -> TypedTerm [Mod] -> TypedTerm ObjectPkg
+ Hydra.Scala.Dsl.Syntax: objectPkgWithName :: TypedTerm ObjectPkg -> TypedTerm NameData -> TypedTerm ObjectPkg
+ Hydra.Scala.Dsl.Syntax: objectPkgWithTemplate :: TypedTerm ObjectPkg -> TypedTerm Template -> TypedTerm ObjectPkg
+ Hydra.Scala.Dsl.Syntax: orType :: TypedTerm Type -> TypedTerm Type -> TypedTerm OrType
+ Hydra.Scala.Dsl.Syntax: orTypeLhs :: TypedTerm OrType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: orTypeRhs :: TypedTerm OrType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: orTypeWithLhs :: TypedTerm OrType -> TypedTerm Type -> TypedTerm OrType
+ Hydra.Scala.Dsl.Syntax: orTypeWithRhs :: TypedTerm OrType -> TypedTerm Type -> TypedTerm OrType
+ Hydra.Scala.Dsl.Syntax: paramData :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm (Maybe Type) -> TypedTerm (Maybe Data) -> TypedTerm ParamData
+ Hydra.Scala.Dsl.Syntax: paramDataDecltpe :: TypedTerm ParamData -> TypedTerm (Maybe Type)
+ Hydra.Scala.Dsl.Syntax: paramDataDefault :: TypedTerm ParamData -> TypedTerm (Maybe Data)
+ Hydra.Scala.Dsl.Syntax: paramDataMods :: TypedTerm ParamData -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: paramDataName :: TypedTerm ParamData -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: paramDataWithDecltpe :: TypedTerm ParamData -> TypedTerm (Maybe Type) -> TypedTerm ParamData
+ Hydra.Scala.Dsl.Syntax: paramDataWithDefault :: TypedTerm ParamData -> TypedTerm (Maybe Data) -> TypedTerm ParamData
+ Hydra.Scala.Dsl.Syntax: paramDataWithMods :: TypedTerm ParamData -> TypedTerm [Mod] -> TypedTerm ParamData
+ Hydra.Scala.Dsl.Syntax: paramDataWithName :: TypedTerm ParamData -> TypedTerm Name -> TypedTerm ParamData
+ Hydra.Scala.Dsl.Syntax: paramType :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [ParamType] -> TypedTerm [TypeBounds] -> TypedTerm [Type] -> TypedTerm [Type] -> TypedTerm ParamType
+ Hydra.Scala.Dsl.Syntax: paramTypeCbounds :: TypedTerm ParamType -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: paramTypeMods :: TypedTerm ParamType -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: paramTypeName :: TypedTerm ParamType -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: paramTypeTbounds :: TypedTerm ParamType -> TypedTerm [TypeBounds]
+ Hydra.Scala.Dsl.Syntax: paramTypeTparams :: TypedTerm ParamType -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: paramTypeVbounds :: TypedTerm ParamType -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: paramTypeWithCbounds :: TypedTerm ParamType -> TypedTerm [Type] -> TypedTerm ParamType
+ Hydra.Scala.Dsl.Syntax: paramTypeWithMods :: TypedTerm ParamType -> TypedTerm [Mod] -> TypedTerm ParamType
+ Hydra.Scala.Dsl.Syntax: paramTypeWithName :: TypedTerm ParamType -> TypedTerm Name -> TypedTerm ParamType
+ Hydra.Scala.Dsl.Syntax: paramTypeWithTbounds :: TypedTerm ParamType -> TypedTerm [TypeBounds] -> TypedTerm ParamType
+ Hydra.Scala.Dsl.Syntax: paramTypeWithTparams :: TypedTerm ParamType -> TypedTerm [ParamType] -> TypedTerm ParamType
+ Hydra.Scala.Dsl.Syntax: paramTypeWithVbounds :: TypedTerm ParamType -> TypedTerm [Type] -> TypedTerm ParamType
+ Hydra.Scala.Dsl.Syntax: partialFunctionData :: TypedTerm [Case] -> TypedTerm PartialFunctionData
+ Hydra.Scala.Dsl.Syntax: partialFunctionDataCases :: TypedTerm PartialFunctionData -> TypedTerm [Case]
+ Hydra.Scala.Dsl.Syntax: partialFunctionDataWithCases :: TypedTerm PartialFunctionData -> TypedTerm [Case] -> TypedTerm PartialFunctionData
+ Hydra.Scala.Dsl.Syntax: patAlternative :: TypedTerm AlternativePat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patBind :: TypedTerm BindPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patExtract :: TypedTerm ExtractPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patExtractInfix :: TypedTerm ExtractInfixPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patGiven :: TypedTerm GivenPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patInterpolate :: TypedTerm InterpolatePat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patRepeated :: TypedTerm RepeatedPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patSeqWildcard :: TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patTuple :: TypedTerm TuplePat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patTyped :: TypedTerm TypedPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patVar :: TypedTerm VarPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: patWildcard :: TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: pkg :: TypedTerm NameData -> TypedTerm RefData -> TypedTerm [Stat] -> TypedTerm Pkg
+ Hydra.Scala.Dsl.Syntax: pkgName :: TypedTerm Pkg -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: pkgRef :: TypedTerm Pkg -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: pkgStats :: TypedTerm Pkg -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: pkgWithName :: TypedTerm Pkg -> TypedTerm NameData -> TypedTerm Pkg
+ Hydra.Scala.Dsl.Syntax: pkgWithRef :: TypedTerm Pkg -> TypedTerm RefData -> TypedTerm Pkg
+ Hydra.Scala.Dsl.Syntax: pkgWithStats :: TypedTerm Pkg -> TypedTerm [Stat] -> TypedTerm Pkg
+ Hydra.Scala.Dsl.Syntax: placeholderType :: TypedTerm TypeBounds -> TypedTerm PlaceholderType
+ Hydra.Scala.Dsl.Syntax: placeholderTypeBounds :: TypedTerm PlaceholderType -> TypedTerm TypeBounds
+ Hydra.Scala.Dsl.Syntax: placeholderTypeWithBounds :: TypedTerm PlaceholderType -> TypedTerm TypeBounds -> TypedTerm PlaceholderType
+ Hydra.Scala.Dsl.Syntax: polyFunctionData :: TypedTerm [ParamType] -> TypedTerm Data -> TypedTerm PolyFunctionData
+ Hydra.Scala.Dsl.Syntax: polyFunctionDataBody :: TypedTerm PolyFunctionData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: polyFunctionDataTparams :: TypedTerm PolyFunctionData -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: polyFunctionDataWithBody :: TypedTerm PolyFunctionData -> TypedTerm Data -> TypedTerm PolyFunctionData
+ Hydra.Scala.Dsl.Syntax: polyFunctionDataWithTparams :: TypedTerm PolyFunctionData -> TypedTerm [ParamType] -> TypedTerm PolyFunctionData
+ Hydra.Scala.Dsl.Syntax: polyFunctionType :: TypedTerm [ParamType] -> TypedTerm Type -> TypedTerm PolyFunctionType
+ Hydra.Scala.Dsl.Syntax: polyFunctionTypeTparams :: TypedTerm PolyFunctionType -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: polyFunctionTypeTpe :: TypedTerm PolyFunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: polyFunctionTypeWithTparams :: TypedTerm PolyFunctionType -> TypedTerm [ParamType] -> TypedTerm PolyFunctionType
+ Hydra.Scala.Dsl.Syntax: polyFunctionTypeWithTpe :: TypedTerm PolyFunctionType -> TypedTerm Type -> TypedTerm PolyFunctionType
+ Hydra.Scala.Dsl.Syntax: predefString :: TypedTerm String -> TypedTerm PredefString
+ Hydra.Scala.Dsl.Syntax: primaryCtor :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamData]] -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: primaryCtorMods :: TypedTerm PrimaryCtor -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: primaryCtorName :: TypedTerm PrimaryCtor -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: primaryCtorParamss :: TypedTerm PrimaryCtor -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: primaryCtorWithMods :: TypedTerm PrimaryCtor -> TypedTerm [Mod] -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: primaryCtorWithName :: TypedTerm PrimaryCtor -> TypedTerm Name -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: primaryCtorWithParamss :: TypedTerm PrimaryCtor -> TypedTerm [[ParamData]] -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: privateMod :: TypedTerm Ref -> TypedTerm PrivateMod
+ Hydra.Scala.Dsl.Syntax: privateModWithWithin :: TypedTerm PrivateMod -> TypedTerm Ref -> TypedTerm PrivateMod
+ Hydra.Scala.Dsl.Syntax: privateModWithin :: TypedTerm PrivateMod -> TypedTerm Ref
+ Hydra.Scala.Dsl.Syntax: projectType :: TypedTerm Type -> TypedTerm NameType -> TypedTerm ProjectType
+ Hydra.Scala.Dsl.Syntax: projectTypeName :: TypedTerm ProjectType -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: projectTypeQual :: TypedTerm ProjectType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: projectTypeWithName :: TypedTerm ProjectType -> TypedTerm NameType -> TypedTerm ProjectType
+ Hydra.Scala.Dsl.Syntax: projectTypeWithQual :: TypedTerm ProjectType -> TypedTerm Type -> TypedTerm ProjectType
+ Hydra.Scala.Dsl.Syntax: protectedMod :: TypedTerm Ref -> TypedTerm ProtectedMod
+ Hydra.Scala.Dsl.Syntax: protectedModWithWithin :: TypedTerm ProtectedMod -> TypedTerm Ref -> TypedTerm ProtectedMod
+ Hydra.Scala.Dsl.Syntax: protectedModWithin :: TypedTerm ProtectedMod -> TypedTerm Ref
+ Hydra.Scala.Dsl.Syntax: refDataAnonymous :: TypedTerm AnonymousData -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: refDataApplyUnary :: TypedTerm ApplyUnaryData -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: refDataName :: TypedTerm NameData -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: refDataSelect :: TypedTerm SelectData -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: refDataSuper :: TypedTerm SuperData -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: refDataThis :: TypedTerm ThisData -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: refInit :: TypedTerm Init -> TypedTerm Ref
+ Hydra.Scala.Dsl.Syntax: refName :: TypedTerm Name -> TypedTerm Ref
+ Hydra.Scala.Dsl.Syntax: refTypeName :: TypedTerm NameType -> TypedTerm RefType
+ Hydra.Scala.Dsl.Syntax: refTypeProject :: TypedTerm ProjectType -> TypedTerm RefType
+ Hydra.Scala.Dsl.Syntax: refTypeSelect :: TypedTerm SelectType -> TypedTerm RefType
+ Hydra.Scala.Dsl.Syntax: refTypeSingleton :: TypedTerm SingletonType -> TypedTerm RefType
+ Hydra.Scala.Dsl.Syntax: refineType :: TypedTerm (Maybe Type) -> TypedTerm [Stat] -> TypedTerm RefineType
+ Hydra.Scala.Dsl.Syntax: refineTypeStats :: TypedTerm RefineType -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: refineTypeTpe :: TypedTerm RefineType -> TypedTerm (Maybe Type)
+ Hydra.Scala.Dsl.Syntax: refineTypeWithStats :: TypedTerm RefineType -> TypedTerm [Stat] -> TypedTerm RefineType
+ Hydra.Scala.Dsl.Syntax: refineTypeWithTpe :: TypedTerm RefineType -> TypedTerm (Maybe Type) -> TypedTerm RefineType
+ Hydra.Scala.Dsl.Syntax: renameImportee :: TypedTerm Name -> TypedTerm Name -> TypedTerm RenameImportee
+ Hydra.Scala.Dsl.Syntax: renameImporteeName :: TypedTerm RenameImportee -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: renameImporteeRename :: TypedTerm RenameImportee -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: renameImporteeWithName :: TypedTerm RenameImportee -> TypedTerm Name -> TypedTerm RenameImportee
+ Hydra.Scala.Dsl.Syntax: renameImporteeWithRename :: TypedTerm RenameImportee -> TypedTerm Name -> TypedTerm RenameImportee
+ Hydra.Scala.Dsl.Syntax: repeatedData :: TypedTerm Data -> TypedTerm RepeatedData
+ Hydra.Scala.Dsl.Syntax: repeatedDataExpr :: TypedTerm RepeatedData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: repeatedDataWithExpr :: TypedTerm RepeatedData -> TypedTerm Data -> TypedTerm RepeatedData
+ Hydra.Scala.Dsl.Syntax: repeatedEnumCaseDefn :: TypedTerm [Mod] -> TypedTerm [NameData] -> TypedTerm RepeatedEnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: repeatedEnumCaseDefnCases :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [NameData]
+ Hydra.Scala.Dsl.Syntax: repeatedEnumCaseDefnMods :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: repeatedEnumCaseDefnWithCases :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [NameData] -> TypedTerm RepeatedEnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: repeatedEnumCaseDefnWithMods :: TypedTerm RepeatedEnumCaseDefn -> TypedTerm [Mod] -> TypedTerm RepeatedEnumCaseDefn
+ Hydra.Scala.Dsl.Syntax: repeatedPat :: TypedTerm NameData -> TypedTerm RepeatedPat
+ Hydra.Scala.Dsl.Syntax: repeatedPatName :: TypedTerm RepeatedPat -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: repeatedPatWithName :: TypedTerm RepeatedPat -> TypedTerm NameData -> TypedTerm RepeatedPat
+ Hydra.Scala.Dsl.Syntax: repeatedType :: TypedTerm Type -> TypedTerm RepeatedType
+ Hydra.Scala.Dsl.Syntax: repeatedTypeTpe :: TypedTerm RepeatedType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: repeatedTypeWithTpe :: TypedTerm RepeatedType -> TypedTerm Type -> TypedTerm RepeatedType
+ Hydra.Scala.Dsl.Syntax: returnData :: TypedTerm Data -> TypedTerm ReturnData
+ Hydra.Scala.Dsl.Syntax: returnDataExpr :: TypedTerm ReturnData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: returnDataWithExpr :: TypedTerm ReturnData -> TypedTerm Data -> TypedTerm ReturnData
+ Hydra.Scala.Dsl.Syntax: scalaSymbol :: TypedTerm String -> TypedTerm ScalaSymbol
+ Hydra.Scala.Dsl.Syntax: scalaSymbolName :: TypedTerm ScalaSymbol -> TypedTerm String
+ Hydra.Scala.Dsl.Syntax: scalaSymbolWithName :: TypedTerm ScalaSymbol -> TypedTerm String -> TypedTerm ScalaSymbol
+ Hydra.Scala.Dsl.Syntax: secondaryCtor :: TypedTerm [Mod] -> TypedTerm Name -> TypedTerm [[ParamData]] -> TypedTerm Init -> TypedTerm [Stat] -> TypedTerm SecondaryCtor
+ Hydra.Scala.Dsl.Syntax: secondaryCtorInit :: TypedTerm SecondaryCtor -> TypedTerm Init
+ Hydra.Scala.Dsl.Syntax: secondaryCtorMods :: TypedTerm SecondaryCtor -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: secondaryCtorName :: TypedTerm SecondaryCtor -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: secondaryCtorParamss :: TypedTerm SecondaryCtor -> TypedTerm [[ParamData]]
+ Hydra.Scala.Dsl.Syntax: secondaryCtorStats :: TypedTerm SecondaryCtor -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: secondaryCtorWithInit :: TypedTerm SecondaryCtor -> TypedTerm Init -> TypedTerm SecondaryCtor
+ Hydra.Scala.Dsl.Syntax: secondaryCtorWithMods :: TypedTerm SecondaryCtor -> TypedTerm [Mod] -> TypedTerm SecondaryCtor
+ Hydra.Scala.Dsl.Syntax: secondaryCtorWithName :: TypedTerm SecondaryCtor -> TypedTerm Name -> TypedTerm SecondaryCtor
+ Hydra.Scala.Dsl.Syntax: secondaryCtorWithParamss :: TypedTerm SecondaryCtor -> TypedTerm [[ParamData]] -> TypedTerm SecondaryCtor
+ Hydra.Scala.Dsl.Syntax: secondaryCtorWithStats :: TypedTerm SecondaryCtor -> TypedTerm [Stat] -> TypedTerm SecondaryCtor
+ Hydra.Scala.Dsl.Syntax: selectData :: TypedTerm Data -> TypedTerm NameData -> TypedTerm SelectData
+ Hydra.Scala.Dsl.Syntax: selectDataName :: TypedTerm SelectData -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: selectDataQual :: TypedTerm SelectData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: selectDataWithName :: TypedTerm SelectData -> TypedTerm NameData -> TypedTerm SelectData
+ Hydra.Scala.Dsl.Syntax: selectDataWithQual :: TypedTerm SelectData -> TypedTerm Data -> TypedTerm SelectData
+ Hydra.Scala.Dsl.Syntax: selectType :: TypedTerm RefData -> TypedTerm NameType -> TypedTerm SelectType
+ Hydra.Scala.Dsl.Syntax: selectTypeName :: TypedTerm SelectType -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: selectTypeQual :: TypedTerm SelectType -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: selectTypeWithName :: TypedTerm SelectType -> TypedTerm NameType -> TypedTerm SelectType
+ Hydra.Scala.Dsl.Syntax: selectTypeWithQual :: TypedTerm SelectType -> TypedTerm RefData -> TypedTerm SelectType
+ Hydra.Scala.Dsl.Syntax: self :: TypedTerm () -> TypedTerm Self
+ Hydra.Scala.Dsl.Syntax: singletonType :: TypedTerm RefData -> TypedTerm SingletonType
+ Hydra.Scala.Dsl.Syntax: singletonTypeRef :: TypedTerm SingletonType -> TypedTerm RefData
+ Hydra.Scala.Dsl.Syntax: singletonTypeWithRef :: TypedTerm SingletonType -> TypedTerm RefData -> TypedTerm SingletonType
+ Hydra.Scala.Dsl.Syntax: source :: TypedTerm [Stat] -> TypedTerm Source
+ Hydra.Scala.Dsl.Syntax: sourceStats :: TypedTerm Source -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: sourceWithStats :: TypedTerm Source -> TypedTerm [Stat] -> TypedTerm Source
+ Hydra.Scala.Dsl.Syntax: statDecl :: TypedTerm Decl -> TypedTerm Stat
+ Hydra.Scala.Dsl.Syntax: statDefn :: TypedTerm Defn -> TypedTerm Stat
+ Hydra.Scala.Dsl.Syntax: statImportExport :: TypedTerm ImportExportStat -> TypedTerm Stat
+ Hydra.Scala.Dsl.Syntax: statTerm :: TypedTerm Data -> TypedTerm Stat
+ Hydra.Scala.Dsl.Syntax: superData :: TypedTerm Name -> TypedTerm Name -> TypedTerm SuperData
+ Hydra.Scala.Dsl.Syntax: superDataSuperp :: TypedTerm SuperData -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: superDataThisp :: TypedTerm SuperData -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: superDataWithSuperp :: TypedTerm SuperData -> TypedTerm Name -> TypedTerm SuperData
+ Hydra.Scala.Dsl.Syntax: superDataWithThisp :: TypedTerm SuperData -> TypedTerm Name -> TypedTerm SuperData
+ Hydra.Scala.Dsl.Syntax: template :: TypedTerm [Stat] -> TypedTerm [Init] -> TypedTerm Self -> TypedTerm [Stat] -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: templateEarly :: TypedTerm Template -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: templateInits :: TypedTerm Template -> TypedTerm [Init]
+ Hydra.Scala.Dsl.Syntax: templateSelf :: TypedTerm Template -> TypedTerm Self
+ Hydra.Scala.Dsl.Syntax: templateStats :: TypedTerm Template -> TypedTerm [Stat]
+ Hydra.Scala.Dsl.Syntax: templateWithEarly :: TypedTerm Template -> TypedTerm [Stat] -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: templateWithInits :: TypedTerm Template -> TypedTerm [Init] -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: templateWithSelf :: TypedTerm Template -> TypedTerm Self -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: templateWithStats :: TypedTerm Template -> TypedTerm [Stat] -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: thisData :: TypedTerm () -> TypedTerm ThisData
+ Hydra.Scala.Dsl.Syntax: throwData :: TypedTerm Data -> TypedTerm ThrowData
+ Hydra.Scala.Dsl.Syntax: throwDataExpr :: TypedTerm ThrowData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: throwDataWithExpr :: TypedTerm ThrowData -> TypedTerm Data -> TypedTerm ThrowData
+ Hydra.Scala.Dsl.Syntax: traitDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm PrimaryCtor -> TypedTerm Template -> TypedTerm TraitDefn
+ Hydra.Scala.Dsl.Syntax: traitDefnCtor :: TypedTerm TraitDefn -> TypedTerm PrimaryCtor
+ Hydra.Scala.Dsl.Syntax: traitDefnMods :: TypedTerm TraitDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: traitDefnName :: TypedTerm TraitDefn -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: traitDefnTemplate :: TypedTerm TraitDefn -> TypedTerm Template
+ Hydra.Scala.Dsl.Syntax: traitDefnTparams :: TypedTerm TraitDefn -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: traitDefnWithCtor :: TypedTerm TraitDefn -> TypedTerm PrimaryCtor -> TypedTerm TraitDefn
+ Hydra.Scala.Dsl.Syntax: traitDefnWithMods :: TypedTerm TraitDefn -> TypedTerm [Mod] -> TypedTerm TraitDefn
+ Hydra.Scala.Dsl.Syntax: traitDefnWithName :: TypedTerm TraitDefn -> TypedTerm NameType -> TypedTerm TraitDefn
+ Hydra.Scala.Dsl.Syntax: traitDefnWithTemplate :: TypedTerm TraitDefn -> TypedTerm Template -> TypedTerm TraitDefn
+ Hydra.Scala.Dsl.Syntax: traitDefnWithTparams :: TypedTerm TraitDefn -> TypedTerm [ParamType] -> TypedTerm TraitDefn
+ Hydra.Scala.Dsl.Syntax: treeBounds :: TypedTerm TypeBounds -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeCaseTree :: TypedTerm CaseTree -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeCtor :: TypedTerm Ctor -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeEnumerator :: TypedTerm Enumerator -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeImportee :: TypedTerm Importee -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeImporter :: TypedTerm Importer -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeMember :: TypedTerm Member -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeMod :: TypedTerm Mod -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treePat :: TypedTerm Pat -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeRef :: TypedTerm Ref -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeSource :: TypedTerm Source -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeStat :: TypedTerm Stat -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeTemplate :: TypedTerm Template -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: treeType :: TypedTerm Type -> TypedTerm Tree
+ Hydra.Scala.Dsl.Syntax: tryData :: TypedTerm Data -> TypedTerm [Case] -> TypedTerm (Maybe Data) -> TypedTerm TryData
+ Hydra.Scala.Dsl.Syntax: tryDataCatchp :: TypedTerm TryData -> TypedTerm [Case]
+ Hydra.Scala.Dsl.Syntax: tryDataExpr :: TypedTerm TryData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: tryDataFinallyp :: TypedTerm TryData -> TypedTerm (Maybe Data)
+ Hydra.Scala.Dsl.Syntax: tryDataWithCatchp :: TypedTerm TryData -> TypedTerm [Case] -> TypedTerm TryData
+ Hydra.Scala.Dsl.Syntax: tryDataWithExpr :: TypedTerm TryData -> TypedTerm Data -> TypedTerm TryData
+ Hydra.Scala.Dsl.Syntax: tryDataWithFinallyp :: TypedTerm TryData -> TypedTerm (Maybe Data) -> TypedTerm TryData
+ Hydra.Scala.Dsl.Syntax: tryWithHandlerData :: TypedTerm Data -> TypedTerm Data -> TypedTerm (Maybe Data) -> TypedTerm TryWithHandlerData
+ Hydra.Scala.Dsl.Syntax: tryWithHandlerDataCatchp :: TypedTerm TryWithHandlerData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: tryWithHandlerDataExpr :: TypedTerm TryWithHandlerData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: tryWithHandlerDataFinallyp :: TypedTerm TryWithHandlerData -> TypedTerm (Maybe Data)
+ Hydra.Scala.Dsl.Syntax: tryWithHandlerDataWithCatchp :: TypedTerm TryWithHandlerData -> TypedTerm Data -> TypedTerm TryWithHandlerData
+ Hydra.Scala.Dsl.Syntax: tryWithHandlerDataWithExpr :: TypedTerm TryWithHandlerData -> TypedTerm Data -> TypedTerm TryWithHandlerData
+ Hydra.Scala.Dsl.Syntax: tryWithHandlerDataWithFinallyp :: TypedTerm TryWithHandlerData -> TypedTerm (Maybe Data) -> TypedTerm TryWithHandlerData
+ Hydra.Scala.Dsl.Syntax: tupleData :: TypedTerm [Data] -> TypedTerm TupleData
+ Hydra.Scala.Dsl.Syntax: tupleDataArgs :: TypedTerm TupleData -> TypedTerm [Data]
+ Hydra.Scala.Dsl.Syntax: tupleDataWithArgs :: TypedTerm TupleData -> TypedTerm [Data] -> TypedTerm TupleData
+ Hydra.Scala.Dsl.Syntax: tuplePat :: TypedTerm [Pat] -> TypedTerm TuplePat
+ Hydra.Scala.Dsl.Syntax: tuplePatArgs :: TypedTerm TuplePat -> TypedTerm [Pat]
+ Hydra.Scala.Dsl.Syntax: tuplePatWithArgs :: TypedTerm TuplePat -> TypedTerm [Pat] -> TypedTerm TuplePat
+ Hydra.Scala.Dsl.Syntax: tupleType :: TypedTerm [Type] -> TypedTerm TupleType
+ Hydra.Scala.Dsl.Syntax: tupleTypeArgs :: TypedTerm TupleType -> TypedTerm [Type]
+ Hydra.Scala.Dsl.Syntax: tupleTypeWithArgs :: TypedTerm TupleType -> TypedTerm [Type] -> TypedTerm TupleType
+ Hydra.Scala.Dsl.Syntax: typeAnd :: TypedTerm AndType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeAnnotate :: TypedTerm AnnotateType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeAnonymousName :: TypedTerm AnonymousNameType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeApply :: TypedTerm ApplyType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeApplyInfix :: TypedTerm ApplyInfixType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeBounds :: TypedTerm (Maybe Type) -> TypedTerm (Maybe Type) -> TypedTerm TypeBounds
+ Hydra.Scala.Dsl.Syntax: typeBoundsHi :: TypedTerm TypeBounds -> TypedTerm (Maybe Type)
+ Hydra.Scala.Dsl.Syntax: typeBoundsLo :: TypedTerm TypeBounds -> TypedTerm (Maybe Type)
+ Hydra.Scala.Dsl.Syntax: typeBoundsWithHi :: TypedTerm TypeBounds -> TypedTerm (Maybe Type) -> TypedTerm TypeBounds
+ Hydra.Scala.Dsl.Syntax: typeBoundsWithLo :: TypedTerm TypeBounds -> TypedTerm (Maybe Type) -> TypedTerm TypeBounds
+ Hydra.Scala.Dsl.Syntax: typeByName :: TypedTerm ByNameType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeCase :: TypedTerm Type -> TypedTerm Type -> TypedTerm TypeCase
+ Hydra.Scala.Dsl.Syntax: typeCaseBody :: TypedTerm TypeCase -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeCasePat :: TypedTerm TypeCase -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeCaseWithBody :: TypedTerm TypeCase -> TypedTerm Type -> TypedTerm TypeCase
+ Hydra.Scala.Dsl.Syntax: typeCaseWithPat :: TypedTerm TypeCase -> TypedTerm Type -> TypedTerm TypeCase
+ Hydra.Scala.Dsl.Syntax: typeContextFunction :: TypedTerm ContextFunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeDecl :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm TypeBounds -> TypedTerm TypeDecl
+ Hydra.Scala.Dsl.Syntax: typeDeclBounds :: TypedTerm TypeDecl -> TypedTerm TypeBounds
+ Hydra.Scala.Dsl.Syntax: typeDeclMods :: TypedTerm TypeDecl -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: typeDeclName :: TypedTerm TypeDecl -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: typeDeclTparams :: TypedTerm TypeDecl -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: typeDeclWithBounds :: TypedTerm TypeDecl -> TypedTerm TypeBounds -> TypedTerm TypeDecl
+ Hydra.Scala.Dsl.Syntax: typeDeclWithMods :: TypedTerm TypeDecl -> TypedTerm [Mod] -> TypedTerm TypeDecl
+ Hydra.Scala.Dsl.Syntax: typeDeclWithName :: TypedTerm TypeDecl -> TypedTerm NameType -> TypedTerm TypeDecl
+ Hydra.Scala.Dsl.Syntax: typeDeclWithTparams :: TypedTerm TypeDecl -> TypedTerm [ParamType] -> TypedTerm TypeDecl
+ Hydra.Scala.Dsl.Syntax: typeDefn :: TypedTerm [Mod] -> TypedTerm NameType -> TypedTerm [ParamType] -> TypedTerm Type -> TypedTerm TypeDefn
+ Hydra.Scala.Dsl.Syntax: typeDefnBody :: TypedTerm TypeDefn -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeDefnMods :: TypedTerm TypeDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: typeDefnName :: TypedTerm TypeDefn -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: typeDefnTparams :: TypedTerm TypeDefn -> TypedTerm [ParamType]
+ Hydra.Scala.Dsl.Syntax: typeDefnWithBody :: TypedTerm TypeDefn -> TypedTerm Type -> TypedTerm TypeDefn
+ Hydra.Scala.Dsl.Syntax: typeDefnWithMods :: TypedTerm TypeDefn -> TypedTerm [Mod] -> TypedTerm TypeDefn
+ Hydra.Scala.Dsl.Syntax: typeDefnWithName :: TypedTerm TypeDefn -> TypedTerm NameType -> TypedTerm TypeDefn
+ Hydra.Scala.Dsl.Syntax: typeDefnWithTparams :: TypedTerm TypeDefn -> TypedTerm [ParamType] -> TypedTerm TypeDefn
+ Hydra.Scala.Dsl.Syntax: typeExistential :: TypedTerm ExistentialType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeFunction :: TypedTerm FunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeImplicitFunction :: TypedTerm ImplicitFunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeLambda :: TypedTerm LambdaType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeMatch :: TypedTerm MatchType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeMember :: TypedTerm NameType -> TypedTerm TypeMember
+ Hydra.Scala.Dsl.Syntax: typeMemberName :: TypedTerm TypeMember -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: typeMemberWithName :: TypedTerm TypeMember -> TypedTerm NameType -> TypedTerm TypeMember
+ Hydra.Scala.Dsl.Syntax: typeMethod :: TypedTerm MethodType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeOr :: TypedTerm OrType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typePlaceholder :: TypedTerm PlaceholderType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typePolyFunction :: TypedTerm PolyFunctionType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeRef :: TypedTerm RefType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeRefine :: TypedTerm RefineType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeRepeated :: TypedTerm RepeatedType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeTuple :: TypedTerm TupleType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeTypedParam :: TypedTerm TypedParamType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeVar :: TypedTerm VarType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typeWith :: TypedTerm WithType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typedParamType :: TypedTerm Name -> TypedTerm Type -> TypedTerm TypedParamType
+ Hydra.Scala.Dsl.Syntax: typedParamTypeName :: TypedTerm TypedParamType -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: typedParamTypeTyp :: TypedTerm TypedParamType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typedParamTypeWithName :: TypedTerm TypedParamType -> TypedTerm Name -> TypedTerm TypedParamType
+ Hydra.Scala.Dsl.Syntax: typedParamTypeWithTyp :: TypedTerm TypedParamType -> TypedTerm Type -> TypedTerm TypedParamType
+ Hydra.Scala.Dsl.Syntax: typedPat :: TypedTerm Pat -> TypedTerm Type -> TypedTerm TypedPat
+ Hydra.Scala.Dsl.Syntax: typedPatLhs :: TypedTerm TypedPat -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: typedPatRhs :: TypedTerm TypedPat -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: typedPatWithLhs :: TypedTerm TypedPat -> TypedTerm Pat -> TypedTerm TypedPat
+ Hydra.Scala.Dsl.Syntax: typedPatWithRhs :: TypedTerm TypedPat -> TypedTerm Type -> TypedTerm TypedPat
+ Hydra.Scala.Dsl.Syntax: unAnonymousData :: TypedTerm AnonymousData -> TypedTerm ()
+ Hydra.Scala.Dsl.Syntax: unAnonymousNameType :: TypedTerm AnonymousNameType -> TypedTerm ()
+ Hydra.Scala.Dsl.Syntax: unPredefString :: TypedTerm PredefString -> TypedTerm String
+ Hydra.Scala.Dsl.Syntax: unSelf :: TypedTerm Self -> TypedTerm ()
+ Hydra.Scala.Dsl.Syntax: unThisData :: TypedTerm ThisData -> TypedTerm ()
+ Hydra.Scala.Dsl.Syntax: unimportImportee :: TypedTerm Name -> TypedTerm UnimportImportee
+ Hydra.Scala.Dsl.Syntax: unimportImporteeName :: TypedTerm UnimportImportee -> TypedTerm Name
+ Hydra.Scala.Dsl.Syntax: unimportImporteeWithName :: TypedTerm UnimportImportee -> TypedTerm Name -> TypedTerm UnimportImportee
+ Hydra.Scala.Dsl.Syntax: valDecl :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm Type -> TypedTerm ValDecl
+ Hydra.Scala.Dsl.Syntax: valDeclDecltpe :: TypedTerm ValDecl -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: valDeclMods :: TypedTerm ValDecl -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: valDeclPats :: TypedTerm ValDecl -> TypedTerm [Pat]
+ Hydra.Scala.Dsl.Syntax: valDeclWithDecltpe :: TypedTerm ValDecl -> TypedTerm Type -> TypedTerm ValDecl
+ Hydra.Scala.Dsl.Syntax: valDeclWithMods :: TypedTerm ValDecl -> TypedTerm [Mod] -> TypedTerm ValDecl
+ Hydra.Scala.Dsl.Syntax: valDeclWithPats :: TypedTerm ValDecl -> TypedTerm [Pat] -> TypedTerm ValDecl
+ Hydra.Scala.Dsl.Syntax: valDefn :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm (Maybe Type) -> TypedTerm Data -> TypedTerm ValDefn
+ Hydra.Scala.Dsl.Syntax: valDefnDecltpe :: TypedTerm ValDefn -> TypedTerm (Maybe Type)
+ Hydra.Scala.Dsl.Syntax: valDefnMods :: TypedTerm ValDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: valDefnPats :: TypedTerm ValDefn -> TypedTerm [Pat]
+ Hydra.Scala.Dsl.Syntax: valDefnRhs :: TypedTerm ValDefn -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: valDefnWithDecltpe :: TypedTerm ValDefn -> TypedTerm (Maybe Type) -> TypedTerm ValDefn
+ Hydra.Scala.Dsl.Syntax: valDefnWithMods :: TypedTerm ValDefn -> TypedTerm [Mod] -> TypedTerm ValDefn
+ Hydra.Scala.Dsl.Syntax: valDefnWithPats :: TypedTerm ValDefn -> TypedTerm [Pat] -> TypedTerm ValDefn
+ Hydra.Scala.Dsl.Syntax: valDefnWithRhs :: TypedTerm ValDefn -> TypedTerm Data -> TypedTerm ValDefn
+ Hydra.Scala.Dsl.Syntax: valEnumerator :: TypedTerm Pat -> TypedTerm Data -> TypedTerm ValEnumerator
+ Hydra.Scala.Dsl.Syntax: valEnumeratorPat :: TypedTerm ValEnumerator -> TypedTerm Pat
+ Hydra.Scala.Dsl.Syntax: valEnumeratorRhs :: TypedTerm ValEnumerator -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: valEnumeratorWithPat :: TypedTerm ValEnumerator -> TypedTerm Pat -> TypedTerm ValEnumerator
+ Hydra.Scala.Dsl.Syntax: valEnumeratorWithRhs :: TypedTerm ValEnumerator -> TypedTerm Data -> TypedTerm ValEnumerator
+ Hydra.Scala.Dsl.Syntax: varDecl :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm Type -> TypedTerm VarDecl
+ Hydra.Scala.Dsl.Syntax: varDeclDecltpe :: TypedTerm VarDecl -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: varDeclMods :: TypedTerm VarDecl -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: varDeclPats :: TypedTerm VarDecl -> TypedTerm [Pat]
+ Hydra.Scala.Dsl.Syntax: varDeclWithDecltpe :: TypedTerm VarDecl -> TypedTerm Type -> TypedTerm VarDecl
+ Hydra.Scala.Dsl.Syntax: varDeclWithMods :: TypedTerm VarDecl -> TypedTerm [Mod] -> TypedTerm VarDecl
+ Hydra.Scala.Dsl.Syntax: varDeclWithPats :: TypedTerm VarDecl -> TypedTerm [Pat] -> TypedTerm VarDecl
+ Hydra.Scala.Dsl.Syntax: varDefn :: TypedTerm [Mod] -> TypedTerm [Pat] -> TypedTerm Type -> TypedTerm (Maybe Data) -> TypedTerm VarDefn
+ Hydra.Scala.Dsl.Syntax: varDefnDecltpe :: TypedTerm VarDefn -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: varDefnMods :: TypedTerm VarDefn -> TypedTerm [Mod]
+ Hydra.Scala.Dsl.Syntax: varDefnPats :: TypedTerm VarDefn -> TypedTerm [Pat]
+ Hydra.Scala.Dsl.Syntax: varDefnRhs :: TypedTerm VarDefn -> TypedTerm (Maybe Data)
+ Hydra.Scala.Dsl.Syntax: varDefnWithDecltpe :: TypedTerm VarDefn -> TypedTerm Type -> TypedTerm VarDefn
+ Hydra.Scala.Dsl.Syntax: varDefnWithMods :: TypedTerm VarDefn -> TypedTerm [Mod] -> TypedTerm VarDefn
+ Hydra.Scala.Dsl.Syntax: varDefnWithPats :: TypedTerm VarDefn -> TypedTerm [Pat] -> TypedTerm VarDefn
+ Hydra.Scala.Dsl.Syntax: varDefnWithRhs :: TypedTerm VarDefn -> TypedTerm (Maybe Data) -> TypedTerm VarDefn
+ Hydra.Scala.Dsl.Syntax: varPat :: TypedTerm NameData -> TypedTerm VarPat
+ Hydra.Scala.Dsl.Syntax: varPatName :: TypedTerm VarPat -> TypedTerm NameData
+ Hydra.Scala.Dsl.Syntax: varPatWithName :: TypedTerm VarPat -> TypedTerm NameData -> TypedTerm VarPat
+ Hydra.Scala.Dsl.Syntax: varType :: TypedTerm NameType -> TypedTerm VarType
+ Hydra.Scala.Dsl.Syntax: varTypeName :: TypedTerm VarType -> TypedTerm NameType
+ Hydra.Scala.Dsl.Syntax: varTypeWithName :: TypedTerm VarType -> TypedTerm NameType -> TypedTerm VarType
+ Hydra.Scala.Dsl.Syntax: whileData :: TypedTerm Data -> TypedTerm Data -> TypedTerm WhileData
+ Hydra.Scala.Dsl.Syntax: whileDataBody :: TypedTerm WhileData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: whileDataExpr :: TypedTerm WhileData -> TypedTerm Data
+ Hydra.Scala.Dsl.Syntax: whileDataWithBody :: TypedTerm WhileData -> TypedTerm Data -> TypedTerm WhileData
+ Hydra.Scala.Dsl.Syntax: whileDataWithExpr :: TypedTerm WhileData -> TypedTerm Data -> TypedTerm WhileData
+ Hydra.Scala.Dsl.Syntax: withType :: TypedTerm Type -> TypedTerm Type -> TypedTerm WithType
+ Hydra.Scala.Dsl.Syntax: withTypeLhs :: TypedTerm WithType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: withTypeRhs :: TypedTerm WithType -> TypedTerm Type
+ Hydra.Scala.Dsl.Syntax: withTypeWithLhs :: TypedTerm WithType -> TypedTerm Type -> TypedTerm WithType
+ Hydra.Scala.Dsl.Syntax: withTypeWithRhs :: TypedTerm WithType -> TypedTerm Type -> TypedTerm WithType
+ Hydra.Scala.Syntax: [extractPatIsCall] :: ExtractPat -> Bool
+ Hydra.Scala.Syntax: _ExtractPat_isCall :: Name
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AlternativePat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AndType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AnnotMod
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AnnotateData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AnnotateType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AnonymousData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AnonymousNameType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ApplyData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ApplyInfixData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ApplyInfixType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ApplyType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ApplyTypeData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ApplyUnaryData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ApplyUsingData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AscribeData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.AssignData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.BindPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.BlockData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ByNameType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Case
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.CaseGeneratorEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.CaseTree
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ClassDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ContextFunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ContextFunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Ctor
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Data
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.DataMember
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Decl
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.DefDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.DefDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Defn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.DoData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.EndMarkerData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.EnumCaseDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.EnumDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Enumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.EtaData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ExistentialType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Export
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ExtensionGroupDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ExtractInfixPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ExtractPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ForData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ForYieldData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.FunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.FunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.GeneratorEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.GivenAliasDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.GivenDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.GivenDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.GivenImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.GivenPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.GuardEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.IfData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ImplicitFunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Import
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ImportExportStat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Importee
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Importer
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Init
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.InterpolateData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.InterpolatePat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.LambdaType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Lit
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.MatchData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.MatchType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Member
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.MethodType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Mod
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Name
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.NameData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.NameImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.NameType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.NewAnonymousData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.NewData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ObjectDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ObjectPkg
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.OrType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ParamData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ParamType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.PartialFunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Pat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Pkg
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.PlaceholderType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.PolyFunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.PolyFunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.PredefString
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.PrimaryCtor
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.PrivateMod
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ProjectType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ProtectedMod
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Ref
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RefData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RefType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RefineType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RenameImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RepeatedData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RepeatedEnumCaseDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RepeatedPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.RepeatedType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ReturnData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ScalaSymbol
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.SecondaryCtor
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.SelectData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.SelectType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Self
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.SingletonType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Source
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Stat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.SuperData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Template
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ThisData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ThrowData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TraitDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Tree
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TryData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TryWithHandlerData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TupleData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TuplePat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TupleType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.Type
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TypeBounds
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TypeCase
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TypeDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TypeDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TypeMember
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TypedParamType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.TypedPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.UnimportImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ValDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ValDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.ValEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.VarDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.VarDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.VarPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.VarType
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.WhileData
+ Hydra.Scala.Syntax: instance GHC.Internal.Read.Read Hydra.Scala.Syntax.WithType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AlternativePat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AndType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AnnotMod
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AnnotateData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AnnotateType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AnonymousData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AnonymousNameType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ApplyData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ApplyInfixData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ApplyInfixType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ApplyType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ApplyTypeData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ApplyUnaryData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ApplyUsingData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AscribeData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.AssignData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.BindPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.BlockData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ByNameType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Case
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.CaseGeneratorEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.CaseTree
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ClassDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ContextFunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ContextFunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Ctor
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Data
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.DataMember
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Decl
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.DefDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.DefDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Defn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.DoData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.EndMarkerData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.EnumCaseDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.EnumDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Enumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.EtaData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ExistentialType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Export
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ExtensionGroupDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ExtractInfixPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ExtractPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ForData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ForYieldData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.FunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.FunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.GeneratorEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.GivenAliasDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.GivenDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.GivenDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.GivenImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.GivenPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.GuardEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.IfData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ImplicitFunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Import
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ImportExportStat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Importee
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Importer
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Init
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.InterpolateData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.InterpolatePat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.LambdaType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Lit
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.MatchData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.MatchType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Member
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.MethodType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Mod
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Name
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.NameData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.NameImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.NameType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.NewAnonymousData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.NewData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ObjectDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ObjectPkg
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.OrType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ParamData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ParamType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.PartialFunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Pat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Pkg
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.PlaceholderType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.PolyFunctionData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.PolyFunctionType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.PredefString
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.PrimaryCtor
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.PrivateMod
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ProjectType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ProtectedMod
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Ref
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RefData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RefType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RefineType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RenameImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RepeatedData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RepeatedEnumCaseDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RepeatedPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.RepeatedType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ReturnData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ScalaSymbol
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.SecondaryCtor
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.SelectData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.SelectType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Self
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.SingletonType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Source
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Stat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.SuperData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Template
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ThisData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ThrowData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TraitDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Tree
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TryData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TryWithHandlerData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TupleData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TuplePat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TupleType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.Type
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TypeBounds
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TypeCase
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TypeDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TypeDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TypeMember
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TypedParamType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.TypedPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.UnimportImportee
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ValDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ValDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.ValEnumerator
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.VarDecl
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.VarDefn
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.VarPat
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.VarType
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.WhileData
+ Hydra.Scala.Syntax: instance GHC.Internal.Show.Show Hydra.Scala.Syntax.WithType
- Hydra.Scala.Coder: encodeCase :: Set String -> t0 -> Graph -> Map Name Type -> Maybe Name -> CaseAlternative -> Either Error Case
+ Hydra.Scala.Coder: encodeCase :: Set String -> t0 -> Graph -> Map Name Type -> Maybe Name -> Bool -> CaseAlternative -> Either Error Case
- Hydra.Scala.Syntax: ExtractPat :: Data -> [Pat] -> ExtractPat
+ Hydra.Scala.Syntax: ExtractPat :: Data -> [Pat] -> Bool -> ExtractPat

Files

CHANGELOG.md view
@@ -15,6 +15,86 @@  --- +## [0.18.0] - 2026-09-29++Module-naming systematization release: every kernel and package module moves onto a uniform+`hydra.core.*` / `hydra.<pkg>.*` grammar, completing the package ⊃ module ⊃ definition containment+tower. The rename touches every module, definition, and cross-host reference in the codebase; this+release exists primarily to ship it as its own coordinated batch. Also lands the translingual regex+primitive pipeline and several silent-correctness fixes in the coder layer.++### Highlights++- **Module-name grammar systematization** ([#729](https://github.com/CategoricalData/hydra/issues/729)):+  every `hydra.*` module renamed onto a uniform package-derived prefix — kernel modules move to+  `hydra.core.*`, package modules to `hydra.<pkg>.*` — closing the long-standing inconsistency where+  a package name had no structural relationship to the module names it contained. The rename spans+  every host (Haskell, Java, Python, Scala, TypeScript, all four Lisp dialects) and required fixing+  stale namespace references, overlay-directory paths, and `hostOverrides` shims across every driver+  and bootstrap script that had hardcoded the old grammar. Further consolidation (a structurally+  enforced package↔prefix law) is tracked for 0.18.1. The kernel package itself is still published as+  `hydra-kernel` (its modules are under `hydra.core.*`); the `hydra-core` package rename #729 called for+  is under review because that name is taken on PyPI and npm+  ([#770](https://github.com/CategoricalData/hydra/issues/770)).+- **Translingual regex primitives** ([#603](https://github.com/CategoricalData/hydra/issues/603)):+  `hydra.lib.regex` primitives (`find`, `findAll`, `matches`, `replace`, `replaceAll`, `split`) now run+  every pattern through the shared `hydra.regex` parse/print pipeline instead of handing raw pattern+  strings to each host's native engine, so a pattern means the same thing on every host. Includes a+  host-independent conformance suite and a leftmost-longest alternation fix in the PCRE/POSIX printers.+- **Silent-corruption fixes across the coder layer**+  ([#744](https://github.com/CategoricalData/hydra/issues/744),+  [#765](https://github.com/CategoricalData/hydra/issues/765),+  [#649](https://github.com/CategoricalData/hydra/issues/649)): fixed data-corrupting bugs in the+  JSON-Schema/Avro/GraphQL/GraphSON/Protobuf coders (extended integer widths, map-key handling), the+  kernel's encode/decode generators (reversed type-parameter order on 2+-param polymorphic types), and+  the Python coder (silently dropping a module's types when types and terms share a file path).+- **Self-hosted specification docs** ([#723](https://github.com/CategoricalData/hydra/issues/723)):+  the module-reference pages under `docs/specification/` are now generated directly from the kernel+  (`bin/regenerate-spec.sh`) via a new metadata-only doc coder, rather than hand-maintained.++### New features++- **[#603](https://github.com/CategoricalData/hydra/issues/603)** host-independent regex conformance+  suite covering the minimal-core grammar (literals, classes, quantifiers, alternation, anchors,+  grouping) across all 9 hosts.+- **[#723](https://github.com/CategoricalData/hydra/issues/723)** `hydra.markdown` type module and+  `generateModuleDoc`, the metadata-only doc coder backing the self-generated spec pages.+- **[#382](https://github.com/CategoricalData/hydra/issues/382)** the Rust coder is split out of+  `hydra-ext` into its own first-class `hydra-rust` package.++### Bug fixes++- **[#744](https://github.com/CategoricalData/hydra/issues/744)** silent data corruption in+  JSON-Schema/Avro/GraphQL/GraphSON/Protobuf coders for extended integer widths and map-key handling.+- **[#765](https://github.com/CategoricalData/hydra/issues/765)** kernel encode/decode generators+  emitted reversed type-parameter order for 2+-param polymorphic types.+- **[#649](https://github.com/CategoricalData/hydra/issues/649)** Python coder silently dropped a+  module's types when types and terms targeted the same output file path.+- **[#572](https://github.com/CategoricalData/hydra/issues/572)** TypeScript kernel-JSON test+  bridge's compact-form decode heuristic mishandled nullary union arms.+- **[#761](https://github.com/CategoricalData/hydra/issues/761)** cold-seed generation ignored+  `hostOverrides.java=local`, silently pulling the published Java host jar instead.+- **[#736](https://github.com/CategoricalData/hydra/issues/736)** Java build now pins JDK 11 via a+  Gradle toolchain block, instead of depending on ambient `JAVA_HOME`.++### Improvements++- **[#327](https://github.com/CategoricalData/hydra/issues/327)** new `hydra.diff` schema-diff type+  module; `Term.Inject` comparison is now by variant name.+- **[#573](https://github.com/CategoricalData/hydra/issues/573)** per-registry publish sets (Hackage,+  Maven, PyPI, npm) are now derived from the package registry itself instead of 13 hand-maintained+  lists — closes a recurring class of silent release-time drift.+- **[#735](https://github.com/CategoricalData/hydra/issues/735)** cross-host decimal-scale test+  filtering now driven by a translingual `scaleDistinct` capability tag instead of hand-copied+  per-host skip lists.++### Documentation++- **[#655](https://github.com/CategoricalData/hydra/issues/655)** documented the overlay-emission+  "implementation wins" decision for bare primitive references (`docs/overlays.md`).++---+ ## [0.17.7] - 2026-09-14  Correctness-hardening point release on the 0.17.x line, consolidating the 0.17.6 breaking batch. It
hydra-scala.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           hydra-scala-version:        0.17.7+version:        0.18.0 synopsis:       Hydra's Scala coder: emit Scala 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". Scala support for Hydra category:       Data@@ -27,8 +27,8 @@  library   exposed-modules:-      Hydra.Dsl.Scala.Syntax       Hydra.Scala.Coder+      Hydra.Scala.Dsl.Syntax       Hydra.Scala.Language       Hydra.Scala.Serde       Hydra.Scala.Syntax@@ -40,7 +40,7 @@   build-depends:       base >=4.19.0 && <4.22     , containers >=0.6.7 && <0.8-    , hydra-jvm ==0.17.7-    , hydra-kernel ==0.17.7+    , hydra-jvm ==0.18.0+    , hydra-kernel ==0.18.0     , scientific >=0.3.7 && <0.4   default-language: Haskell2010
− src/main/haskell/Hydra/Dsl/Scala/Syntax.hs
@@ -1,11736 +0,0 @@--- Note: this is an automatically generated file. Do not edit.---- | DSL functions for hydra.scala.syntax--module Hydra.Dsl.Scala.Syntax where--import qualified Hydra.Core as Core-import qualified Hydra.Scala.Syntax as Syntax-import qualified Hydra.Typed as Typed-import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void-import qualified Data.Int as I---- | DSL constructor for hydra.scala.syntax.AlternativePat-alternativePat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.AlternativePat-alternativePat lhs rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AlternativePat"),-      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.scala.syntax.AlternativePat-alternativePatLhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat-alternativePatLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AlternativePat"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.AlternativePat-alternativePatRhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat-alternativePatRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AlternativePat"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.AlternativePat-alternativePatWithLhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.AlternativePat-alternativePatWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AlternativePat"),-      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.scala.syntax.AlternativePat"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.AlternativePat-alternativePatWithRhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.AlternativePat-alternativePatWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AlternativePat"),-      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.scala.syntax.AlternativePat"),-              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.scala.syntax.AndType-andType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AndType-andType lhs rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AndType"),-      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.scala.syntax.AndType-andTypeLhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type-andTypeLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AndType"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.AndType-andTypeRhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type-andTypeRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AndType"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.AndType-andTypeWithLhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AndType-andTypeWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AndType"),-      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.scala.syntax.AndType"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.AndType-andTypeWithRhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AndType-andTypeWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AndType"),-      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.scala.syntax.AndType"),-              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.scala.syntax.AnnotMod-annotMod :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.AnnotMod-annotMod init =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotMod"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Typed.unTypedTerm init)}]}))---- | DSL accessor for the init field of hydra.scala.syntax.AnnotMod-annotModInit :: Typed.TypedTerm Syntax.AnnotMod -> Typed.TypedTerm Syntax.Init-annotModInit x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotMod"),-        Core.projectionFieldName = (Core.Name "init")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the init field of hydra.scala.syntax.AnnotMod-annotModWithInit :: Typed.TypedTerm Syntax.AnnotMod -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.AnnotMod-annotModWithInit original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotMod"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.AnnotateData-annotateData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateData-annotateData expr annots =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotateData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)},-        Core.Field {-          Core.fieldName = (Core.Name "annots"),-          Core.fieldTerm = (Typed.unTypedTerm annots)}]}))---- | DSL accessor for the annots field of hydra.scala.syntax.AnnotateData-annotateDataAnnots :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm [Syntax.AnnotMod]-annotateDataAnnots x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateData"),-        Core.projectionFieldName = (Core.Name "annots")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the expr field of hydra.scala.syntax.AnnotateData-annotateDataExpr :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm Syntax.Data-annotateDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annots field of hydra.scala.syntax.AnnotateData-annotateDataWithAnnots :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateData-annotateDataWithAnnots original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotateData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "annots"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the expr field of hydra.scala.syntax.AnnotateData-annotateDataWithExpr :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AnnotateData-annotateDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotateData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "annots"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateData"),-              Core.projectionFieldName = (Core.Name "annots")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.AnnotateType-annotateType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateType-annotateType tpe annots =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotateType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)},-        Core.Field {-          Core.fieldName = (Core.Name "annots"),-          Core.fieldTerm = (Typed.unTypedTerm annots)}]}))---- | DSL accessor for the annots field of hydra.scala.syntax.AnnotateType-annotateTypeAnnots :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm [Syntax.AnnotMod]-annotateTypeAnnots x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateType"),-        Core.projectionFieldName = (Core.Name "annots")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.AnnotateType-annotateTypeTpe :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm Syntax.Type-annotateTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the annots field of hydra.scala.syntax.AnnotateType-annotateTypeWithAnnots :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateType-annotateTypeWithAnnots original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotateType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "annots"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.AnnotateType-annotateTypeWithTpe :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AnnotateType-annotateTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AnnotateType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "annots"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AnnotateType"),-              Core.projectionFieldName = (Core.Name "annots")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.scala.syntax.AnonymousData wrapper-anonymousData :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.AnonymousData-anonymousData x =-    Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {-      Core.wrappedTermTypeName = (Core.Name "hydra.scala.syntax.AnonymousData"),-      Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL constructor for the hydra.scala.syntax.AnonymousNameType wrapper-anonymousNameType :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.AnonymousNameType-anonymousNameType x =-    Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {-      Core.wrappedTermTypeName = (Core.Name "hydra.scala.syntax.AnonymousNameType"),-      Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.ApplyData-applyData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyData-applyData fun args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Typed.unTypedTerm fun)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.ApplyData-applyDataArgs :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm [Syntax.Data]-applyDataArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyData"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the fun field of hydra.scala.syntax.ApplyData-applyDataFun :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm Syntax.Data-applyDataFun x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyData"),-        Core.projectionFieldName = (Core.Name "fun")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.ApplyData-applyDataWithArgs :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyData-applyDataWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyData"),-              Core.projectionFieldName = (Core.Name "fun")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the fun field of hydra.scala.syntax.ApplyData-applyDataWithFun :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyData-applyDataWithFun original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ApplyInfixData-applyInfixData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyInfixData-applyInfixData lhs op targs args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-      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 "targs"),-          Core.fieldTerm = (Typed.unTypedTerm targs)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.ApplyInfixData-applyInfixDataArgs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Data]-applyInfixDataArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the lhs field of hydra.scala.syntax.ApplyInfixData-applyInfixDataLhs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.Data-applyInfixDataLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the op field of hydra.scala.syntax.ApplyInfixData-applyInfixDataOp :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.NameData-applyInfixDataOp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-        Core.projectionFieldName = (Core.Name "op")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the targs field of hydra.scala.syntax.ApplyInfixData-applyInfixDataTargs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Type]-applyInfixDataTargs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-        Core.projectionFieldName = (Core.Name "targs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.ApplyInfixData-applyInfixDataWithArgs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyInfixData-applyInfixDataWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-      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.scala.syntax.ApplyInfixData"),-              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.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "targs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the lhs field of hydra.scala.syntax.ApplyInfixData-applyInfixDataWithLhs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyInfixData-applyInfixDataWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-      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.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "targs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the op field of hydra.scala.syntax.ApplyInfixData-applyInfixDataWithOp :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ApplyInfixData-applyInfixDataWithOp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-      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.scala.syntax.ApplyInfixData"),-              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 "targs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "targs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the targs field of hydra.scala.syntax.ApplyInfixData-applyInfixDataWithTargs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyInfixData-applyInfixDataWithTargs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-      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.scala.syntax.ApplyInfixData"),-              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.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ApplyInfixType-applyInfixType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyInfixType-applyInfixType lhs op rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-      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 "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the lhs field of hydra.scala.syntax.ApplyInfixType-applyInfixTypeLhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type-applyInfixTypeLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the op field of hydra.scala.syntax.ApplyInfixType-applyInfixTypeOp :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.NameType-applyInfixTypeOp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-        Core.projectionFieldName = (Core.Name "op")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.ApplyInfixType-applyInfixTypeRhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type-applyInfixTypeRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.ApplyInfixType-applyInfixTypeWithLhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyInfixType-applyInfixTypeWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-      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.scala.syntax.ApplyInfixType"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the op field of hydra.scala.syntax.ApplyInfixType-applyInfixTypeWithOp :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ApplyInfixType-applyInfixTypeWithOp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-      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.scala.syntax.ApplyInfixType"),-              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 "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.ApplyInfixType-applyInfixTypeWithRhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyInfixType-applyInfixTypeWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyInfixType"),-      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.scala.syntax.ApplyInfixType"),-              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.scala.syntax.ApplyInfixType"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ApplyType-applyType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyType-applyType tpe args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.ApplyType-applyTypeArgs :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm [Syntax.Type]-applyTypeArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyType"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.ApplyTypeData-applyTypeData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyTypeData-applyTypeData lhs op targs args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-      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 "targs"),-          Core.fieldTerm = (Typed.unTypedTerm targs)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.ApplyTypeData-applyTypeDataArgs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Data]-applyTypeDataArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the lhs field of hydra.scala.syntax.ApplyTypeData-applyTypeDataLhs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.Data-applyTypeDataLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the op field of hydra.scala.syntax.ApplyTypeData-applyTypeDataOp :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.NameData-applyTypeDataOp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-        Core.projectionFieldName = (Core.Name "op")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the targs field of hydra.scala.syntax.ApplyTypeData-applyTypeDataTargs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Type]-applyTypeDataTargs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-        Core.projectionFieldName = (Core.Name "targs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.ApplyTypeData-applyTypeDataWithArgs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyTypeData-applyTypeDataWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-      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.scala.syntax.ApplyTypeData"),-              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.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "targs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the lhs field of hydra.scala.syntax.ApplyTypeData-applyTypeDataWithLhs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyTypeData-applyTypeDataWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-      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.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "targs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the op field of hydra.scala.syntax.ApplyTypeData-applyTypeDataWithOp :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ApplyTypeData-applyTypeDataWithOp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-      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.scala.syntax.ApplyTypeData"),-              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 "targs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "targs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the targs field of hydra.scala.syntax.ApplyTypeData-applyTypeDataWithTargs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyTypeData-applyTypeDataWithTargs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-      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.scala.syntax.ApplyTypeData"),-              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.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyTypeData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL accessor for the tpe field of hydra.scala.syntax.ApplyType-applyTypeTpe :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm Syntax.Type-applyTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.ApplyType-applyTypeWithArgs :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyType-applyTypeWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.ApplyType-applyTypeWithTpe :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyType-applyTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyType"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ApplyUnaryData-applyUnaryData :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyUnaryData-applyUnaryData op arg =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyUnaryData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "op"),-          Core.fieldTerm = (Typed.unTypedTerm op)},-        Core.Field {-          Core.fieldName = (Core.Name "arg"),-          Core.fieldTerm = (Typed.unTypedTerm arg)}]}))---- | DSL accessor for the arg field of hydra.scala.syntax.ApplyUnaryData-applyUnaryDataArg :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.Data-applyUnaryDataArg x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUnaryData"),-        Core.projectionFieldName = (Core.Name "arg")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the op field of hydra.scala.syntax.ApplyUnaryData-applyUnaryDataOp :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.NameData-applyUnaryDataOp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUnaryData"),-        Core.projectionFieldName = (Core.Name "op")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the arg field of hydra.scala.syntax.ApplyUnaryData-applyUnaryDataWithArg :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyUnaryData-applyUnaryDataWithArg original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyUnaryData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "op"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUnaryData"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "arg"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the op field of hydra.scala.syntax.ApplyUnaryData-applyUnaryDataWithOp :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ApplyUnaryData-applyUnaryDataWithOp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyUnaryData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "op"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "arg"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUnaryData"),-              Core.projectionFieldName = (Core.Name "arg")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ApplyUsingData-applyUsingData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyUsingData-applyUsingData fun targs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyUsingData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Typed.unTypedTerm fun)},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Typed.unTypedTerm targs)}]}))---- | DSL accessor for the fun field of hydra.scala.syntax.ApplyUsingData-applyUsingDataFun :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm Syntax.Data-applyUsingDataFun x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUsingData"),-        Core.projectionFieldName = (Core.Name "fun")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the targs field of hydra.scala.syntax.ApplyUsingData-applyUsingDataTargs :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm [Syntax.Data]-applyUsingDataTargs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUsingData"),-        Core.projectionFieldName = (Core.Name "targs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the fun field of hydra.scala.syntax.ApplyUsingData-applyUsingDataWithFun :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyUsingData-applyUsingDataWithFun original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyUsingData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUsingData"),-              Core.projectionFieldName = (Core.Name "targs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the targs field of hydra.scala.syntax.ApplyUsingData-applyUsingDataWithTargs :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyUsingData-applyUsingDataWithTargs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ApplyUsingData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ApplyUsingData"),-              Core.projectionFieldName = (Core.Name "fun")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "targs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.AscribeData-ascribeData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AscribeData-ascribeData expr tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AscribeData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the expr field of hydra.scala.syntax.AscribeData-ascribeDataExpr :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Data-ascribeDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AscribeData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.AscribeData-ascribeDataTpe :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Type-ascribeDataTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AscribeData"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expr field of hydra.scala.syntax.AscribeData-ascribeDataWithExpr :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AscribeData-ascribeDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AscribeData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AscribeData"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.AscribeData-ascribeDataWithTpe :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AscribeData-ascribeDataWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AscribeData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AscribeData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.AssignData-assignData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AssignData-assignData lhs rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AssignData"),-      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.scala.syntax.AssignData-assignDataLhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data-assignDataLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AssignData"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.AssignData-assignDataRhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data-assignDataRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.AssignData"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.AssignData-assignDataWithLhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AssignData-assignDataWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AssignData"),-      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.scala.syntax.AssignData"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.AssignData-assignDataWithRhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AssignData-assignDataWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.AssignData"),-      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.scala.syntax.AssignData"),-              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.scala.syntax.BindPat-bindPat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.BindPat-bindPat lhs rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.BindPat"),-      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.scala.syntax.BindPat-bindPatLhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat-bindPatLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.BindPat"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.BindPat-bindPatRhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat-bindPatRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.BindPat"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.BindPat-bindPatWithLhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.BindPat-bindPatWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.BindPat"),-      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.scala.syntax.BindPat"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.BindPat-bindPatWithRhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.BindPat-bindPatWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.BindPat"),-      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.scala.syntax.BindPat"),-              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.scala.syntax.BlockData-blockData :: Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.BlockData-blockData stats =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.BlockData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm stats)}]}))---- | DSL accessor for the stats field of hydra.scala.syntax.BlockData-blockDataStats :: Typed.TypedTerm Syntax.BlockData -> Typed.TypedTerm [Syntax.Stat]-blockDataStats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.BlockData"),-        Core.projectionFieldName = (Core.Name "stats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the stats field of hydra.scala.syntax.BlockData-blockDataWithStats :: Typed.TypedTerm Syntax.BlockData -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.BlockData-blockDataWithStats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.BlockData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ByNameType-byNameType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ByNameType-byNameType tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ByNameType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the tpe field of hydra.scala.syntax.ByNameType-byNameTypeTpe :: Typed.TypedTerm Syntax.ByNameType -> Typed.TypedTerm Syntax.Type-byNameTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ByNameType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the tpe field of hydra.scala.syntax.ByNameType-byNameTypeWithTpe :: Typed.TypedTerm Syntax.ByNameType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ByNameType-byNameTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ByNameType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.Case-case_ :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Case-case_ pat cond body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Case"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Typed.unTypedTerm pat)},-        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.scala.syntax.Case-caseBody :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Data-caseBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Case"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the cond field of hydra.scala.syntax.Case-caseCond :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm (Maybe Syntax.Data)-caseCond x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Case"),-        Core.projectionFieldName = (Core.Name "cond")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.CaseGeneratorEnumerator-caseGeneratorEnumerator :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.CaseGeneratorEnumerator-caseGeneratorEnumerator pat rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Typed.unTypedTerm pat)},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the pat field of hydra.scala.syntax.CaseGeneratorEnumerator-caseGeneratorEnumeratorPat :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Pat-caseGeneratorEnumeratorPat x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),-        Core.projectionFieldName = (Core.Name "pat")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.CaseGeneratorEnumerator-caseGeneratorEnumeratorRhs :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Data-caseGeneratorEnumeratorRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the pat field of hydra.scala.syntax.CaseGeneratorEnumerator-caseGeneratorEnumeratorWithPat :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.CaseGeneratorEnumerator-caseGeneratorEnumeratorWithPat original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          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.scala.syntax.CaseGeneratorEnumerator"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.CaseGeneratorEnumerator-caseGeneratorEnumeratorWithRhs :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.CaseGeneratorEnumerator-caseGeneratorEnumeratorWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),-              Core.projectionFieldName = (Core.Name "pat")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL accessor for the pat field of hydra.scala.syntax.Case-casePat :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Pat-casePat x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Case"),-        Core.projectionFieldName = (Core.Name "pat")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL injection for the case variant of hydra.scala.syntax.CaseTree-caseTreeCase :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.CaseTree-caseTreeCase x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.CaseTree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "case"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the typeCase variant of hydra.scala.syntax.CaseTree-caseTreeTypeCase :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.CaseTree-caseTreeTypeCase x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.CaseTree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "typeCase"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL updater for the body field of hydra.scala.syntax.Case-caseWithBody :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Case-caseWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Case"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Case"),-              Core.projectionFieldName = (Core.Name "pat")})),-            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.scala.syntax.Case"),-              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.scala.syntax.Case-caseWithCond :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.Case-caseWithCond original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Case"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Case"),-              Core.projectionFieldName = (Core.Name "pat")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        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.scala.syntax.Case"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the pat field of hydra.scala.syntax.Case-caseWithPat :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Case-caseWithPat original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Case"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          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.scala.syntax.Case"),-              Core.projectionFieldName = (Core.Name "cond")})),-            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.scala.syntax.Case"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ClassDefn-classDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ClassDefn-classDefn mods name tparams ctor template =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm ctor)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm template)}]}))---- | DSL accessor for the ctor field of hydra.scala.syntax.ClassDefn-classDefnCtor :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.PrimaryCtor-classDefnCtor x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-        Core.projectionFieldName = (Core.Name "ctor")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.ClassDefn-classDefnMods :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.Mod]-classDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.ClassDefn-classDefnName :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.NameType-classDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the template field of hydra.scala.syntax.ClassDefn-classDefnTemplate :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.Template-classDefnTemplate x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-        Core.projectionFieldName = (Core.Name "template")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.ClassDefn-classDefnTparams :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.ParamType]-classDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the ctor field of hydra.scala.syntax.ClassDefn-classDefnWithCtor :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.ClassDefn-classDefnWithCtor original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.ClassDefn-classDefnWithMods :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ClassDefn-classDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.ClassDefn-classDefnWithName :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ClassDefn-classDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the template field of hydra.scala.syntax.ClassDefn-classDefnWithTemplate :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ClassDefn-classDefnWithTemplate original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.ClassDefn-classDefnWithTparams :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.ClassDefn-classDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ClassDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ContextFunctionData-contextFunctionData :: Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ContextFunctionData-contextFunctionData params body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm params)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.ContextFunctionData-contextFunctionDataBody :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm Syntax.Data-contextFunctionDataBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionData"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the params field of hydra.scala.syntax.ContextFunctionData-contextFunctionDataParams :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm [Syntax.ParamData]-contextFunctionDataParams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionData"),-        Core.projectionFieldName = (Core.Name "params")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.ContextFunctionData-contextFunctionDataWithBody :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ContextFunctionData-contextFunctionDataWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionData"),-              Core.projectionFieldName = (Core.Name "params")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the params field of hydra.scala.syntax.ContextFunctionData-contextFunctionDataWithParams :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.ContextFunctionData-contextFunctionDataWithParams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          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.scala.syntax.ContextFunctionData"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ContextFunctionType-contextFunctionType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ContextFunctionType-contextFunctionType params res =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm params)},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Typed.unTypedTerm res)}]}))---- | DSL accessor for the params field of hydra.scala.syntax.ContextFunctionType-contextFunctionTypeParams :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm [Syntax.Type]-contextFunctionTypeParams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionType"),-        Core.projectionFieldName = (Core.Name "params")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the res field of hydra.scala.syntax.ContextFunctionType-contextFunctionTypeRes :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm Syntax.Type-contextFunctionTypeRes x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionType"),-        Core.projectionFieldName = (Core.Name "res")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the params field of hydra.scala.syntax.ContextFunctionType-contextFunctionTypeWithParams :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ContextFunctionType-contextFunctionTypeWithParams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionType"),-              Core.projectionFieldName = (Core.Name "res")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the res field of hydra.scala.syntax.ContextFunctionType-contextFunctionTypeWithRes :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ContextFunctionType-contextFunctionTypeWithRes original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ContextFunctionType"),-              Core.projectionFieldName = (Core.Name "params")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the primary variant of hydra.scala.syntax.Ctor-ctorPrimary :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Ctor-ctorPrimary x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Ctor"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "primary"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the secondary variant of hydra.scala.syntax.Ctor-ctorSecondary :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Ctor-ctorSecondary x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Ctor"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "secondary"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the annotate variant of hydra.scala.syntax.Data-dataAnnotate :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm Syntax.Data-dataAnnotate x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "annotate"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the apply variant of hydra.scala.syntax.Data-dataApply :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm Syntax.Data-dataApply x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "apply"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the applyType variant of hydra.scala.syntax.Data-dataApplyType :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.Data-dataApplyType x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "applyType"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the applyUsing variant of hydra.scala.syntax.Data-dataApplyUsing :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm Syntax.Data-dataApplyUsing x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "applyUsing"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ascribe variant of hydra.scala.syntax.Data-dataAscribe :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Data-dataAscribe x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "ascribe"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the assign variant of hydra.scala.syntax.Data-dataAssign :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data-dataAssign x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "assign"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the block variant of hydra.scala.syntax.Data-dataBlock :: Typed.TypedTerm Syntax.BlockData -> Typed.TypedTerm Syntax.Data-dataBlock x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "block"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the contextFunction variant of hydra.scala.syntax.Data-dataContextFunction :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm Syntax.Data-dataContextFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "contextFunction"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the do variant of hydra.scala.syntax.Data-dataDo :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data-dataDo x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "do"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the endMarker variant of hydra.scala.syntax.Data-dataEndMarker :: Typed.TypedTerm Syntax.EndMarkerData -> Typed.TypedTerm Syntax.Data-dataEndMarker x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "endMarker"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the eta variant of hydra.scala.syntax.Data-dataEta :: Typed.TypedTerm Syntax.EtaData -> Typed.TypedTerm Syntax.Data-dataEta x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "eta"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the for variant of hydra.scala.syntax.Data-dataFor :: Typed.TypedTerm Syntax.ForData -> Typed.TypedTerm Syntax.Data-dataFor x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "for"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the forYield variant of hydra.scala.syntax.Data-dataForYield :: Typed.TypedTerm Syntax.ForYieldData -> Typed.TypedTerm Syntax.Data-dataForYield x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "forYield"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the function variant of hydra.scala.syntax.Data-dataFunction :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm Syntax.Data-dataFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "function"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the if variant of hydra.scala.syntax.Data-dataIf :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data-dataIf x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "if"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the interpolate variant of hydra.scala.syntax.Data-dataInterpolate :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm Syntax.Data-dataInterpolate x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "interpolate"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the lit variant of hydra.scala.syntax.Data-dataLit :: Typed.TypedTerm Syntax.Lit -> Typed.TypedTerm Syntax.Data-dataLit x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "lit"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the match variant of hydra.scala.syntax.Data-dataMatch :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm Syntax.Data-dataMatch x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "match"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the object variant of hydra.scala.syntax.DataMember-dataMemberObject :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.DataMember-dataMemberObject x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.DataMember"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "object"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the pkg variant of hydra.scala.syntax.DataMember-dataMemberPkg :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.DataMember-dataMemberPkg x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.DataMember"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "pkg"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the new variant of hydra.scala.syntax.Data-dataNew :: Typed.TypedTerm Syntax.NewData -> Typed.TypedTerm Syntax.Data-dataNew x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "new"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the newAnonymous variant of hydra.scala.syntax.Data-dataNewAnonymous :: Typed.TypedTerm Syntax.NewAnonymousData -> Typed.TypedTerm Syntax.Data-dataNewAnonymous x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "newAnonymous"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the param variant of hydra.scala.syntax.Data-dataParam :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Data-dataParam x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "param"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the partialFunction variant of hydra.scala.syntax.Data-dataPartialFunction :: Typed.TypedTerm Syntax.PartialFunctionData -> Typed.TypedTerm Syntax.Data-dataPartialFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "partialFunction"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the placeholder variant of hydra.scala.syntax.Data-dataPlaceholder :: Typed.TypedTerm Syntax.Data-dataPlaceholder =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "placeholder"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the polyFunction variant of hydra.scala.syntax.Data-dataPolyFunction :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm Syntax.Data-dataPolyFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "polyFunction"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ref variant of hydra.scala.syntax.Data-dataRef :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.Data-dataRef x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "ref"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the repeated variant of hydra.scala.syntax.Data-dataRepeated :: Typed.TypedTerm Syntax.RepeatedData -> Typed.TypedTerm Syntax.Data-dataRepeated x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "repeated"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the return variant of hydra.scala.syntax.Data-dataReturn :: Typed.TypedTerm Syntax.ReturnData -> Typed.TypedTerm Syntax.Data-dataReturn x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "return"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the throw variant of hydra.scala.syntax.Data-dataThrow :: Typed.TypedTerm Syntax.ThrowData -> Typed.TypedTerm Syntax.Data-dataThrow x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "throw"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the try variant of hydra.scala.syntax.Data-dataTry :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm Syntax.Data-dataTry x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "try"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the tryWithHandler variant of hydra.scala.syntax.Data-dataTryWithHandler :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data-dataTryWithHandler x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "tryWithHandler"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the tuple variant of hydra.scala.syntax.Data-dataTuple :: Typed.TypedTerm Syntax.TupleData -> Typed.TypedTerm Syntax.Data-dataTuple x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "tuple"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the while variant of hydra.scala.syntax.Data-dataWhile :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data-dataWhile x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Data"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "while"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the def variant of hydra.scala.syntax.Decl-declDef :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.Decl-declDef x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Decl"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "def"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the given variant of hydra.scala.syntax.Decl-declGiven :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.Decl-declGiven x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Decl"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "given"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the type variant of hydra.scala.syntax.Decl-declType :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.Decl-declType x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Decl"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "type"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the val variant of hydra.scala.syntax.Decl-declVal :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm Syntax.Decl-declVal x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Decl"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "val"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the var variant of hydra.scala.syntax.Decl-declVar :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm Syntax.Decl-declVar x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Decl"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "var"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.DefDecl-defDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.DefDecl-defDecl mods name tparams paramss decltpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm paramss)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)}]}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.DefDecl-defDeclDecltpe :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.Type-defDeclDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.DefDecl-defDeclMods :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.Mod]-defDeclMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.DefDecl-defDeclName :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.NameData-defDeclName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the paramss field of hydra.scala.syntax.DefDecl-defDeclParamss :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [[Syntax.ParamData]]-defDeclParamss x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-        Core.projectionFieldName = (Core.Name "paramss")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.DefDecl-defDeclTparams :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.ParamType]-defDeclTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the decltpe field of hydra.scala.syntax.DefDecl-defDeclWithDecltpe :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.DefDecl-defDeclWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.DefDecl-defDeclWithMods :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.DefDecl-defDeclWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.DefDecl-defDeclWithName :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.DefDecl-defDeclWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the paramss field of hydra.scala.syntax.DefDecl-defDeclWithParamss :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.DefDecl-defDeclWithParamss original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.DefDecl-defDeclWithTparams :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.DefDecl-defDeclWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.DefDefn-defDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DefDefn-defDefn mods name tparams paramss decltpe body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm paramss)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.DefDefn-defDefnBody :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.Data-defDefnBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.DefDefn-defDefnDecltpe :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm (Maybe Syntax.Type)-defDefnDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.DefDefn-defDefnMods :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.Mod]-defDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.DefDefn-defDefnName :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.NameData-defDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the paramss field of hydra.scala.syntax.DefDefn-defDefnParamss :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [[Syntax.ParamData]]-defDefnParamss x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-        Core.projectionFieldName = (Core.Name "paramss")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.DefDefn-defDefnTparams :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.ParamType]-defDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.DefDefn-defDefnWithBody :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DefDefn-defDefnWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the decltpe field of hydra.scala.syntax.DefDefn-defDefnWithDecltpe :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.DefDefn-defDefnWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.DefDefn-defDefnWithMods :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.DefDefn-defDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.DefDefn-defDefnWithName :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.DefDefn-defDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the paramss field of hydra.scala.syntax.DefDefn-defDefnWithParamss :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.DefDefn-defDefnWithParamss original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.DefDefn-defDefnWithTparams :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.DefDefn-defDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.DefDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the class variant of hydra.scala.syntax.Defn-defnClass :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.Defn-defnClass x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "class"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the def variant of hydra.scala.syntax.Defn-defnDef :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.Defn-defnDef x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "def"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the enum variant of hydra.scala.syntax.Defn-defnEnum :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.Defn-defnEnum x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "enum"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the enumCase variant of hydra.scala.syntax.Defn-defnEnumCase :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.Defn-defnEnumCase x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "enumCase"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the extensionGroup variant of hydra.scala.syntax.Defn-defnExtensionGroup :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm Syntax.Defn-defnExtensionGroup x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "extensionGroup"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the given variant of hydra.scala.syntax.Defn-defnGiven :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Defn-defnGiven x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "given"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the givenAlias variant of hydra.scala.syntax.Defn-defnGivenAlias :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Defn-defnGivenAlias x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "givenAlias"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the object variant of hydra.scala.syntax.Defn-defnObject :: Typed.TypedTerm Syntax.ObjectDefn -> Typed.TypedTerm Syntax.Defn-defnObject x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "object"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the repeatedEnumCase variant of hydra.scala.syntax.Defn-defnRepeatedEnumCase :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm Syntax.Defn-defnRepeatedEnumCase x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "repeatedEnumCase"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the trait variant of hydra.scala.syntax.Defn-defnTrait :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.Defn-defnTrait x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "trait"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the type variant of hydra.scala.syntax.Defn-defnType :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.Defn-defnType x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "type"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the val variant of hydra.scala.syntax.Defn-defnVal :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm Syntax.Defn-defnVal x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "val"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the var variant of hydra.scala.syntax.Defn-defnVar :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm Syntax.Defn-defnVar x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Defn"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "var"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.DoData-doData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DoData-doData body expr =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DoData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)},-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.DoData-doDataBody :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data-doDataBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DoData"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the expr field of hydra.scala.syntax.DoData-doDataExpr :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data-doDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DoData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.DoData-doDataWithBody :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DoData-doDataWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DoData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.DoData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the expr field of hydra.scala.syntax.DoData-doDataWithExpr :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DoData-doDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.DoData"),-      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.scala.syntax.DoData"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.EndMarkerData-endMarkerData :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.EndMarkerData-endMarkerData name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EndMarkerData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.EndMarkerData-endMarkerDataName :: Typed.TypedTerm Syntax.EndMarkerData -> Typed.TypedTerm Syntax.NameData-endMarkerDataName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EndMarkerData"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.EndMarkerData-endMarkerDataWithName :: Typed.TypedTerm Syntax.EndMarkerData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.EndMarkerData-endMarkerDataWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EndMarkerData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.EnumCaseDefn-enumCaseDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.EnumCaseDefn-enumCaseDefn mods name tparams ctor inits =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm ctor)},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Typed.unTypedTerm inits)}]}))---- | DSL accessor for the ctor field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnCtor :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.PrimaryCtor-enumCaseDefnCtor x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-        Core.projectionFieldName = (Core.Name "ctor")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the inits field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnInits :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Init]-enumCaseDefnInits x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-        Core.projectionFieldName = (Core.Name "inits")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnMods :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Mod]-enumCaseDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnName :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.NameData-enumCaseDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnTparams :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.ParamType]-enumCaseDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the ctor field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnWithCtor :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.EnumCaseDefn-enumCaseDefnWithCtor original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "inits")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the inits field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnWithInits :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.EnumCaseDefn-enumCaseDefnWithInits original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnWithMods :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.EnumCaseDefn-enumCaseDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "inits")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnWithName :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.EnumCaseDefn-enumCaseDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "inits")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.EnumCaseDefn-enumCaseDefnWithTparams :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.EnumCaseDefn-enumCaseDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "inits")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.EnumDefn-enumDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.EnumDefn-enumDefn mods name tparams ctor template =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm ctor)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm template)}]}))---- | DSL accessor for the ctor field of hydra.scala.syntax.EnumDefn-enumDefnCtor :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.PrimaryCtor-enumDefnCtor x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-        Core.projectionFieldName = (Core.Name "ctor")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.EnumDefn-enumDefnMods :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.Mod]-enumDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.EnumDefn-enumDefnName :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.NameType-enumDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the template field of hydra.scala.syntax.EnumDefn-enumDefnTemplate :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.Template-enumDefnTemplate x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-        Core.projectionFieldName = (Core.Name "template")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.EnumDefn-enumDefnTparams :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.ParamType]-enumDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the ctor field of hydra.scala.syntax.EnumDefn-enumDefnWithCtor :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.EnumDefn-enumDefnWithCtor original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.EnumDefn-enumDefnWithMods :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.EnumDefn-enumDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.EnumDefn-enumDefnWithName :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.EnumDefn-enumDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the template field of hydra.scala.syntax.EnumDefn-enumDefnWithTemplate :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.EnumDefn-enumDefnWithTemplate original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.EnumDefn-enumDefnWithTparams :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.EnumDefn-enumDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EnumDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the caseGenerator variant of hydra.scala.syntax.Enumerator-enumeratorCaseGenerator :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Enumerator-enumeratorCaseGenerator x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Enumerator"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "caseGenerator"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the generator variant of hydra.scala.syntax.Enumerator-enumeratorGenerator :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Enumerator-enumeratorGenerator x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Enumerator"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "generator"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the guard variant of hydra.scala.syntax.Enumerator-enumeratorGuard :: Typed.TypedTerm Syntax.GuardEnumerator -> Typed.TypedTerm Syntax.Enumerator-enumeratorGuard x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Enumerator"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "guard"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the val variant of hydra.scala.syntax.Enumerator-enumeratorVal :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Enumerator-enumeratorVal x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Enumerator"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "val"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.EtaData-etaData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.EtaData-etaData expr =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EtaData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)}]}))---- | DSL accessor for the expr field of hydra.scala.syntax.EtaData-etaDataExpr :: Typed.TypedTerm Syntax.EtaData -> Typed.TypedTerm Syntax.Data-etaDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.EtaData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expr field of hydra.scala.syntax.EtaData-etaDataWithExpr :: Typed.TypedTerm Syntax.EtaData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.EtaData-etaDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.EtaData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ExistentialType-existentialType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.ExistentialType-existentialType tpe stats =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExistentialType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm stats)}]}))---- | DSL accessor for the stats field of hydra.scala.syntax.ExistentialType-existentialTypeStats :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm [Syntax.Stat]-existentialTypeStats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExistentialType"),-        Core.projectionFieldName = (Core.Name "stats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.ExistentialType-existentialTypeTpe :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm Syntax.Type-existentialTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExistentialType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the stats field of hydra.scala.syntax.ExistentialType-existentialTypeWithStats :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.ExistentialType-existentialTypeWithStats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExistentialType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExistentialType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.ExistentialType-existentialTypeWithTpe :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ExistentialType-existentialTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExistentialType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExistentialType"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.Export-export :: Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Export-export importers =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Export"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "importers"),-          Core.fieldTerm = (Typed.unTypedTerm importers)}]}))---- | DSL accessor for the importers field of hydra.scala.syntax.Export-exportImporters :: Typed.TypedTerm Syntax.Export -> Typed.TypedTerm [Syntax.Importer]-exportImporters x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Export"),-        Core.projectionFieldName = (Core.Name "importers")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the importers field of hydra.scala.syntax.Export-exportWithImporters :: Typed.TypedTerm Syntax.Export -> Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Export-exportWithImporters original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Export"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "importers"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ExtensionGroupDefn-extensionGroupDefn :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Stat -> Typed.TypedTerm Syntax.ExtensionGroupDefn-extensionGroupDefn tparams parmss body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "parmss"),-          Core.fieldTerm = (Typed.unTypedTerm parmss)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.ExtensionGroupDefn-extensionGroupDefnBody :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm Syntax.Stat-extensionGroupDefnBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the parmss field of hydra.scala.syntax.ExtensionGroupDefn-extensionGroupDefnParmss :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [[Syntax.ParamData]]-extensionGroupDefnParmss x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-        Core.projectionFieldName = (Core.Name "parmss")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.ExtensionGroupDefn-extensionGroupDefnTparams :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [Syntax.ParamType]-extensionGroupDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.ExtensionGroupDefn-extensionGroupDefnWithBody :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm Syntax.Stat -> Typed.TypedTerm Syntax.ExtensionGroupDefn-extensionGroupDefnWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "parmss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-              Core.projectionFieldName = (Core.Name "parmss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the parmss field of hydra.scala.syntax.ExtensionGroupDefn-extensionGroupDefnWithParmss :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.ExtensionGroupDefn-extensionGroupDefnWithParmss original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "parmss"),-          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.scala.syntax.ExtensionGroupDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.ExtensionGroupDefn-extensionGroupDefnWithTparams :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.ExtensionGroupDefn-extensionGroupDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "parmss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtensionGroupDefn"),-              Core.projectionFieldName = (Core.Name "parmss")})),-            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.scala.syntax.ExtensionGroupDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ExtractInfixPat-extractInfixPat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ExtractInfixPat-extractInfixPat lhs op rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-      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 "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the lhs field of hydra.scala.syntax.ExtractInfixPat-extractInfixPatLhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.Pat-extractInfixPatLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the op field of hydra.scala.syntax.ExtractInfixPat-extractInfixPatOp :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.NameData-extractInfixPatOp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-        Core.projectionFieldName = (Core.Name "op")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.ExtractInfixPat-extractInfixPatRhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm [Syntax.Pat]-extractInfixPatRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.ExtractInfixPat-extractInfixPatWithLhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.ExtractInfixPat-extractInfixPatWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-      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.scala.syntax.ExtractInfixPat"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the op field of hydra.scala.syntax.ExtractInfixPat-extractInfixPatWithOp :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ExtractInfixPat-extractInfixPatWithOp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-      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.scala.syntax.ExtractInfixPat"),-              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 "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.ExtractInfixPat-extractInfixPatWithRhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ExtractInfixPat-extractInfixPatWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtractInfixPat"),-      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.scala.syntax.ExtractInfixPat"),-              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.scala.syntax.ExtractInfixPat"),-              Core.projectionFieldName = (Core.Name "op")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ExtractPat-extractPat :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ExtractPat-extractPat fun args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtractPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Typed.unTypedTerm fun)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.ExtractPat-extractPatArgs :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm [Syntax.Pat]-extractPatArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractPat"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the fun field of hydra.scala.syntax.ExtractPat-extractPatFun :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm Syntax.Data-extractPatFun x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractPat"),-        Core.projectionFieldName = (Core.Name "fun")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.ExtractPat-extractPatWithArgs :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ExtractPat-extractPatWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtractPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractPat"),-              Core.projectionFieldName = (Core.Name "fun")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the fun field of hydra.scala.syntax.ExtractPat-extractPatWithFun :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ExtractPat-extractPatWithFun original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ExtractPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "fun"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ExtractPat"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ForData-forData :: Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForData-forData enums =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ForData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "enums"),-          Core.fieldTerm = (Typed.unTypedTerm enums)}]}))---- | DSL accessor for the enums field of hydra.scala.syntax.ForData-forDataEnums :: Typed.TypedTerm Syntax.ForData -> Typed.TypedTerm [Syntax.Enumerator]-forDataEnums x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ForData"),-        Core.projectionFieldName = (Core.Name "enums")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the enums field of hydra.scala.syntax.ForData-forDataWithEnums :: Typed.TypedTerm Syntax.ForData -> Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForData-forDataWithEnums original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ForData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "enums"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ForYieldData-forYieldData :: Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForYieldData-forYieldData enums =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ForYieldData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "enums"),-          Core.fieldTerm = (Typed.unTypedTerm enums)}]}))---- | DSL accessor for the enums field of hydra.scala.syntax.ForYieldData-forYieldDataEnums :: Typed.TypedTerm Syntax.ForYieldData -> Typed.TypedTerm [Syntax.Enumerator]-forYieldDataEnums x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ForYieldData"),-        Core.projectionFieldName = (Core.Name "enums")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the enums field of hydra.scala.syntax.ForYieldData-forYieldDataWithEnums :: Typed.TypedTerm Syntax.ForYieldData -> Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForYieldData-forYieldDataWithEnums original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ForYieldData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "enums"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.FunctionData-functionData :: Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.FunctionData-functionData params body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.FunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm params)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.FunctionData-functionDataBody :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm Syntax.Data-functionDataBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.FunctionData"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the params field of hydra.scala.syntax.FunctionData-functionDataParams :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm [Syntax.ParamData]-functionDataParams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.FunctionData"),-        Core.projectionFieldName = (Core.Name "params")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.FunctionData-functionDataWithBody :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.FunctionData-functionDataWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.FunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.FunctionData"),-              Core.projectionFieldName = (Core.Name "params")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the params field of hydra.scala.syntax.FunctionData-functionDataWithParams :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.FunctionData-functionDataWithParams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.FunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          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.scala.syntax.FunctionData"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.FunctionType-functionType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.FunctionType-functionType params res =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.FunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm params)},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Typed.unTypedTerm res)}]}))---- | DSL accessor for the params field of hydra.scala.syntax.FunctionType-functionTypeParams :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm [Syntax.Type]-functionTypeParams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.FunctionType"),-        Core.projectionFieldName = (Core.Name "params")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the res field of hydra.scala.syntax.FunctionType-functionTypeRes :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm Syntax.Type-functionTypeRes x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.FunctionType"),-        Core.projectionFieldName = (Core.Name "res")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the params field of hydra.scala.syntax.FunctionType-functionTypeWithParams :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.FunctionType-functionTypeWithParams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.FunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.FunctionType"),-              Core.projectionFieldName = (Core.Name "res")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the res field of hydra.scala.syntax.FunctionType-functionTypeWithRes :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.FunctionType-functionTypeWithRes original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.FunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.FunctionType"),-              Core.projectionFieldName = (Core.Name "params")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.GeneratorEnumerator-generatorEnumerator :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GeneratorEnumerator-generatorEnumerator pat rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GeneratorEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Typed.unTypedTerm pat)},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the pat field of hydra.scala.syntax.GeneratorEnumerator-generatorEnumeratorPat :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Pat-generatorEnumeratorPat x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GeneratorEnumerator"),-        Core.projectionFieldName = (Core.Name "pat")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.GeneratorEnumerator-generatorEnumeratorRhs :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Data-generatorEnumeratorRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GeneratorEnumerator"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the pat field of hydra.scala.syntax.GeneratorEnumerator-generatorEnumeratorWithPat :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.GeneratorEnumerator-generatorEnumeratorWithPat original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GeneratorEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          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.scala.syntax.GeneratorEnumerator"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.GeneratorEnumerator-generatorEnumeratorWithRhs :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GeneratorEnumerator-generatorEnumeratorWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GeneratorEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GeneratorEnumerator"),-              Core.projectionFieldName = (Core.Name "pat")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.GivenAliasDefn-givenAliasDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GivenAliasDefn-givenAliasDefn mods name tparams sparams decltpe body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Typed.unTypedTerm sparams)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnBody :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Data-givenAliasDefnBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnDecltpe :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Type-givenAliasDefnDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnMods :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [Syntax.Mod]-givenAliasDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnName :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Name-givenAliasDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the sparams field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnSparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamData]]-givenAliasDefnSparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-        Core.projectionFieldName = (Core.Name "sparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnTparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamType]]-givenAliasDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnWithBody :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GivenAliasDefn-givenAliasDefnWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the decltpe field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnWithDecltpe :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenAliasDefn-givenAliasDefnWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnWithMods :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.GivenAliasDefn-givenAliasDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnWithName :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.GivenAliasDefn-givenAliasDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the sparams field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnWithSparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.GivenAliasDefn-givenAliasDefnWithSparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.GivenAliasDefn-givenAliasDefnWithTparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm Syntax.GivenAliasDefn-givenAliasDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.GivenAliasDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.GivenDecl-givenDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenDecl-givenDecl mods name tparams sparams decltpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Typed.unTypedTerm sparams)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)}]}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.GivenDecl-givenDeclDecltpe :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.Type-givenDeclDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.GivenDecl-givenDeclMods :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.Mod]-givenDeclMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.GivenDecl-givenDeclName :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.NameData-givenDeclName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the sparams field of hydra.scala.syntax.GivenDecl-givenDeclSparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [[Syntax.ParamData]]-givenDeclSparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-        Core.projectionFieldName = (Core.Name "sparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.GivenDecl-givenDeclTparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.ParamType]-givenDeclTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the decltpe field of hydra.scala.syntax.GivenDecl-givenDeclWithDecltpe :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenDecl-givenDeclWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.GivenDecl-givenDeclWithMods :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.GivenDecl-givenDeclWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.GivenDecl-givenDeclWithName :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.GivenDecl-givenDeclWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the sparams field of hydra.scala.syntax.GivenDecl-givenDeclWithSparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.GivenDecl-givenDeclWithSparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.GivenDecl-givenDeclWithTparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.GivenDecl-givenDeclWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.GivenDefn-givenDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.GivenDefn-givenDefn mods name tparams sparams templ =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Typed.unTypedTerm sparams)},-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Typed.unTypedTerm templ)}]}))---- | DSL accessor for the mods field of hydra.scala.syntax.GivenDefn-givenDefnMods :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [Syntax.Mod]-givenDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.GivenDefn-givenDefnName :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Name-givenDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the sparams field of hydra.scala.syntax.GivenDefn-givenDefnSparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamData]]-givenDefnSparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-        Core.projectionFieldName = (Core.Name "sparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the templ field of hydra.scala.syntax.GivenDefn-givenDefnTempl :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Template-givenDefnTempl x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-        Core.projectionFieldName = (Core.Name "templ")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.GivenDefn-givenDefnTparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamType]]-givenDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the mods field of hydra.scala.syntax.GivenDefn-givenDefnWithMods :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.GivenDefn-givenDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "templ")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.GivenDefn-givenDefnWithName :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.GivenDefn-givenDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "templ")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the sparams field of hydra.scala.syntax.GivenDefn-givenDefnWithSparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.GivenDefn-givenDefnWithSparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "templ")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the templ field of hydra.scala.syntax.GivenDefn-givenDefnWithTempl :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.GivenDefn-givenDefnWithTempl original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.GivenDefn-givenDefnWithTparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm Syntax.GivenDefn-givenDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "sparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "sparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenDefn"),-              Core.projectionFieldName = (Core.Name "templ")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.GivenImportee-givenImportee :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenImportee-givenImportee tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the tpe field of hydra.scala.syntax.GivenImportee-givenImporteeTpe :: Typed.TypedTerm Syntax.GivenImportee -> Typed.TypedTerm Syntax.Type-givenImporteeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenImportee"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the tpe field of hydra.scala.syntax.GivenImportee-givenImporteeWithTpe :: Typed.TypedTerm Syntax.GivenImportee -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenImportee-givenImporteeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.GivenPat-givenPat :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenPat-givenPat tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the tpe field of hydra.scala.syntax.GivenPat-givenPatTpe :: Typed.TypedTerm Syntax.GivenPat -> Typed.TypedTerm Syntax.Type-givenPatTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GivenPat"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the tpe field of hydra.scala.syntax.GivenPat-givenPatWithTpe :: Typed.TypedTerm Syntax.GivenPat -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenPat-givenPatWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GivenPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.GuardEnumerator-guardEnumerator :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GuardEnumerator-guardEnumerator cond =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GuardEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "cond"),-          Core.fieldTerm = (Typed.unTypedTerm cond)}]}))---- | DSL accessor for the cond field of hydra.scala.syntax.GuardEnumerator-guardEnumeratorCond :: Typed.TypedTerm Syntax.GuardEnumerator -> Typed.TypedTerm Syntax.Data-guardEnumeratorCond x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.GuardEnumerator"),-        Core.projectionFieldName = (Core.Name "cond")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cond field of hydra.scala.syntax.GuardEnumerator-guardEnumeratorWithCond :: Typed.TypedTerm Syntax.GuardEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GuardEnumerator-guardEnumeratorWithCond original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.GuardEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "cond"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.IfData-ifData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData-ifData cond thenp elsep =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.IfData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "cond"),-          Core.fieldTerm = (Typed.unTypedTerm cond)},-        Core.Field {-          Core.fieldName = (Core.Name "thenp"),-          Core.fieldTerm = (Typed.unTypedTerm thenp)},-        Core.Field {-          Core.fieldName = (Core.Name "elsep"),-          Core.fieldTerm = (Typed.unTypedTerm elsep)}]}))---- | DSL accessor for the cond field of hydra.scala.syntax.IfData-ifDataCond :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data-ifDataCond x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.IfData"),-        Core.projectionFieldName = (Core.Name "cond")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the elsep field of hydra.scala.syntax.IfData-ifDataElsep :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data-ifDataElsep x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.IfData"),-        Core.projectionFieldName = (Core.Name "elsep")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the thenp field of hydra.scala.syntax.IfData-ifDataThenp :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data-ifDataThenp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.IfData"),-        Core.projectionFieldName = (Core.Name "thenp")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cond field of hydra.scala.syntax.IfData-ifDataWithCond :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData-ifDataWithCond original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.IfData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "cond"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "thenp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.IfData"),-              Core.projectionFieldName = (Core.Name "thenp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "elsep"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.IfData"),-              Core.projectionFieldName = (Core.Name "elsep")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the elsep field of hydra.scala.syntax.IfData-ifDataWithElsep :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData-ifDataWithElsep original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.IfData"),-      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.scala.syntax.IfData"),-              Core.projectionFieldName = (Core.Name "cond")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "thenp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.IfData"),-              Core.projectionFieldName = (Core.Name "thenp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "elsep"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the thenp field of hydra.scala.syntax.IfData-ifDataWithThenp :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData-ifDataWithThenp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.IfData"),-      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.scala.syntax.IfData"),-              Core.projectionFieldName = (Core.Name "cond")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "thenp"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "elsep"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.IfData"),-              Core.projectionFieldName = (Core.Name "elsep")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ImplicitFunctionType-implicitFunctionType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ImplicitFunctionType-implicitFunctionType params res =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ImplicitFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm params)},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Typed.unTypedTerm res)}]}))---- | DSL accessor for the params field of hydra.scala.syntax.ImplicitFunctionType-implicitFunctionTypeParams :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm [Syntax.Type]-implicitFunctionTypeParams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ImplicitFunctionType"),-        Core.projectionFieldName = (Core.Name "params")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the res field of hydra.scala.syntax.ImplicitFunctionType-implicitFunctionTypeRes :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm Syntax.Type-implicitFunctionTypeRes x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ImplicitFunctionType"),-        Core.projectionFieldName = (Core.Name "res")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the params field of hydra.scala.syntax.ImplicitFunctionType-implicitFunctionTypeWithParams :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ImplicitFunctionType-implicitFunctionTypeWithParams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ImplicitFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ImplicitFunctionType"),-              Core.projectionFieldName = (Core.Name "res")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the res field of hydra.scala.syntax.ImplicitFunctionType-implicitFunctionTypeWithRes :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ImplicitFunctionType-implicitFunctionTypeWithRes original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ImplicitFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "params"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ImplicitFunctionType"),-              Core.projectionFieldName = (Core.Name "params")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "res"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.Import-import_ :: Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Import-import_ importers =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Import"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "importers"),-          Core.fieldTerm = (Typed.unTypedTerm importers)}]}))---- | DSL injection for the export variant of hydra.scala.syntax.ImportExportStat-importExportStatExport :: Typed.TypedTerm Syntax.Export -> Typed.TypedTerm Syntax.ImportExportStat-importExportStatExport x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.ImportExportStat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "export"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the import variant of hydra.scala.syntax.ImportExportStat-importExportStatImport :: Typed.TypedTerm Syntax.Import -> Typed.TypedTerm Syntax.ImportExportStat-importExportStatImport x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.ImportExportStat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "import"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL accessor for the importers field of hydra.scala.syntax.Import-importImporters :: Typed.TypedTerm Syntax.Import -> Typed.TypedTerm [Syntax.Importer]-importImporters x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Import"),-        Core.projectionFieldName = (Core.Name "importers")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the importers field of hydra.scala.syntax.Import-importWithImporters :: Typed.TypedTerm Syntax.Import -> Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Import-importWithImporters original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Import"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "importers"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the given variant of hydra.scala.syntax.Importee-importeeGiven :: Typed.TypedTerm Syntax.GivenImportee -> Typed.TypedTerm Syntax.Importee-importeeGiven x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Importee"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "given"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the givenAll variant of hydra.scala.syntax.Importee-importeeGivenAll :: Typed.TypedTerm Syntax.Importee-importeeGivenAll =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Importee"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "givenAll"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the name variant of hydra.scala.syntax.Importee-importeeName :: Typed.TypedTerm Syntax.NameImportee -> Typed.TypedTerm Syntax.Importee-importeeName x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Importee"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "name"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the rename variant of hydra.scala.syntax.Importee-importeeRename :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Importee-importeeRename x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Importee"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "rename"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the unimport variant of hydra.scala.syntax.Importee-importeeUnimport :: Typed.TypedTerm Syntax.UnimportImportee -> Typed.TypedTerm Syntax.Importee-importeeUnimport x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Importee"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "unimport"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the wildcard variant of hydra.scala.syntax.Importee-importeeWildcard :: Typed.TypedTerm Syntax.Importee-importeeWildcard =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Importee"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "wildcard"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.scala.syntax.Importer-importer :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm [Syntax.Importee] -> Typed.TypedTerm Syntax.Importer-importer ref importees =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Importer"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Typed.unTypedTerm ref)},-        Core.Field {-          Core.fieldName = (Core.Name "importees"),-          Core.fieldTerm = (Typed.unTypedTerm importees)}]}))---- | DSL accessor for the importees field of hydra.scala.syntax.Importer-importerImportees :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm [Syntax.Importee]-importerImportees x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Importer"),-        Core.projectionFieldName = (Core.Name "importees")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the ref field of hydra.scala.syntax.Importer-importerRef :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm Syntax.RefData-importerRef x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Importer"),-        Core.projectionFieldName = (Core.Name "ref")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the importees field of hydra.scala.syntax.Importer-importerWithImportees :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm [Syntax.Importee] -> Typed.TypedTerm Syntax.Importer-importerWithImportees original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Importer"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Importer"),-              Core.projectionFieldName = (Core.Name "ref")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "importees"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the ref field of hydra.scala.syntax.Importer-importerWithRef :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.Importer-importerWithRef original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Importer"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "importees"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Importer"),-              Core.projectionFieldName = (Core.Name "importees")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.Init-init :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.Data]] -> Typed.TypedTerm Syntax.Init-init tpe name argss =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Init"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "argss"),-          Core.fieldTerm = (Typed.unTypedTerm argss)}]}))---- | DSL accessor for the argss field of hydra.scala.syntax.Init-initArgss :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm [[Syntax.Data]]-initArgss x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Init"),-        Core.projectionFieldName = (Core.Name "argss")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.Init-initName :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Name-initName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Init"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.Init-initTpe :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Type-initTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Init"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the argss field of hydra.scala.syntax.Init-initWithArgss :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm [[Syntax.Data]] -> Typed.TypedTerm Syntax.Init-initWithArgss original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Init"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Init"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            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.scala.syntax.Init"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "argss"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the name field of hydra.scala.syntax.Init-initWithName :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Init-initWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Init"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Init"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "argss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Init"),-              Core.projectionFieldName = (Core.Name "argss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.Init-initWithTpe :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Init-initWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Init"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          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.scala.syntax.Init"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "argss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Init"),-              Core.projectionFieldName = (Core.Name "argss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.InterpolateData-interpolateData :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.InterpolateData-interpolateData prefix parts args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "prefix"),-          Core.fieldTerm = (Typed.unTypedTerm prefix)},-        Core.Field {-          Core.fieldName = (Core.Name "parts"),-          Core.fieldTerm = (Typed.unTypedTerm parts)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.InterpolateData-interpolateDataArgs :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Data]-interpolateDataArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the parts field of hydra.scala.syntax.InterpolateData-interpolateDataParts :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Lit]-interpolateDataParts x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-        Core.projectionFieldName = (Core.Name "parts")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the prefix field of hydra.scala.syntax.InterpolateData-interpolateDataPrefix :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm Syntax.NameData-interpolateDataPrefix x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-        Core.projectionFieldName = (Core.Name "prefix")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.InterpolateData-interpolateDataWithArgs :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.InterpolateData-interpolateDataWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "prefix"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-              Core.projectionFieldName = (Core.Name "prefix")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "parts"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-              Core.projectionFieldName = (Core.Name "parts")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the parts field of hydra.scala.syntax.InterpolateData-interpolateDataWithParts :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm Syntax.InterpolateData-interpolateDataWithParts original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "prefix"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-              Core.projectionFieldName = (Core.Name "prefix")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "parts"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the prefix field of hydra.scala.syntax.InterpolateData-interpolateDataWithPrefix :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.InterpolateData-interpolateDataWithPrefix original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "prefix"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "parts"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-              Core.projectionFieldName = (Core.Name "parts")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolateData"),-              Core.projectionFieldName = (Core.Name "args")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.InterpolatePat-interpolatePat :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm Syntax.InterpolatePat-interpolatePat prefix parts =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.InterpolatePat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "prefix"),-          Core.fieldTerm = (Typed.unTypedTerm prefix)},-        Core.Field {-          Core.fieldName = (Core.Name "parts"),-          Core.fieldTerm = (Typed.unTypedTerm parts)}]}))---- | DSL accessor for the parts field of hydra.scala.syntax.InterpolatePat-interpolatePatParts :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm [Syntax.Lit]-interpolatePatParts x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolatePat"),-        Core.projectionFieldName = (Core.Name "parts")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the prefix field of hydra.scala.syntax.InterpolatePat-interpolatePatPrefix :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm Syntax.NameData-interpolatePatPrefix x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolatePat"),-        Core.projectionFieldName = (Core.Name "prefix")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the parts field of hydra.scala.syntax.InterpolatePat-interpolatePatWithParts :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm Syntax.InterpolatePat-interpolatePatWithParts original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.InterpolatePat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "prefix"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolatePat"),-              Core.projectionFieldName = (Core.Name "prefix")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "parts"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the prefix field of hydra.scala.syntax.InterpolatePat-interpolatePatWithPrefix :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.InterpolatePat-interpolatePatWithPrefix original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.InterpolatePat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "prefix"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "parts"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.InterpolatePat"),-              Core.projectionFieldName = (Core.Name "parts")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.LambdaType-lambdaType :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.LambdaType-lambdaType tparams tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.LambdaType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the tparams field of hydra.scala.syntax.LambdaType-lambdaTypeTparams :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm [Syntax.ParamType]-lambdaTypeTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.LambdaType"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.LambdaType-lambdaTypeTpe :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm Syntax.Type-lambdaTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.LambdaType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the tparams field of hydra.scala.syntax.LambdaType-lambdaTypeWithTparams :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.LambdaType-lambdaTypeWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.LambdaType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.LambdaType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.LambdaType-lambdaTypeWithTpe :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.LambdaType-lambdaTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.LambdaType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.LambdaType"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the boolean variant of hydra.scala.syntax.Lit-litBoolean :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.Lit-litBoolean x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "boolean"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the byte variant of hydra.scala.syntax.Lit-litByte :: Typed.TypedTerm I.Int8 -> Typed.TypedTerm Syntax.Lit-litByte x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "byte"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the bytes variant of hydra.scala.syntax.Lit-litBytes :: Typed.TypedTerm [Int] -> Typed.TypedTerm Syntax.Lit-litBytes x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "bytes"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the char variant of hydra.scala.syntax.Lit-litChar :: Typed.TypedTerm Int -> Typed.TypedTerm Syntax.Lit-litChar x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "char"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the double variant of hydra.scala.syntax.Lit-litDouble :: Typed.TypedTerm Double -> Typed.TypedTerm Syntax.Lit-litDouble x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "double"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the float variant of hydra.scala.syntax.Lit-litFloat :: Typed.TypedTerm Float -> Typed.TypedTerm Syntax.Lit-litFloat x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "float"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the int variant of hydra.scala.syntax.Lit-litInt :: Typed.TypedTerm Int -> Typed.TypedTerm Syntax.Lit-litInt x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "int"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the long variant of hydra.scala.syntax.Lit-litLong :: Typed.TypedTerm I.Int64 -> Typed.TypedTerm Syntax.Lit-litLong x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "long"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the null variant of hydra.scala.syntax.Lit-litNull :: Typed.TypedTerm Syntax.Lit-litNull =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "null"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the short variant of hydra.scala.syntax.Lit-litShort :: Typed.TypedTerm I.Int16 -> Typed.TypedTerm Syntax.Lit-litShort x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "short"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the string variant of hydra.scala.syntax.Lit-litString :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Lit-litString x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "string"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the symbol variant of hydra.scala.syntax.Lit-litSymbol :: Typed.TypedTerm Syntax.ScalaSymbol -> Typed.TypedTerm Syntax.Lit-litSymbol x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "symbol"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the unit variant of hydra.scala.syntax.Lit-litUnit :: Typed.TypedTerm Syntax.Lit-litUnit =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Lit"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "unit"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.scala.syntax.MatchData-matchData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.MatchData-matchData expr cases =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MatchData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm cases)}]}))---- | DSL accessor for the cases field of hydra.scala.syntax.MatchData-matchDataCases :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm [Syntax.Case]-matchDataCases x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchData"),-        Core.projectionFieldName = (Core.Name "cases")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the expr field of hydra.scala.syntax.MatchData-matchDataExpr :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm Syntax.Data-matchDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cases field of hydra.scala.syntax.MatchData-matchDataWithCases :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.MatchData-matchDataWithCases original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MatchData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the expr field of hydra.scala.syntax.MatchData-matchDataWithExpr :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.MatchData-matchDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MatchData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchData"),-              Core.projectionFieldName = (Core.Name "cases")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.MatchType-matchType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.TypeCase] -> Typed.TypedTerm Syntax.MatchType-matchType tpe cases =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MatchType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm cases)}]}))---- | DSL accessor for the cases field of hydra.scala.syntax.MatchType-matchTypeCases :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm [Syntax.TypeCase]-matchTypeCases x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchType"),-        Core.projectionFieldName = (Core.Name "cases")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.MatchType-matchTypeTpe :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm Syntax.Type-matchTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cases field of hydra.scala.syntax.MatchType-matchTypeWithCases :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm [Syntax.TypeCase] -> Typed.TypedTerm Syntax.MatchType-matchTypeWithCases original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MatchType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.MatchType-matchTypeWithTpe :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.MatchType-matchTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MatchType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MatchType"),-              Core.projectionFieldName = (Core.Name "cases")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the self variant of hydra.scala.syntax.Member-memberSelf :: Typed.TypedTerm Syntax.Self -> Typed.TypedTerm Syntax.Member-memberSelf x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Member"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "self"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the term variant of hydra.scala.syntax.Member-memberTerm :: Typed.TypedTerm Syntax.DataMember -> Typed.TypedTerm Syntax.Member-memberTerm x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Member"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "term"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the termParam variant of hydra.scala.syntax.Member-memberTermParam :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Member-memberTermParam x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Member"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "termParam"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the type variant of hydra.scala.syntax.Member-memberType :: Typed.TypedTerm Syntax.TypeMember -> Typed.TypedTerm Syntax.Member-memberType x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Member"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "type"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the typeParam variant of hydra.scala.syntax.Member-memberTypeParam :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm Syntax.Member-memberTypeParam x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Member"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "typeParam"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.MethodType-methodType :: Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.MethodType-methodType paramss tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MethodType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm paramss)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the paramss field of hydra.scala.syntax.MethodType-methodTypeParamss :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm [[Syntax.ParamData]]-methodTypeParamss x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MethodType"),-        Core.projectionFieldName = (Core.Name "paramss")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.MethodType-methodTypeTpe :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm Syntax.Type-methodTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MethodType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the paramss field of hydra.scala.syntax.MethodType-methodTypeWithParamss :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.MethodType-methodTypeWithParamss original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MethodType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MethodType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.MethodType-methodTypeWithTpe :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.MethodType-methodTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.MethodType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.MethodType"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the abstract variant of hydra.scala.syntax.Mod-modAbstract :: Typed.TypedTerm Syntax.Mod-modAbstract =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "abstract"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the annot variant of hydra.scala.syntax.Mod-modAnnot :: Typed.TypedTerm Syntax.AnnotMod -> Typed.TypedTerm Syntax.Mod-modAnnot x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "annot"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the case variant of hydra.scala.syntax.Mod-modCase :: Typed.TypedTerm Syntax.Mod-modCase =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "case"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the contravariant variant of hydra.scala.syntax.Mod-modContravariant :: Typed.TypedTerm Syntax.Mod-modContravariant =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "contravariant"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the covariant variant of hydra.scala.syntax.Mod-modCovariant :: Typed.TypedTerm Syntax.Mod-modCovariant =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "covariant"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the final variant of hydra.scala.syntax.Mod-modFinal :: Typed.TypedTerm Syntax.Mod-modFinal =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "final"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the implicit variant of hydra.scala.syntax.Mod-modImplicit :: Typed.TypedTerm Syntax.Mod-modImplicit =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "implicit"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the infix variant of hydra.scala.syntax.Mod-modInfix :: Typed.TypedTerm Syntax.Mod-modInfix =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "infix"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the inline variant of hydra.scala.syntax.Mod-modInline :: Typed.TypedTerm Syntax.Mod-modInline =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "inline"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the lazy variant of hydra.scala.syntax.Mod-modLazy :: Typed.TypedTerm Syntax.Mod-modLazy =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "lazy"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the opaque variant of hydra.scala.syntax.Mod-modOpaque :: Typed.TypedTerm Syntax.Mod-modOpaque =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "opaque"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the open variant of hydra.scala.syntax.Mod-modOpen :: Typed.TypedTerm Syntax.Mod-modOpen =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "open"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the override variant of hydra.scala.syntax.Mod-modOverride :: Typed.TypedTerm Syntax.Mod-modOverride =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "override"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the private variant of hydra.scala.syntax.Mod-modPrivate :: Typed.TypedTerm Syntax.PrivateMod -> Typed.TypedTerm Syntax.Mod-modPrivate x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "private"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the protected variant of hydra.scala.syntax.Mod-modProtected :: Typed.TypedTerm Syntax.ProtectedMod -> Typed.TypedTerm Syntax.Mod-modProtected x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "protected"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the sealed variant of hydra.scala.syntax.Mod-modSealed :: Typed.TypedTerm Syntax.Mod-modSealed =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "sealed"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the super variant of hydra.scala.syntax.Mod-modSuper :: Typed.TypedTerm Syntax.Mod-modSuper =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "super"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the transparent variant of hydra.scala.syntax.Mod-modTransparent :: Typed.TypedTerm Syntax.Mod-modTransparent =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "transparent"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the using variant of hydra.scala.syntax.Mod-modUsing :: Typed.TypedTerm Syntax.Mod-modUsing =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "using"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the valParam variant of hydra.scala.syntax.Mod-modValParam :: Typed.TypedTerm Syntax.Mod-modValParam =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "valParam"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the varParam variant of hydra.scala.syntax.Mod-modVarParam :: Typed.TypedTerm Syntax.Mod-modVarParam =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Mod"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "varParam"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the anonymous variant of hydra.scala.syntax.Name-nameAnonymous :: Typed.TypedTerm Syntax.Name-nameAnonymous =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Name"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "anonymous"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.scala.syntax.NameData-nameData :: Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm Syntax.NameData-nameData value =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NameData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "value"),-          Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL accessor for the value field of hydra.scala.syntax.NameData-nameDataValue :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.PredefString-nameDataValue x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.NameData"),-        Core.projectionFieldName = (Core.Name "value")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the value field of hydra.scala.syntax.NameData-nameDataWithValue :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm Syntax.NameData-nameDataWithValue original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NameData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "value"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.NameImportee-nameImportee :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.NameImportee-nameImportee name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NameImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.NameImportee-nameImporteeName :: Typed.TypedTerm Syntax.NameImportee -> Typed.TypedTerm Syntax.Name-nameImporteeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.NameImportee"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.NameImportee-nameImporteeWithName :: Typed.TypedTerm Syntax.NameImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.NameImportee-nameImporteeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NameImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the indeterminate variant of hydra.scala.syntax.Name-nameIndeterminate :: Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm Syntax.Name-nameIndeterminate x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Name"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "indeterminate"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.NameType-nameType :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.NameType-nameType value =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NameType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "value"),-          Core.fieldTerm = (Typed.unTypedTerm value)}]}))---- | DSL accessor for the value field of hydra.scala.syntax.NameType-nameTypeValue :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm String-nameTypeValue x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.NameType"),-        Core.projectionFieldName = (Core.Name "value")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the value field of hydra.scala.syntax.NameType-nameTypeWithValue :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.NameType-nameTypeWithValue original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NameType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "value"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the value variant of hydra.scala.syntax.Name-nameValue :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Name-nameValue x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Name"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "value"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.NewAnonymousData-newAnonymousData :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.NewAnonymousData-newAnonymousData templ =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NewAnonymousData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Typed.unTypedTerm templ)}]}))---- | DSL accessor for the templ field of hydra.scala.syntax.NewAnonymousData-newAnonymousDataTempl :: Typed.TypedTerm Syntax.NewAnonymousData -> Typed.TypedTerm Syntax.Template-newAnonymousDataTempl x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.NewAnonymousData"),-        Core.projectionFieldName = (Core.Name "templ")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the templ field of hydra.scala.syntax.NewAnonymousData-newAnonymousDataWithTempl :: Typed.TypedTerm Syntax.NewAnonymousData -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.NewAnonymousData-newAnonymousDataWithTempl original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NewAnonymousData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "templ"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.NewData-newData :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.NewData-newData init =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NewData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Typed.unTypedTerm init)}]}))---- | DSL accessor for the init field of hydra.scala.syntax.NewData-newDataInit :: Typed.TypedTerm Syntax.NewData -> Typed.TypedTerm Syntax.Init-newDataInit x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.NewData"),-        Core.projectionFieldName = (Core.Name "init")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the init field of hydra.scala.syntax.NewData-newDataWithInit :: Typed.TypedTerm Syntax.NewData -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.NewData-newDataWithInit original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.NewData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ObjectDefn-objectDefn :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ObjectDefn-objectDefn name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ObjectDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.ObjectDefn-objectDefnName :: Typed.TypedTerm Syntax.ObjectDefn -> Typed.TypedTerm Syntax.NameData-objectDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.ObjectDefn-objectDefnWithName :: Typed.TypedTerm Syntax.ObjectDefn -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ObjectDefn-objectDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ObjectDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ObjectPkg-objectPkg :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ObjectPkg-objectPkg mods name template =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm template)}]}))---- | DSL accessor for the mods field of hydra.scala.syntax.ObjectPkg-objectPkgMods :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm [Syntax.Mod]-objectPkgMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.ObjectPkg-objectPkgName :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.NameData-objectPkgName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the template field of hydra.scala.syntax.ObjectPkg-objectPkgTemplate :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.Template-objectPkgTemplate x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-        Core.projectionFieldName = (Core.Name "template")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the mods field of hydra.scala.syntax.ObjectPkg-objectPkgWithMods :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ObjectPkg-objectPkgWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.ObjectPkg"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.ObjectPkg-objectPkgWithName :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ObjectPkg-objectPkgWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the template field of hydra.scala.syntax.ObjectPkg-objectPkgWithTemplate :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ObjectPkg-objectPkgWithTemplate original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ObjectPkg"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ObjectPkg"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.OrType-orType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.OrType-orType lhs rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.OrType"),-      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.scala.syntax.OrType-orTypeLhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type-orTypeLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.OrType"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.OrType-orTypeRhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type-orTypeRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.OrType"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.OrType-orTypeWithLhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.OrType-orTypeWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.OrType"),-      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.scala.syntax.OrType"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.OrType-orTypeWithRhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.OrType-orTypeWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.OrType"),-      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.scala.syntax.OrType"),-              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.scala.syntax.ParamData-paramData :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.ParamData-paramData mods name decltpe default_ =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)},-        Core.Field {-          Core.fieldName = (Core.Name "default"),-          Core.fieldTerm = (Typed.unTypedTerm default_)}]}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.ParamData-paramDataDecltpe :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Type)-paramDataDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the default field of hydra.scala.syntax.ParamData-paramDataDefault :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Data)-paramDataDefault x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-        Core.projectionFieldName = (Core.Name "default")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.ParamData-paramDataMods :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm [Syntax.Mod]-paramDataMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.ParamData-paramDataName :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Name-paramDataName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the decltpe field of hydra.scala.syntax.ParamData-paramDataWithDecltpe :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.ParamData-paramDataWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          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.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "default")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the default field of hydra.scala.syntax.ParamData-paramDataWithDefault :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.ParamData-paramDataWithDefault original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "default"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.ParamData-paramDataWithMods :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ParamData-paramDataWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "default")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.ParamData-paramDataWithName :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.ParamData-paramDataWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            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.scala.syntax.ParamData"),-              Core.projectionFieldName = (Core.Name "default")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ParamType-paramType :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [Syntax.TypeBounds] -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ParamType-paramType mods name tparams tbounds vbounds cbounds =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "tbounds"),-          Core.fieldTerm = (Typed.unTypedTerm tbounds)},-        Core.Field {-          Core.fieldName = (Core.Name "vbounds"),-          Core.fieldTerm = (Typed.unTypedTerm vbounds)},-        Core.Field {-          Core.fieldName = (Core.Name "cbounds"),-          Core.fieldTerm = (Typed.unTypedTerm cbounds)}]}))---- | DSL accessor for the cbounds field of hydra.scala.syntax.ParamType-paramTypeCbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type]-paramTypeCbounds x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-        Core.projectionFieldName = (Core.Name "cbounds")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.ParamType-paramTypeMods :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Mod]-paramTypeMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.ParamType-paramTypeName :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm Syntax.Name-paramTypeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tbounds field of hydra.scala.syntax.ParamType-paramTypeTbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.TypeBounds]-paramTypeTbounds x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-        Core.projectionFieldName = (Core.Name "tbounds")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.ParamType-paramTypeTparams :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.ParamType]-paramTypeTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the vbounds field of hydra.scala.syntax.ParamType-paramTypeVbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type]-paramTypeVbounds x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-        Core.projectionFieldName = (Core.Name "vbounds")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cbounds field of hydra.scala.syntax.ParamType-paramTypeWithCbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ParamType-paramTypeWithCbounds original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "vbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "vbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cbounds"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.ParamType-paramTypeWithMods :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ParamType-paramTypeWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "vbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "vbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "cbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.ParamType-paramTypeWithName :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.ParamType-paramTypeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "vbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "vbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "cbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tbounds field of hydra.scala.syntax.ParamType-paramTypeWithTbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.TypeBounds] -> Typed.TypedTerm Syntax.ParamType-paramTypeWithTbounds original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tbounds"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "vbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "vbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "cbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.ParamType-paramTypeWithTparams :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.ParamType-paramTypeWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "vbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "vbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "cbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the vbounds field of hydra.scala.syntax.ParamType-paramTypeWithVbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ParamType-paramTypeWithVbounds original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "tbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "vbounds"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "cbounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ParamType"),-              Core.projectionFieldName = (Core.Name "cbounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.PartialFunctionData-partialFunctionData :: Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.PartialFunctionData-partialFunctionData cases =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PartialFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm cases)}]}))---- | DSL accessor for the cases field of hydra.scala.syntax.PartialFunctionData-partialFunctionDataCases :: Typed.TypedTerm Syntax.PartialFunctionData -> Typed.TypedTerm [Syntax.Case]-partialFunctionDataCases x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PartialFunctionData"),-        Core.projectionFieldName = (Core.Name "cases")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cases field of hydra.scala.syntax.PartialFunctionData-partialFunctionDataWithCases :: Typed.TypedTerm Syntax.PartialFunctionData -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.PartialFunctionData-partialFunctionDataWithCases original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PartialFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the alternative variant of hydra.scala.syntax.Pat-patAlternative :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat-patAlternative x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "alternative"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the bind variant of hydra.scala.syntax.Pat-patBind :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat-patBind x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "bind"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the extract variant of hydra.scala.syntax.Pat-patExtract :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm Syntax.Pat-patExtract x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "extract"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the extractInfix variant of hydra.scala.syntax.Pat-patExtractInfix :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.Pat-patExtractInfix x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "extractInfix"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the given variant of hydra.scala.syntax.Pat-patGiven :: Typed.TypedTerm Syntax.GivenPat -> Typed.TypedTerm Syntax.Pat-patGiven x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "given"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the interpolate variant of hydra.scala.syntax.Pat-patInterpolate :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm Syntax.Pat-patInterpolate x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "interpolate"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the repeated variant of hydra.scala.syntax.Pat-patRepeated :: Typed.TypedTerm Syntax.RepeatedPat -> Typed.TypedTerm Syntax.Pat-patRepeated x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "repeated"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the seqWildcard variant of hydra.scala.syntax.Pat-patSeqWildcard :: Typed.TypedTerm Syntax.Pat-patSeqWildcard =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "seqWildcard"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL injection for the tuple variant of hydra.scala.syntax.Pat-patTuple :: Typed.TypedTerm Syntax.TuplePat -> Typed.TypedTerm Syntax.Pat-patTuple x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "tuple"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the typed variant of hydra.scala.syntax.Pat-patTyped :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Pat-patTyped x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "typed"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the var variant of hydra.scala.syntax.Pat-patVar :: Typed.TypedTerm Syntax.VarPat -> Typed.TypedTerm Syntax.Pat-patVar x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "var"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the wildcard variant of hydra.scala.syntax.Pat-patWildcard :: Typed.TypedTerm Syntax.Pat-patWildcard =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Pat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "wildcard"),-        Core.fieldTerm = Core.TermUnit}}))---- | DSL constructor for hydra.scala.syntax.Pkg-pkg :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Pkg-pkg name ref stats =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Typed.unTypedTerm ref)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm stats)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.Pkg-pkgName :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.NameData-pkgName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the ref field of hydra.scala.syntax.Pkg-pkgRef :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.RefData-pkgRef x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-        Core.projectionFieldName = (Core.Name "ref")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the stats field of hydra.scala.syntax.Pkg-pkgStats :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm [Syntax.Stat]-pkgStats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-        Core.projectionFieldName = (Core.Name "stats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.Pkg-pkgWithName :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.Pkg-pkgWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-              Core.projectionFieldName = (Core.Name "ref")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the ref field of hydra.scala.syntax.Pkg-pkgWithRef :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.Pkg-pkgWithRef original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-      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.scala.syntax.Pkg"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the stats field of hydra.scala.syntax.Pkg-pkgWithStats :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Pkg-pkgWithStats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-      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.scala.syntax.Pkg"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Pkg"),-              Core.projectionFieldName = (Core.Name "ref")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.PlaceholderType-placeholderType :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.PlaceholderType-placeholderType bounds =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PlaceholderType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "bounds"),-          Core.fieldTerm = (Typed.unTypedTerm bounds)}]}))---- | DSL accessor for the bounds field of hydra.scala.syntax.PlaceholderType-placeholderTypeBounds :: Typed.TypedTerm Syntax.PlaceholderType -> Typed.TypedTerm Syntax.TypeBounds-placeholderTypeBounds x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PlaceholderType"),-        Core.projectionFieldName = (Core.Name "bounds")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the bounds field of hydra.scala.syntax.PlaceholderType-placeholderTypeWithBounds :: Typed.TypedTerm Syntax.PlaceholderType -> Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.PlaceholderType-placeholderTypeWithBounds original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PlaceholderType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "bounds"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.PolyFunctionData-polyFunctionData :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.PolyFunctionData-polyFunctionData tparams body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.PolyFunctionData-polyFunctionDataBody :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm Syntax.Data-polyFunctionDataBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionData"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.PolyFunctionData-polyFunctionDataTparams :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm [Syntax.ParamType]-polyFunctionDataTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionData"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.PolyFunctionData-polyFunctionDataWithBody :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.PolyFunctionData-polyFunctionDataWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionData"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.PolyFunctionData-polyFunctionDataWithTparams :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PolyFunctionData-polyFunctionDataWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          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.scala.syntax.PolyFunctionData"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.PolyFunctionType-polyFunctionType :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.PolyFunctionType-polyFunctionType tparams tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the tparams field of hydra.scala.syntax.PolyFunctionType-polyFunctionTypeTparams :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm [Syntax.ParamType]-polyFunctionTypeTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionType"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.PolyFunctionType-polyFunctionTypeTpe :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm Syntax.Type-polyFunctionTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the tparams field of hydra.scala.syntax.PolyFunctionType-polyFunctionTypeWithTparams :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PolyFunctionType-polyFunctionTypeWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.PolyFunctionType-polyFunctionTypeWithTpe :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.PolyFunctionType-polyFunctionTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PolyFunctionType"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.scala.syntax.PredefString wrapper-predefString :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.PredefString-predefString x =-    Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {-      Core.wrappedTermTypeName = (Core.Name "hydra.scala.syntax.PredefString"),-      Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.PrimaryCtor-primaryCtor :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.PrimaryCtor-primaryCtor mods name paramss =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm paramss)}]}))---- | DSL accessor for the mods field of hydra.scala.syntax.PrimaryCtor-primaryCtorMods :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [Syntax.Mod]-primaryCtorMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.PrimaryCtor-primaryCtorName :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Name-primaryCtorName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the paramss field of hydra.scala.syntax.PrimaryCtor-primaryCtorParamss :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [[Syntax.ParamData]]-primaryCtorParamss x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-        Core.projectionFieldName = (Core.Name "paramss")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the mods field of hydra.scala.syntax.PrimaryCtor-primaryCtorWithMods :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.PrimaryCtor-primaryCtorWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.PrimaryCtor"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.PrimaryCtor-primaryCtorWithName :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.PrimaryCtor-primaryCtorWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the paramss field of hydra.scala.syntax.PrimaryCtor-primaryCtorWithParamss :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.PrimaryCtor-primaryCtorWithParamss original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrimaryCtor"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.PrimaryCtor"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.PrivateMod-privateMod :: Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.PrivateMod-privateMod within =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PrivateMod"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "within"),-          Core.fieldTerm = (Typed.unTypedTerm within)}]}))---- | DSL updater for the within field of hydra.scala.syntax.PrivateMod-privateModWithWithin :: Typed.TypedTerm Syntax.PrivateMod -> Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.PrivateMod-privateModWithWithin original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.PrivateMod"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "within"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL accessor for the within field of hydra.scala.syntax.PrivateMod-privateModWithin :: Typed.TypedTerm Syntax.PrivateMod -> Typed.TypedTerm Syntax.Ref-privateModWithin x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.PrivateMod"),-        Core.projectionFieldName = (Core.Name "within")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.ProjectType-projectType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ProjectType-projectType qual name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ProjectType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          Core.fieldTerm = (Typed.unTypedTerm qual)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.ProjectType-projectTypeName :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.NameType-projectTypeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ProjectType"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qual field of hydra.scala.syntax.ProjectType-projectTypeQual :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.Type-projectTypeQual x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ProjectType"),-        Core.projectionFieldName = (Core.Name "qual")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.ProjectType-projectTypeWithName :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ProjectType-projectTypeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ProjectType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ProjectType"),-              Core.projectionFieldName = (Core.Name "qual")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the qual field of hydra.scala.syntax.ProjectType-projectTypeWithQual :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ProjectType-projectTypeWithQual original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ProjectType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          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.scala.syntax.ProjectType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ProtectedMod-protectedMod :: Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.ProtectedMod-protectedMod within =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ProtectedMod"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "within"),-          Core.fieldTerm = (Typed.unTypedTerm within)}]}))---- | DSL updater for the within field of hydra.scala.syntax.ProtectedMod-protectedModWithWithin :: Typed.TypedTerm Syntax.ProtectedMod -> Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.ProtectedMod-protectedModWithWithin original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ProtectedMod"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "within"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL accessor for the within field of hydra.scala.syntax.ProtectedMod-protectedModWithin :: Typed.TypedTerm Syntax.ProtectedMod -> Typed.TypedTerm Syntax.Ref-protectedModWithin x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ProtectedMod"),-        Core.projectionFieldName = (Core.Name "within")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL injection for the anonymous variant of hydra.scala.syntax.RefData-refDataAnonymous :: Typed.TypedTerm Syntax.AnonymousData -> Typed.TypedTerm Syntax.RefData-refDataAnonymous x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefData"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "anonymous"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the applyUnary variant of hydra.scala.syntax.RefData-refDataApplyUnary :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.RefData-refDataApplyUnary x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefData"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "applyUnary"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the name variant of hydra.scala.syntax.RefData-refDataName :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RefData-refDataName x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefData"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "name"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the select variant of hydra.scala.syntax.RefData-refDataSelect :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.RefData-refDataSelect x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefData"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "select"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the super variant of hydra.scala.syntax.RefData-refDataSuper :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.RefData-refDataSuper x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefData"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "super"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the this variant of hydra.scala.syntax.RefData-refDataThis :: Typed.TypedTerm Syntax.ThisData -> Typed.TypedTerm Syntax.RefData-refDataThis x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefData"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "this"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the init variant of hydra.scala.syntax.Ref-refInit :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Ref-refInit x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Ref"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "init"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the name variant of hydra.scala.syntax.Ref-refName :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Ref-refName x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Ref"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "name"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the name variant of hydra.scala.syntax.RefType-refTypeName :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.RefType-refTypeName x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefType"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "name"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the project variant of hydra.scala.syntax.RefType-refTypeProject :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.RefType-refTypeProject x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefType"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "project"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the select variant of hydra.scala.syntax.RefType-refTypeSelect :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.RefType-refTypeSelect x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefType"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "select"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the singleton variant of hydra.scala.syntax.RefType-refTypeSingleton :: Typed.TypedTerm Syntax.SingletonType -> Typed.TypedTerm Syntax.RefType-refTypeSingleton x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.RefType"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "singleton"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.RefineType-refineType :: Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.RefineType-refineType tpe stats =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RefineType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm stats)}]}))---- | DSL accessor for the stats field of hydra.scala.syntax.RefineType-refineTypeStats :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm [Syntax.Stat]-refineTypeStats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RefineType"),-        Core.projectionFieldName = (Core.Name "stats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tpe field of hydra.scala.syntax.RefineType-refineTypeTpe :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm (Maybe Syntax.Type)-refineTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RefineType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the stats field of hydra.scala.syntax.RefineType-refineTypeWithStats :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.RefineType-refineTypeWithStats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RefineType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RefineType"),-              Core.projectionFieldName = (Core.Name "tpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tpe field of hydra.scala.syntax.RefineType-refineTypeWithTpe :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.RefineType-refineTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RefineType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RefineType"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.RenameImportee-renameImportee :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.RenameImportee-renameImportee name rename =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RenameImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "rename"),-          Core.fieldTerm = (Typed.unTypedTerm rename)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.RenameImportee-renameImporteeName :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name-renameImporteeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RenameImportee"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rename field of hydra.scala.syntax.RenameImportee-renameImporteeRename :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name-renameImporteeRename x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RenameImportee"),-        Core.projectionFieldName = (Core.Name "rename")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.RenameImportee-renameImporteeWithName :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.RenameImportee-renameImporteeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RenameImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "rename"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RenameImportee"),-              Core.projectionFieldName = (Core.Name "rename")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rename field of hydra.scala.syntax.RenameImportee-renameImporteeWithRename :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.RenameImportee-renameImporteeWithRename original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RenameImportee"),-      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.scala.syntax.RenameImportee"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rename"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.RepeatedData-repeatedData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.RepeatedData-repeatedData expr =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)}]}))---- | DSL accessor for the expr field of hydra.scala.syntax.RepeatedData-repeatedDataExpr :: Typed.TypedTerm Syntax.RepeatedData -> Typed.TypedTerm Syntax.Data-repeatedDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RepeatedData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expr field of hydra.scala.syntax.RepeatedData-repeatedDataWithExpr :: Typed.TypedTerm Syntax.RepeatedData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.RepeatedData-repeatedDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.NameData] -> Typed.TypedTerm Syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefn mods cases =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm cases)}]}))---- | DSL accessor for the cases field of hydra.scala.syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefnCases :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.NameData]-repeatedEnumCaseDefnCases x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),-        Core.projectionFieldName = (Core.Name "cases")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefnMods :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.Mod]-repeatedEnumCaseDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the cases field of hydra.scala.syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefnWithCases :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.NameData] -> Typed.TypedTerm Syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefnWithCases original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefnWithMods :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.RepeatedEnumCaseDefn-repeatedEnumCaseDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "cases"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),-              Core.projectionFieldName = (Core.Name "cases")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.RepeatedPat-repeatedPat :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RepeatedPat-repeatedPat name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.RepeatedPat-repeatedPatName :: Typed.TypedTerm Syntax.RepeatedPat -> Typed.TypedTerm Syntax.NameData-repeatedPatName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RepeatedPat"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.RepeatedPat-repeatedPatWithName :: Typed.TypedTerm Syntax.RepeatedPat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RepeatedPat-repeatedPatWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.RepeatedType-repeatedType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.RepeatedType-repeatedType tpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm tpe)}]}))---- | DSL accessor for the tpe field of hydra.scala.syntax.RepeatedType-repeatedTypeTpe :: Typed.TypedTerm Syntax.RepeatedType -> Typed.TypedTerm Syntax.Type-repeatedTypeTpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.RepeatedType"),-        Core.projectionFieldName = (Core.Name "tpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the tpe field of hydra.scala.syntax.RepeatedType-repeatedTypeWithTpe :: Typed.TypedTerm Syntax.RepeatedType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.RepeatedType-repeatedTypeWithTpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.RepeatedType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "tpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ReturnData-returnData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ReturnData-returnData expr =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ReturnData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)}]}))---- | DSL accessor for the expr field of hydra.scala.syntax.ReturnData-returnDataExpr :: Typed.TypedTerm Syntax.ReturnData -> Typed.TypedTerm Syntax.Data-returnDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ReturnData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expr field of hydra.scala.syntax.ReturnData-returnDataWithExpr :: Typed.TypedTerm Syntax.ReturnData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ReturnData-returnDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ReturnData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ScalaSymbol-scalaSymbol :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.ScalaSymbol-scalaSymbol name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ScalaSymbol"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.ScalaSymbol-scalaSymbolName :: Typed.TypedTerm Syntax.ScalaSymbol -> Typed.TypedTerm String-scalaSymbolName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ScalaSymbol"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.ScalaSymbol-scalaSymbolWithName :: Typed.TypedTerm Syntax.ScalaSymbol -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.ScalaSymbol-scalaSymbolWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ScalaSymbol"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.SecondaryCtor-secondaryCtor :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.SecondaryCtor-secondaryCtor mods name paramss init stats =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm paramss)},-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Typed.unTypedTerm init)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm stats)}]}))---- | DSL accessor for the init field of hydra.scala.syntax.SecondaryCtor-secondaryCtorInit :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Init-secondaryCtorInit x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-        Core.projectionFieldName = (Core.Name "init")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.SecondaryCtor-secondaryCtorMods :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Mod]-secondaryCtorMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.SecondaryCtor-secondaryCtorName :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Name-secondaryCtorName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the paramss field of hydra.scala.syntax.SecondaryCtor-secondaryCtorParamss :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [[Syntax.ParamData]]-secondaryCtorParamss x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-        Core.projectionFieldName = (Core.Name "paramss")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the stats field of hydra.scala.syntax.SecondaryCtor-secondaryCtorStats :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Stat]-secondaryCtorStats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-        Core.projectionFieldName = (Core.Name "stats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the init field of hydra.scala.syntax.SecondaryCtor-secondaryCtorWithInit :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.SecondaryCtor-secondaryCtorWithInit original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.SecondaryCtor-secondaryCtorWithMods :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.SecondaryCtor-secondaryCtorWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "init")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.SecondaryCtor-secondaryCtorWithName :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SecondaryCtor-secondaryCtorWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "init")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the paramss field of hydra.scala.syntax.SecondaryCtor-secondaryCtorWithParamss :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.SecondaryCtor-secondaryCtorWithParamss original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "init")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the stats field of hydra.scala.syntax.SecondaryCtor-secondaryCtorWithStats :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.SecondaryCtor-secondaryCtorWithStats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "paramss"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "paramss")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "init"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SecondaryCtor"),-              Core.projectionFieldName = (Core.Name "init")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.SelectData-selectData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.SelectData-selectData qual name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SelectData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          Core.fieldTerm = (Typed.unTypedTerm qual)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.SelectData-selectDataName :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.NameData-selectDataName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SelectData"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qual field of hydra.scala.syntax.SelectData-selectDataQual :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.Data-selectDataQual x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SelectData"),-        Core.projectionFieldName = (Core.Name "qual")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.SelectData-selectDataWithName :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.SelectData-selectDataWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SelectData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SelectData"),-              Core.projectionFieldName = (Core.Name "qual")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the qual field of hydra.scala.syntax.SelectData-selectDataWithQual :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.SelectData-selectDataWithQual original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SelectData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          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.scala.syntax.SelectData"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.SelectType-selectType :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.SelectType-selectType qual name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SelectType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          Core.fieldTerm = (Typed.unTypedTerm qual)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.SelectType-selectTypeName :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.NameType-selectTypeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SelectType"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the qual field of hydra.scala.syntax.SelectType-selectTypeQual :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.RefData-selectTypeQual x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SelectType"),-        Core.projectionFieldName = (Core.Name "qual")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.SelectType-selectTypeWithName :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.SelectType-selectTypeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SelectType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SelectType"),-              Core.projectionFieldName = (Core.Name "qual")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the qual field of hydra.scala.syntax.SelectType-selectTypeWithQual :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.SelectType-selectTypeWithQual original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SelectType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "qual"),-          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.scala.syntax.SelectType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for the hydra.scala.syntax.Self wrapper-self :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.Self-self x =-    Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {-      Core.wrappedTermTypeName = (Core.Name "hydra.scala.syntax.Self"),-      Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.SingletonType-singletonType :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.SingletonType-singletonType ref =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SingletonType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Typed.unTypedTerm ref)}]}))---- | DSL accessor for the ref field of hydra.scala.syntax.SingletonType-singletonTypeRef :: Typed.TypedTerm Syntax.SingletonType -> Typed.TypedTerm Syntax.RefData-singletonTypeRef x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SingletonType"),-        Core.projectionFieldName = (Core.Name "ref")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the ref field of hydra.scala.syntax.SingletonType-singletonTypeWithRef :: Typed.TypedTerm Syntax.SingletonType -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.SingletonType-singletonTypeWithRef original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SingletonType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "ref"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.Source-source :: Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Source-source stats =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Source"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm stats)}]}))---- | DSL accessor for the stats field of hydra.scala.syntax.Source-sourceStats :: Typed.TypedTerm Syntax.Source -> Typed.TypedTerm [Syntax.Stat]-sourceStats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Source"),-        Core.projectionFieldName = (Core.Name "stats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the stats field of hydra.scala.syntax.Source-sourceWithStats :: Typed.TypedTerm Syntax.Source -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Source-sourceWithStats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Source"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the decl variant of hydra.scala.syntax.Stat-statDecl :: Typed.TypedTerm Syntax.Decl -> Typed.TypedTerm Syntax.Stat-statDecl x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Stat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "decl"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the defn variant of hydra.scala.syntax.Stat-statDefn :: Typed.TypedTerm Syntax.Defn -> Typed.TypedTerm Syntax.Stat-statDefn x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Stat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "defn"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the importExport variant of hydra.scala.syntax.Stat-statImportExport :: Typed.TypedTerm Syntax.ImportExportStat -> Typed.TypedTerm Syntax.Stat-statImportExport x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Stat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "importExport"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the term variant of hydra.scala.syntax.Stat-statTerm :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Stat-statTerm x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Stat"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "term"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.SuperData-superData :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SuperData-superData thisp superp =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SuperData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "thisp"),-          Core.fieldTerm = (Typed.unTypedTerm thisp)},-        Core.Field {-          Core.fieldName = (Core.Name "superp"),-          Core.fieldTerm = (Typed.unTypedTerm superp)}]}))---- | DSL accessor for the superp field of hydra.scala.syntax.SuperData-superDataSuperp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name-superDataSuperp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SuperData"),-        Core.projectionFieldName = (Core.Name "superp")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the thisp field of hydra.scala.syntax.SuperData-superDataThisp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name-superDataThisp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SuperData"),-        Core.projectionFieldName = (Core.Name "thisp")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the superp field of hydra.scala.syntax.SuperData-superDataWithSuperp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SuperData-superDataWithSuperp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SuperData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "thisp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SuperData"),-              Core.projectionFieldName = (Core.Name "thisp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "superp"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the thisp field of hydra.scala.syntax.SuperData-superDataWithThisp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SuperData-superDataWithThisp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.SuperData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "thisp"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "superp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.SuperData"),-              Core.projectionFieldName = (Core.Name "superp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.Template-template :: Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.Self -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Template-template early inits self stats =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Template"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "early"),-          Core.fieldTerm = (Typed.unTypedTerm early)},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Typed.unTypedTerm inits)},-        Core.Field {-          Core.fieldName = (Core.Name "self"),-          Core.fieldTerm = (Typed.unTypedTerm self)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm stats)}]}))---- | DSL accessor for the early field of hydra.scala.syntax.Template-templateEarly :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat]-templateEarly x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-        Core.projectionFieldName = (Core.Name "early")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the inits field of hydra.scala.syntax.Template-templateInits :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Init]-templateInits x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-        Core.projectionFieldName = (Core.Name "inits")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the self field of hydra.scala.syntax.Template-templateSelf :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.Self-templateSelf x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-        Core.projectionFieldName = (Core.Name "self")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the stats field of hydra.scala.syntax.Template-templateStats :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat]-templateStats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-        Core.projectionFieldName = (Core.Name "stats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the early field of hydra.scala.syntax.Template-templateWithEarly :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Template-templateWithEarly original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Template"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "early"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "inits")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "self"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "self")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the inits field of hydra.scala.syntax.Template-templateWithInits :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.Template-templateWithInits original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Template"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "early"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "early")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "self"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "self")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the self field of hydra.scala.syntax.Template-templateWithSelf :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.Self -> Typed.TypedTerm Syntax.Template-templateWithSelf original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Template"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "early"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "early")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "inits")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "self"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "stats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the stats field of hydra.scala.syntax.Template-templateWithStats :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Template-templateWithStats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.Template"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "early"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "early")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "inits"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "inits")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "self"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.Template"),-              Core.projectionFieldName = (Core.Name "self")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "stats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for the hydra.scala.syntax.ThisData wrapper-thisData :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.ThisData-thisData x =-    Typed.TypedTerm (Core.TermWrap (Core.WrappedTerm {-      Core.wrappedTermTypeName = (Core.Name "hydra.scala.syntax.ThisData"),-      Core.wrappedTermBody = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.ThrowData-throwData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ThrowData-throwData expr =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ThrowData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)}]}))---- | DSL accessor for the expr field of hydra.scala.syntax.ThrowData-throwDataExpr :: Typed.TypedTerm Syntax.ThrowData -> Typed.TypedTerm Syntax.Data-throwDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ThrowData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the expr field of hydra.scala.syntax.ThrowData-throwDataWithExpr :: Typed.TypedTerm Syntax.ThrowData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ThrowData-throwDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ThrowData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.TraitDefn-traitDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.TraitDefn-traitDefn mods name tparams ctor template =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm ctor)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm template)}]}))---- | DSL accessor for the ctor field of hydra.scala.syntax.TraitDefn-traitDefnCtor :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.PrimaryCtor-traitDefnCtor x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-        Core.projectionFieldName = (Core.Name "ctor")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.TraitDefn-traitDefnMods :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.Mod]-traitDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.TraitDefn-traitDefnName :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.NameType-traitDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the template field of hydra.scala.syntax.TraitDefn-traitDefnTemplate :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.Template-traitDefnTemplate x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-        Core.projectionFieldName = (Core.Name "template")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.TraitDefn-traitDefnTparams :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.ParamType]-traitDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the ctor field of hydra.scala.syntax.TraitDefn-traitDefnWithCtor :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.TraitDefn-traitDefnWithCtor original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.TraitDefn-traitDefnWithMods :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.TraitDefn-traitDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.TraitDefn-traitDefnWithName :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TraitDefn-traitDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the template field of hydra.scala.syntax.TraitDefn-traitDefnWithTemplate :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.TraitDefn-traitDefnWithTemplate original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.TraitDefn-traitDefnWithTparams :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TraitDefn-traitDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "ctor"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "ctor")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "template"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TraitDefn"),-              Core.projectionFieldName = (Core.Name "template")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the bounds variant of hydra.scala.syntax.Tree-treeBounds :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.Tree-treeBounds x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "bounds"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the caseTree variant of hydra.scala.syntax.Tree-treeCaseTree :: Typed.TypedTerm Syntax.CaseTree -> Typed.TypedTerm Syntax.Tree-treeCaseTree x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "caseTree"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ctor variant of hydra.scala.syntax.Tree-treeCtor :: Typed.TypedTerm Syntax.Ctor -> Typed.TypedTerm Syntax.Tree-treeCtor x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "ctor"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the enumerator variant of hydra.scala.syntax.Tree-treeEnumerator :: Typed.TypedTerm Syntax.Enumerator -> Typed.TypedTerm Syntax.Tree-treeEnumerator x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "enumerator"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the importee variant of hydra.scala.syntax.Tree-treeImportee :: Typed.TypedTerm Syntax.Importee -> Typed.TypedTerm Syntax.Tree-treeImportee x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "importee"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the importer variant of hydra.scala.syntax.Tree-treeImporter :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm Syntax.Tree-treeImporter x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "importer"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the member variant of hydra.scala.syntax.Tree-treeMember :: Typed.TypedTerm Syntax.Member -> Typed.TypedTerm Syntax.Tree-treeMember x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "member"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the mod variant of hydra.scala.syntax.Tree-treeMod :: Typed.TypedTerm Syntax.Mod -> Typed.TypedTerm Syntax.Tree-treeMod x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "mod"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the pat variant of hydra.scala.syntax.Tree-treePat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Tree-treePat x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "pat"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ref variant of hydra.scala.syntax.Tree-treeRef :: Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.Tree-treeRef x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "ref"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the source variant of hydra.scala.syntax.Tree-treeSource :: Typed.TypedTerm Syntax.Source -> Typed.TypedTerm Syntax.Tree-treeSource x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "source"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the stat variant of hydra.scala.syntax.Tree-treeStat :: Typed.TypedTerm Syntax.Stat -> Typed.TypedTerm Syntax.Tree-treeStat x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "stat"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the template variant of hydra.scala.syntax.Tree-treeTemplate :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.Tree-treeTemplate x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "template"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the type variant of hydra.scala.syntax.Tree-treeType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Tree-treeType x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Tree"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "type"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.TryData-tryData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryData-tryData expr catchp finallyp =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Typed.unTypedTerm catchp)},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Typed.unTypedTerm finallyp)}]}))---- | DSL accessor for the catchp field of hydra.scala.syntax.TryData-tryDataCatchp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm [Syntax.Case]-tryDataCatchp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-        Core.projectionFieldName = (Core.Name "catchp")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the expr field of hydra.scala.syntax.TryData-tryDataExpr :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm Syntax.Data-tryDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the finallyp field of hydra.scala.syntax.TryData-tryDataFinallyp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm (Maybe Syntax.Data)-tryDataFinallyp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-        Core.projectionFieldName = (Core.Name "finallyp")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the catchp field of hydra.scala.syntax.TryData-tryDataWithCatchp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.TryData-tryDataWithCatchp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-              Core.projectionFieldName = (Core.Name "finallyp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the expr field of hydra.scala.syntax.TryData-tryDataWithExpr :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.TryData-tryDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-              Core.projectionFieldName = (Core.Name "catchp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-              Core.projectionFieldName = (Core.Name "finallyp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the finallyp field of hydra.scala.syntax.TryData-tryDataWithFinallyp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryData-tryDataWithFinallyp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryData"),-              Core.projectionFieldName = (Core.Name "catchp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.TryWithHandlerData-tryWithHandlerData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryWithHandlerData-tryWithHandlerData expr catchp finallyp =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Typed.unTypedTerm catchp)},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Typed.unTypedTerm finallyp)}]}))---- | DSL accessor for the catchp field of hydra.scala.syntax.TryWithHandlerData-tryWithHandlerDataCatchp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data-tryWithHandlerDataCatchp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-        Core.projectionFieldName = (Core.Name "catchp")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the expr field of hydra.scala.syntax.TryWithHandlerData-tryWithHandlerDataExpr :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data-tryWithHandlerDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the finallyp field of hydra.scala.syntax.TryWithHandlerData-tryWithHandlerDataFinallyp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm (Maybe Syntax.Data)-tryWithHandlerDataFinallyp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-        Core.projectionFieldName = (Core.Name "finallyp")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the catchp field of hydra.scala.syntax.TryWithHandlerData-tryWithHandlerDataWithCatchp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.TryWithHandlerData-tryWithHandlerDataWithCatchp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-              Core.projectionFieldName = (Core.Name "finallyp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the expr field of hydra.scala.syntax.TryWithHandlerData-tryWithHandlerDataWithExpr :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.TryWithHandlerData-tryWithHandlerDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-              Core.projectionFieldName = (Core.Name "catchp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-              Core.projectionFieldName = (Core.Name "finallyp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the finallyp field of hydra.scala.syntax.TryWithHandlerData-tryWithHandlerDataWithFinallyp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryWithHandlerData-tryWithHandlerDataWithFinallyp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "catchp"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TryWithHandlerData"),-              Core.projectionFieldName = (Core.Name "catchp")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "finallyp"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.TupleData-tupleData :: Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.TupleData-tupleData args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TupleData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.TupleData-tupleDataArgs :: Typed.TypedTerm Syntax.TupleData -> Typed.TypedTerm [Syntax.Data]-tupleDataArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TupleData"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.TupleData-tupleDataWithArgs :: Typed.TypedTerm Syntax.TupleData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.TupleData-tupleDataWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TupleData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.TuplePat-tuplePat :: Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.TuplePat-tuplePat args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TuplePat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.TuplePat-tuplePatArgs :: Typed.TypedTerm Syntax.TuplePat -> Typed.TypedTerm [Syntax.Pat]-tuplePatArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TuplePat"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.TuplePat-tuplePatWithArgs :: Typed.TypedTerm Syntax.TuplePat -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.TuplePat-tuplePatWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TuplePat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.TupleType-tupleType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.TupleType-tupleType args =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TupleType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm args)}]}))---- | DSL accessor for the args field of hydra.scala.syntax.TupleType-tupleTypeArgs :: Typed.TypedTerm Syntax.TupleType -> Typed.TypedTerm [Syntax.Type]-tupleTypeArgs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TupleType"),-        Core.projectionFieldName = (Core.Name "args")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the args field of hydra.scala.syntax.TupleType-tupleTypeWithArgs :: Typed.TypedTerm Syntax.TupleType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.TupleType-tupleTypeWithArgs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TupleType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "args"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the and variant of hydra.scala.syntax.Type-typeAnd :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type-typeAnd x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "and"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the annotate variant of hydra.scala.syntax.Type-typeAnnotate :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm Syntax.Type-typeAnnotate x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "annotate"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the anonymousName variant of hydra.scala.syntax.Type-typeAnonymousName :: Typed.TypedTerm Syntax.AnonymousNameType -> Typed.TypedTerm Syntax.Type-typeAnonymousName x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "anonymousName"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the apply variant of hydra.scala.syntax.Type-typeApply :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm Syntax.Type-typeApply x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "apply"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the applyInfix variant of hydra.scala.syntax.Type-typeApplyInfix :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type-typeApplyInfix x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "applyInfix"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.TypeBounds-typeBounds :: Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.TypeBounds-typeBounds lo hi =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeBounds"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "lo"),-          Core.fieldTerm = (Typed.unTypedTerm lo)},-        Core.Field {-          Core.fieldName = (Core.Name "hi"),-          Core.fieldTerm = (Typed.unTypedTerm hi)}]}))---- | DSL accessor for the hi field of hydra.scala.syntax.TypeBounds-typeBoundsHi :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type)-typeBoundsHi x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeBounds"),-        Core.projectionFieldName = (Core.Name "hi")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the lo field of hydra.scala.syntax.TypeBounds-typeBoundsLo :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type)-typeBoundsLo x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeBounds"),-        Core.projectionFieldName = (Core.Name "lo")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the hi field of hydra.scala.syntax.TypeBounds-typeBoundsWithHi :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.TypeBounds-typeBoundsWithHi original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeBounds"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "lo"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeBounds"),-              Core.projectionFieldName = (Core.Name "lo")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "hi"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the lo field of hydra.scala.syntax.TypeBounds-typeBoundsWithLo :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.TypeBounds-typeBoundsWithLo original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeBounds"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "lo"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "hi"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeBounds"),-              Core.projectionFieldName = (Core.Name "hi")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the byName variant of hydra.scala.syntax.Type-typeByName :: Typed.TypedTerm Syntax.ByNameType -> Typed.TypedTerm Syntax.Type-typeByName x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "byName"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.TypeCase-typeCase :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeCase-typeCase pat body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeCase"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Typed.unTypedTerm pat)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.TypeCase-typeCaseBody :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type-typeCaseBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeCase"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the pat field of hydra.scala.syntax.TypeCase-typeCasePat :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type-typeCasePat x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeCase"),-        Core.projectionFieldName = (Core.Name "pat")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.TypeCase-typeCaseWithBody :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeCase-typeCaseWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeCase"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeCase"),-              Core.projectionFieldName = (Core.Name "pat")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the pat field of hydra.scala.syntax.TypeCase-typeCaseWithPat :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeCase-typeCaseWithPat original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeCase"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          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.scala.syntax.TypeCase"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the contextFunction variant of hydra.scala.syntax.Type-typeContextFunction :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm Syntax.Type-typeContextFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "contextFunction"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.TypeDecl-typeDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.TypeDecl-typeDecl mods name tparams bounds =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "bounds"),-          Core.fieldTerm = (Typed.unTypedTerm bounds)}]}))---- | DSL accessor for the bounds field of hydra.scala.syntax.TypeDecl-typeDeclBounds :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.TypeBounds-typeDeclBounds x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-        Core.projectionFieldName = (Core.Name "bounds")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.TypeDecl-typeDeclMods :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.Mod]-typeDeclMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.TypeDecl-typeDeclName :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.NameType-typeDeclName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.TypeDecl-typeDeclTparams :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.ParamType]-typeDeclTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the bounds field of hydra.scala.syntax.TypeDecl-typeDeclWithBounds :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.TypeDecl-typeDeclWithBounds original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "bounds"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.TypeDecl-typeDeclWithMods :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.TypeDecl-typeDeclWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "bounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "bounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.TypeDecl-typeDeclWithName :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeDecl-typeDeclWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "bounds"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "bounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.TypeDecl-typeDeclWithTparams :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TypeDecl-typeDeclWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          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.scala.syntax.TypeDecl"),-              Core.projectionFieldName = (Core.Name "bounds")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.TypeDefn-typeDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeDefn-typeDefn mods name tparams body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Typed.unTypedTerm tparams)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.TypeDefn-typeDefnBody :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.Type-typeDefnBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.TypeDefn-typeDefnMods :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.Mod]-typeDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the name field of hydra.scala.syntax.TypeDefn-typeDefnName :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.NameType-typeDefnName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the tparams field of hydra.scala.syntax.TypeDefn-typeDefnTparams :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.ParamType]-typeDefnTparams x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-        Core.projectionFieldName = (Core.Name "tparams")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.TypeDefn-typeDefnWithBody :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeDefn-typeDefnWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.TypeDefn-typeDefnWithMods :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.TypeDefn-typeDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          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.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            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.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the name field of hydra.scala.syntax.TypeDefn-typeDefnWithName :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeDefn-typeDefnWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "tparams")})),-            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.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the tparams field of hydra.scala.syntax.TypeDefn-typeDefnWithTparams :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TypeDefn-typeDefnWithTparams original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            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.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "tparams"),-          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.scala.syntax.TypeDefn"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL injection for the existential variant of hydra.scala.syntax.Type-typeExistential :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm Syntax.Type-typeExistential x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "existential"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the function variant of hydra.scala.syntax.Type-typeFunction :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm Syntax.Type-typeFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "function"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the implicitFunction variant of hydra.scala.syntax.Type-typeImplicitFunction :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm Syntax.Type-typeImplicitFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "implicitFunction"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the lambda variant of hydra.scala.syntax.Type-typeLambda :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm Syntax.Type-typeLambda x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "lambda"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the match variant of hydra.scala.syntax.Type-typeMatch :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm Syntax.Type-typeMatch x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "match"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.TypeMember-typeMember :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeMember-typeMember name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeMember"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.TypeMember-typeMemberName :: Typed.TypedTerm Syntax.TypeMember -> Typed.TypedTerm Syntax.NameType-typeMemberName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypeMember"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.TypeMember-typeMemberWithName :: Typed.TypedTerm Syntax.TypeMember -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeMember-typeMemberWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypeMember"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL injection for the method variant of hydra.scala.syntax.Type-typeMethod :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm Syntax.Type-typeMethod x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "method"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the or variant of hydra.scala.syntax.Type-typeOr :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type-typeOr x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "or"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the placeholder variant of hydra.scala.syntax.Type-typePlaceholder :: Typed.TypedTerm Syntax.PlaceholderType -> Typed.TypedTerm Syntax.Type-typePlaceholder x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "placeholder"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the polyFunction variant of hydra.scala.syntax.Type-typePolyFunction :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm Syntax.Type-typePolyFunction x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "polyFunction"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the ref variant of hydra.scala.syntax.Type-typeRef :: Typed.TypedTerm Syntax.RefType -> Typed.TypedTerm Syntax.Type-typeRef x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "ref"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the refine variant of hydra.scala.syntax.Type-typeRefine :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm Syntax.Type-typeRefine x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "refine"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the repeated variant of hydra.scala.syntax.Type-typeRepeated :: Typed.TypedTerm Syntax.RepeatedType -> Typed.TypedTerm Syntax.Type-typeRepeated x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "repeated"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the tuple variant of hydra.scala.syntax.Type-typeTuple :: Typed.TypedTerm Syntax.TupleType -> Typed.TypedTerm Syntax.Type-typeTuple x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "tuple"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the typedParam variant of hydra.scala.syntax.Type-typeTypedParam :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Type-typeTypedParam x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "typedParam"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the var variant of hydra.scala.syntax.Type-typeVar :: Typed.TypedTerm Syntax.VarType -> Typed.TypedTerm Syntax.Type-typeVar x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "var"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL injection for the with variant of hydra.scala.syntax.Type-typeWith :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type-typeWith x =-    Typed.TypedTerm (Core.TermInject (Core.Injection {-      Core.injectionTypeName = (Core.Name "hydra.scala.syntax.Type"),-      Core.injectionField = Core.Field {-        Core.fieldName = (Core.Name "with"),-        Core.fieldTerm = (Typed.unTypedTerm x)}}))---- | DSL constructor for hydra.scala.syntax.TypedParamType-typedParamType :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedParamType-typedParamType name typ =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypedParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)},-        Core.Field {-          Core.fieldName = (Core.Name "typ"),-          Core.fieldTerm = (Typed.unTypedTerm typ)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.TypedParamType-typedParamTypeName :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Name-typedParamTypeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypedParamType"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the typ field of hydra.scala.syntax.TypedParamType-typedParamTypeTyp :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Type-typedParamTypeTyp x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypedParamType"),-        Core.projectionFieldName = (Core.Name "typ")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.TypedParamType-typedParamTypeWithName :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.TypedParamType-typedParamTypeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypedParamType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "typ"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypedParamType"),-              Core.projectionFieldName = (Core.Name "typ")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the typ field of hydra.scala.syntax.TypedParamType-typedParamTypeWithTyp :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedParamType-typedParamTypeWithTyp original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypedParamType"),-      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.scala.syntax.TypedParamType"),-              Core.projectionFieldName = (Core.Name "name")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "typ"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.TypedPat-typedPat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedPat-typedPat lhs rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypedPat"),-      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.scala.syntax.TypedPat-typedPatLhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Pat-typedPatLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypedPat"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.TypedPat-typedPatRhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Type-typedPatRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.TypedPat"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.TypedPat-typedPatWithLhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.TypedPat-typedPatWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypedPat"),-      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.scala.syntax.TypedPat"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.TypedPat-typedPatWithRhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedPat-typedPatWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.TypedPat"),-      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.scala.syntax.TypedPat"),-              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 body of hydra.scala.syntax.AnonymousData-unAnonymousData :: Typed.TypedTerm Syntax.AnonymousData -> Typed.TypedTerm ()-unAnonymousData x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.scala.syntax.AnonymousData")),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.scala.syntax.AnonymousNameType-unAnonymousNameType :: Typed.TypedTerm Syntax.AnonymousNameType -> Typed.TypedTerm ()-unAnonymousNameType x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.scala.syntax.AnonymousNameType")),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.scala.syntax.PredefString-unPredefString :: Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm String-unPredefString x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.scala.syntax.PredefString")),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.scala.syntax.Self-unSelf :: Typed.TypedTerm Syntax.Self -> Typed.TypedTerm ()-unSelf x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.scala.syntax.Self")),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the body of hydra.scala.syntax.ThisData-unThisData :: Typed.TypedTerm Syntax.ThisData -> Typed.TypedTerm ()-unThisData x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermUnwrap (Core.Name "hydra.scala.syntax.ThisData")),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL constructor for hydra.scala.syntax.UnimportImportee-unimportImportee :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.UnimportImportee-unimportImportee name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.UnimportImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.UnimportImportee-unimportImporteeName :: Typed.TypedTerm Syntax.UnimportImportee -> Typed.TypedTerm Syntax.Name-unimportImporteeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.UnimportImportee"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.UnimportImportee-unimportImporteeWithName :: Typed.TypedTerm Syntax.UnimportImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.UnimportImportee-unimportImporteeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.UnimportImportee"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ValDecl-valDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ValDecl-valDecl mods pats decltpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm pats)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)}]}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.ValDecl-valDeclDecltpe :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm Syntax.Type-valDeclDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.ValDecl-valDeclMods :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Mod]-valDeclMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the pats field of hydra.scala.syntax.ValDecl-valDeclPats :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Pat]-valDeclPats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-        Core.projectionFieldName = (Core.Name "pats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the decltpe field of hydra.scala.syntax.ValDecl-valDeclWithDecltpe :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ValDecl-valDeclWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.ValDecl-valDeclWithMods :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ValDecl-valDeclWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the pats field of hydra.scala.syntax.ValDecl-valDeclWithPats :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ValDecl-valDeclWithPats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.ValDefn-valDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValDefn-valDefn mods pats decltpe rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm pats)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.ValDefn-valDefnDecltpe :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm (Maybe Syntax.Type)-valDefnDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.ValDefn-valDefnMods :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Mod]-valDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the pats field of hydra.scala.syntax.ValDefn-valDefnPats :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Pat]-valDefnPats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-        Core.projectionFieldName = (Core.Name "pats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.ValDefn-valDefnRhs :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm Syntax.Data-valDefnRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the decltpe field of hydra.scala.syntax.ValDefn-valDefnWithDecltpe :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.ValDefn-valDefnWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          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.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.ValDefn-valDefnWithMods :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ValDefn-valDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the pats field of hydra.scala.syntax.ValDefn-valDefnWithPats :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ValDefn-valDefnWithPats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.ValDefn-valDefnWithRhs :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValDefn-valDefnWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.ValEnumerator-valEnumerator :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValEnumerator-valEnumerator pat rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Typed.unTypedTerm pat)},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the pat field of hydra.scala.syntax.ValEnumerator-valEnumeratorPat :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Pat-valEnumeratorPat x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValEnumerator"),-        Core.projectionFieldName = (Core.Name "pat")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.ValEnumerator-valEnumeratorRhs :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Data-valEnumeratorRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValEnumerator"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the pat field of hydra.scala.syntax.ValEnumerator-valEnumeratorWithPat :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.ValEnumerator-valEnumeratorWithPat original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          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.scala.syntax.ValEnumerator"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.ValEnumerator-valEnumeratorWithRhs :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValEnumerator-valEnumeratorWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.ValEnumerator"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "pat"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.ValEnumerator"),-              Core.projectionFieldName = (Core.Name "pat")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.VarDecl-varDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.VarDecl-varDecl mods pats decltpe =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm pats)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)}]}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.VarDecl-varDeclDecltpe :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm Syntax.Type-varDeclDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.VarDecl-varDeclMods :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Mod]-varDeclMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the pats field of hydra.scala.syntax.VarDecl-varDeclPats :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Pat]-varDeclPats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-        Core.projectionFieldName = (Core.Name "pats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the decltpe field of hydra.scala.syntax.VarDecl-varDeclWithDecltpe :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.VarDecl-varDeclWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the mods field of hydra.scala.syntax.VarDecl-varDeclWithMods :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.VarDecl-varDeclWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the pats field of hydra.scala.syntax.VarDecl-varDeclWithPats :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.VarDecl-varDeclWithPats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDecl"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.VarDefn-varDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.VarDefn-varDefn mods pats decltpe rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm mods)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm pats)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Typed.unTypedTerm decltpe)},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm rhs)}]}))---- | DSL accessor for the decltpe field of hydra.scala.syntax.VarDefn-varDefnDecltpe :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm Syntax.Type-varDefnDecltpe x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-        Core.projectionFieldName = (Core.Name "decltpe")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the mods field of hydra.scala.syntax.VarDefn-varDefnMods :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Mod]-varDefnMods x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-        Core.projectionFieldName = (Core.Name "mods")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the pats field of hydra.scala.syntax.VarDefn-varDefnPats :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Pat]-varDefnPats x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-        Core.projectionFieldName = (Core.Name "pats")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.VarDefn-varDefnRhs :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm (Maybe Syntax.Data)-varDefnRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the decltpe field of hydra.scala.syntax.VarDefn-varDefnWithDecltpe :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.VarDefn-varDefnWithDecltpe original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          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.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the mods field of hydra.scala.syntax.VarDefn-varDefnWithMods :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.VarDefn-varDefnWithMods original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the pats field of hydra.scala.syntax.VarDefn-varDefnWithPats :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.VarDefn-varDefnWithPats original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.VarDefn-varDefnWithRhs :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.VarDefn-varDefnWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "mods"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "mods")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "pats"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "pats")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "decltpe"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarDefn"),-              Core.projectionFieldName = (Core.Name "decltpe")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.VarPat-varPat :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.VarPat-varPat name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.VarPat-varPatName :: Typed.TypedTerm Syntax.VarPat -> Typed.TypedTerm Syntax.NameData-varPatName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarPat"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.VarPat-varPatWithName :: Typed.TypedTerm Syntax.VarPat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.VarPat-varPatWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarPat"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.VarType-varType :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.VarType-varType name =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm name)}]}))---- | DSL accessor for the name field of hydra.scala.syntax.VarType-varTypeName :: Typed.TypedTerm Syntax.VarType -> Typed.TypedTerm Syntax.NameType-varTypeName x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.VarType"),-        Core.projectionFieldName = (Core.Name "name")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the name field of hydra.scala.syntax.VarType-varTypeWithName :: Typed.TypedTerm Syntax.VarType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.VarType-varTypeWithName original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.VarType"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "name"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL constructor for hydra.scala.syntax.WhileData-whileData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.WhileData-whileData expr body =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.WhileData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Typed.unTypedTerm expr)},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm body)}]}))---- | DSL accessor for the body field of hydra.scala.syntax.WhileData-whileDataBody :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data-whileDataBody x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.WhileData"),-        Core.projectionFieldName = (Core.Name "body")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the expr field of hydra.scala.syntax.WhileData-whileDataExpr :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data-whileDataExpr x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.WhileData"),-        Core.projectionFieldName = (Core.Name "expr")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the body field of hydra.scala.syntax.WhileData-whileDataWithBody :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.WhileData-whileDataWithBody original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.WhileData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          Core.fieldTerm = (Core.TermApplication (Core.Application {-            Core.applicationFunction = (Core.TermProject (Core.Projection {-              Core.projectionTypeName = (Core.Name "hydra.scala.syntax.WhileData"),-              Core.projectionFieldName = (Core.Name "expr")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "body"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))---- | DSL updater for the expr field of hydra.scala.syntax.WhileData-whileDataWithExpr :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.WhileData-whileDataWithExpr original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.WhileData"),-      Core.recordFields = [-        Core.Field {-          Core.fieldName = (Core.Name "expr"),-          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.scala.syntax.WhileData"),-              Core.projectionFieldName = (Core.Name "body")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL constructor for hydra.scala.syntax.WithType-withType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.WithType-withType lhs rhs =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.WithType"),-      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.scala.syntax.WithType-withTypeLhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type-withTypeLhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.WithType"),-        Core.projectionFieldName = (Core.Name "lhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL accessor for the rhs field of hydra.scala.syntax.WithType-withTypeRhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type-withTypeRhs x =-    Typed.TypedTerm (Core.TermApplication (Core.Application {-      Core.applicationFunction = (Core.TermProject (Core.Projection {-        Core.projectionTypeName = (Core.Name "hydra.scala.syntax.WithType"),-        Core.projectionFieldName = (Core.Name "rhs")})),-      Core.applicationArgument = (Typed.unTypedTerm x)}))---- | DSL updater for the lhs field of hydra.scala.syntax.WithType-withTypeWithLhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.WithType-withTypeWithLhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.WithType"),-      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.scala.syntax.WithType"),-              Core.projectionFieldName = (Core.Name "rhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))}]}))---- | DSL updater for the rhs field of hydra.scala.syntax.WithType-withTypeWithRhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.WithType-withTypeWithRhs original newVal =-    Typed.TypedTerm (Core.TermRecord (Core.Record {-      Core.recordTypeName = (Core.Name "hydra.scala.syntax.WithType"),-      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.scala.syntax.WithType"),-              Core.projectionFieldName = (Core.Name "lhs")})),-            Core.applicationArgument = (Typed.unTypedTerm original)}))},-        Core.Field {-          Core.fieldName = (Core.Name "rhs"),-          Core.fieldTerm = (Typed.unTypedTerm newVal)}]}))
src/main/haskell/Hydra/Scala/Coder.hs view
@@ -4,68 +4,68 @@  module Hydra.Scala.Coder where -import qualified Hydra.Analysis as Analysis-import qualified Hydra.Annotations as Annotations-import qualified Hydra.Arity as Arity-import qualified Hydra.Ast as Ast-import qualified Hydra.Coders as Coders-import qualified Hydra.Constants as Constants-import qualified Hydra.Core as Core-import qualified Hydra.Docs as Docs-import qualified Hydra.Environment as Environment-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.File as ErrorFile-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Error.System as ErrorSystem-import qualified Hydra.Errors as Errors-import qualified Hydra.File as File-import qualified Hydra.Formatting as Formatting-import qualified Hydra.Graph as Graph-import qualified Hydra.Inference as Inference-import qualified Hydra.Json.Model as Model-import qualified Hydra.Lexical as Lexical-import qualified Hydra.Overlay.Haskell.Lib.Eithers as Eithers-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Literals as Literals-import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic-import qualified Hydra.Overlay.Haskell.Lib.Maps as Maps-import qualified Hydra.Overlay.Haskell.Lib.Math as Math-import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals-import qualified Hydra.Overlay.Haskell.Lib.Ordering as Ordering-import qualified Hydra.Overlay.Haskell.Lib.Pairs as Pairs-import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings-import qualified Hydra.Names as Names-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Predicates as Predicates-import qualified Hydra.Print.Core as PrintCore-import qualified Hydra.Query as Query-import qualified Hydra.Reduction as Reduction-import qualified Hydra.Relational as Relational-import qualified Hydra.Resolution as Resolution+import qualified Hydra.Core.Analysis as Analysis+import qualified Hydra.Core.Annotations as Annotations+import qualified Hydra.Core.Arity as Arity+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Constants as Constants+import qualified Hydra.Core.Docs as Docs+import qualified Hydra.Core.Environment as Environment+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.File as ErrorFile+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Error.System as ErrorSystem+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.File as File+import qualified Hydra.Core.Formatting as Formatting+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Inference as Inference+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Lexical as Lexical+import qualified Hydra.Core.Overlay.Haskell.Lib.Eithers as Eithers+import qualified Hydra.Core.Overlay.Haskell.Lib.Equality as Equality+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Literals as Literals+import qualified Hydra.Core.Overlay.Haskell.Lib.Logic as Logic+import qualified Hydra.Core.Overlay.Haskell.Lib.Maps as Maps+import qualified Hydra.Core.Overlay.Haskell.Lib.Math as Math+import qualified Hydra.Core.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Core.Overlay.Haskell.Lib.Ordering as Ordering+import qualified Hydra.Core.Overlay.Haskell.Lib.Pairs as Pairs+import qualified Hydra.Core.Overlay.Haskell.Lib.Sets as Sets+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Names as Names+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Predicates as Predicates+import qualified Hydra.Core.Print.Model as PrintModel+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Reduction as Reduction+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Resolution as Resolution+import qualified Hydra.Core.Scoping as Scoping+import qualified Hydra.Core.Serialization as Serialization+import qualified Hydra.Core.Sorting as Sorting+import qualified Hydra.Core.Strip as Strip+import qualified Hydra.Core.System as System+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Time as Time+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variables as Variables+import qualified Hydra.Core.Variants as Variants import qualified Hydra.Scala.Language as Language import qualified Hydra.Scala.Serde as Serde import qualified Hydra.Scala.Syntax as Syntax import qualified Hydra.Scala.Utils as Utils-import qualified Hydra.Scoping as Scoping-import qualified Hydra.Serialization as Serialization-import qualified Hydra.Sorting as Sorting-import qualified Hydra.Strip as Strip-import qualified Hydra.System as System-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Time as Time-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variables as Variables-import qualified Hydra.Variants as Variants import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -73,38 +73,38 @@ import qualified Data.Set as S  -- | Apply a variable to a term, performing substitution for lambdas-applyVar :: Core.Term -> Core.Name -> Core.Term+applyVar :: Model.Term -> Model.Name -> Model.Term applyVar fterm avar = -      let v = Core.unName avar+      let v = Model.unName avar       in case (Strip.deannotateAndDetypeTerm fterm) of-        Core.TermLambda v0 ->-          let lamParam = Core.lambdaParameter v0-              lamBody = Core.lambdaBody v0+        Model.TermLambda v0 ->+          let lamParam = Model.lambdaParameter v0+              lamBody = Model.lambdaBody v0           in (Logic.ifElse (Variables.isFreeVariableInTerm lamParam lamBody) lamBody (Variables.substituteVariable lamParam avar lamBody))-        _ -> Core.TermApplication (Core.Application {-          Core.applicationFunction = fterm,-          Core.applicationArgument = (Core.TermVariable avar)})+        _ -> Model.TermApplication (Model.Application {+          Model.applicationFunction = fterm,+          Model.applicationArgument = (Model.TermVariable avar)})  -- | Collect the set of free type variables occurring in a type (#589)-collectTypeVars :: Core.Type -> S.Set Core.Name+collectTypeVars :: Model.Type -> S.Set Model.Name collectTypeVars typ = collectTypeVarsGo (Strip.deannotateType typ)  -- | Recursively collect free type variables from a type (#589)-collectTypeVarsGo :: Core.Type -> S.Set Core.Name+collectTypeVarsGo :: Model.Type -> S.Set Model.Name collectTypeVarsGo t =     case (Strip.deannotateType t) of-      Core.TypeVariable v0 -> Sets.singleton v0-      Core.TypeFunction v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Core.functionTypeDomain v0))) (collectTypeVarsGo (Strip.deannotateType (Core.functionTypeCodomain v0)))-      Core.TypeApplication v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Core.applicationTypeFunction v0))) (collectTypeVarsGo (Strip.deannotateType (Core.applicationTypeArgument v0)))-      Core.TypeList v0 -> collectTypeVarsGo (Strip.deannotateType v0)-      Core.TypeSet v0 -> collectTypeVarsGo (Strip.deannotateType v0)-      Core.TypeOptional v0 -> collectTypeVarsGo (Strip.deannotateType v0)-      Core.TypeEffect v0 -> collectTypeVarsGo (Strip.deannotateType v0)-      Core.TypeMap v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Core.mapTypeKeys v0))) (collectTypeVarsGo (Strip.deannotateType (Core.mapTypeValues v0)))-      Core.TypePair v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Core.pairTypeFirst v0))) (collectTypeVarsGo (Strip.deannotateType (Core.pairTypeSecond v0)))-      Core.TypeEither v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Core.eitherTypeLeft v0))) (collectTypeVarsGo (Strip.deannotateType (Core.eitherTypeRight v0)))-      Core.TypeForall v0 -> collectTypeVarsGo (Strip.deannotateType (Core.forallTypeBody v0))+      Model.TypeVariable v0 -> Sets.singleton v0+      Model.TypeFunction v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Model.functionTypeDomain v0))) (collectTypeVarsGo (Strip.deannotateType (Model.functionTypeCodomain v0)))+      Model.TypeApplication v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Model.applicationTypeFunction v0))) (collectTypeVarsGo (Strip.deannotateType (Model.applicationTypeArgument v0)))+      Model.TypeList v0 -> collectTypeVarsGo (Strip.deannotateType v0)+      Model.TypeSet v0 -> collectTypeVarsGo (Strip.deannotateType v0)+      Model.TypeOptional v0 -> collectTypeVarsGo (Strip.deannotateType v0)+      Model.TypeEffect v0 -> collectTypeVarsGo (Strip.deannotateType v0)+      Model.TypeMap v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Model.mapTypeKeys v0))) (collectTypeVarsGo (Strip.deannotateType (Model.mapTypeValues v0)))+      Model.TypePair v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Model.pairTypeFirst v0))) (collectTypeVarsGo (Strip.deannotateType (Model.pairTypeSecond v0)))+      Model.TypeEither v0 -> Sets.union (collectTypeVarsGo (Strip.deannotateType (Model.eitherTypeLeft v0))) (collectTypeVarsGo (Strip.deannotateType (Model.eitherTypeRight v0)))+      Model.TypeForall v0 -> collectTypeVarsGo (Strip.deannotateType (Model.forallTypeBody v0))       _ -> Sets.empty  -- | Construct a Scala package from a Hydra module and its definitions@@ -127,11 +127,11 @@           termDeclStats])})))))  -- | Filter/rewrite a raw type-application list against callee-scheme over-generalization (#589)-correctTypeApps :: Core.Name -> [Core.Type] -> Graph.Graph -> Either t0 [Core.Type]+correctTypeApps :: Model.Name -> [Model.Type] -> Graph.Graph -> Either t0 [Model.Type] correctTypeApps name fallbackTypeApps g =-    Optionals.match (Lexical.lookupBinding g name) (Right fallbackTypeApps) (\el -> Optionals.match (Core.bindingTypeScheme el) (Right fallbackTypeApps) (\ts ->-      let schemeType = Core.typeSchemeBody ts-          allSchemeVars = Lists.filter (\vv -> isSimpleName vv) (Core.typeSchemeVariables ts)+    Optionals.match (Lexical.lookupBinding g name) (Right fallbackTypeApps) (\el -> Optionals.match (Model.bindingTypeScheme el) (Right fallbackTypeApps) (\ts ->+      let schemeType = Model.typeSchemeBody ts+          allSchemeVars = Lists.filter (\vv -> isSimpleName vv) (Model.typeSchemeVariables ts)           schemeTypeVars = collectTypeVars schemeType           usedFlags = Lists.map (\vv -> Sets.member vv schemeTypeVars) allSchemeVars           usedSchemeVars = filterByFlags allSchemeVars usedFlags@@ -150,14 +150,14 @@       in (Right filteredFallback)))  -- | Count the curried function parameters of a type (#589)-countFunctionParams :: Core.Type -> Int+countFunctionParams :: Model.Type -> Int countFunctionParams t =     case (Strip.deannotateType t) of-      Core.TypeFunction v0 -> Math.add 1 (countFunctionParams (Core.functionTypeCodomain v0))+      Model.TypeFunction v0 -> Math.add 1 (countFunctionParams (Model.functionTypeCodomain v0))       _ -> 0  -- | Detect callee-scheme type vars forced together/to-concrete by the callee's own domain shape (#589)-detectAccumulatorUnification :: [Core.Type] -> Core.Type -> [Core.Name] -> M.Map Core.Name Core.Type+detectAccumulatorUnification :: [Model.Type] -> Model.Type -> [Model.Name] -> M.Map Model.Name Model.Type detectAccumulatorUnification doms cod tparams =        let tparamSet = Sets.fromList tparams@@ -169,14 +169,14 @@           directInputVars = Sets.fromList (Lists.map (\p -> Pairs.first p) directPairs)           codVar =                   case (Strip.deannotateType cod) of-                    Core.TypeVariable v0 -> Just v0+                    Model.TypeVariable v0 -> Just v0                     _ -> Nothing           directRefSubst = directRefSubstitution directInputVars codVar groupedDirect           codSubst =                   Optionals.match (findPairFirst cod) Maps.empty (\cv -> Logic.ifElse (Maps.member cv selfRefSubst) Maps.empty (Optionals.match (findSelfRefVar groupedByInput) Maps.empty (\refVar -> Logic.ifElse (Equality.equal cv refVar) Maps.empty (Maps.singleton cv refVar))))           domVars = Sets.fromList (Lists.bind doms (\d -> Sets.toList (collectTypeVars d)))           danglingSubst =-                  Optionals.match (findPairFirst cod) Maps.empty (\cv -> Logic.ifElse (Sets.member cv domVars) Maps.empty (Optionals.match (findSelfRefVar groupedByInput) Maps.empty (\refVar -> Maps.singleton cv (Core.TypeVariable refVar))))+                  Optionals.match (findPairFirst cod) Maps.empty (\cv -> Logic.ifElse (Sets.member cv domVars) Maps.empty (Optionals.match (findSelfRefVar groupedByInput) Maps.empty (\refVar -> Maps.singleton cv (Model.TypeVariable refVar))))       in (Maps.union (Maps.union (Maps.union (nameMapToTypeMap selfRefSubst) (nameMapToTypeMap codSubst)) danglingSubst) (nameMapToTypeMap directRefSubst))  -- | Compute the direct-return substitution over grouped accumulator pairs (#589)@@ -195,59 +195,61 @@       in (Logic.ifElse (Logic.and (Ordering.gte selfRefCount 2) (Logic.not (Lists.isEmpty safeNonSelfVars))) (Lists.foldl (\s -> \vv -> Maps.insert vv inVar s) subst safeNonSelfVars) subst)  -- | Drop N domain types from a function type, returning the remaining type-dropDomains :: Int -> Core.Type -> Core.Type+dropDomains :: Int -> Model.Type -> Model.Type dropDomains n t =     Logic.ifElse (Ordering.lte n 0) t (case (Strip.deannotateType t) of-      Core.TypeFunction v0 -> dropDomains (Math.sub n 1) (Core.functionTypeCodomain v0)-      Core.TypeForall v0 -> dropDomains n (Core.forallTypeBody v0)+      Model.TypeFunction v0 -> dropDomains (Math.sub n 1) (Model.functionTypeCodomain v0)+      Model.TypeForall v0 -> dropDomains n (Model.forallTypeBody v0)       _ -> t)  -- | Encode a case branch-encodeCase :: S.Set String -> t0 -> Graph.Graph -> M.Map Core.Name Core.Type -> Maybe Core.Name -> Core.CaseAlternative -> Either Errors.Error Syntax.Case-encodeCase overlaySubs cx g ftypes sn f =+encodeCase :: S.Set String -> t0 -> Graph.Graph -> M.Map Model.Name Model.Type -> Maybe Model.Name -> Bool -> Model.CaseAlternative -> Either Errors.Error Syntax.Case+encodeCase overlaySubs cx g ftypes sn isPolymorphic f = -      let fname = Core.caseAlternativeName f-          fterm = Core.caseAlternativeHandler f+      let fname = Model.caseAlternativeName f+          fterm = Model.caseAlternativeHandler f           isUnit =                   Optionals.match (Maps.lookup fname ftypes) (case (Strip.deannotateAndDetypeTerm fterm) of-                    Core.TermLambda v0 ->-                      let lamParam = Core.lambdaParameter v0-                          lamBody = Core.lambdaBody v0-                          domIsUnit = Optionals.match (Core.lambdaDomain v0) False (\dom -> Equality.equal dom Core.TypeUnit)+                    Model.TermLambda v0 ->+                      let lamParam = Model.lambdaParameter v0+                          lamBody = Model.lambdaBody v0+                          domIsUnit = Optionals.match (Model.lambdaDomain v0) False (\dom -> Equality.equal dom Model.TypeUnit)                           bodyIgnoresParam = Variables.isFreeVariableInTerm lamParam lamBody                       in (Logic.or domIsUnit bodyIgnoresParam)-                    Core.TermRecord v0 -> Equality.equal (Lists.length (Core.recordFields v0)) 0-                    Core.TermUnit -> True+                    Model.TermRecord v0 -> Equality.equal (Lists.length (Model.recordFields v0)) 0+                    Model.TermUnit -> True                     _ -> False) (\dom -> case (Strip.deannotateType dom) of-                    Core.TypeUnit -> True-                    Core.TypeRecord v0 -> Equality.equal (Lists.length v0) 0+                    Model.TypeUnit -> True+                    Model.TypeRecord v0 -> Equality.equal (Lists.length v0) 0                     _ -> False)-          shortTypeName = Optionals.withDefault "x" (Lists.last (Strings.splitOn "." (Optionals.match sn "x" (\n -> Core.unName n))))+          shortTypeName = Optionals.withDefault "x" (Lists.last (Strings.splitOn "." (Optionals.match sn "x" (\n -> Model.unName n))))           lamParamSuffix =                   case (Strip.deannotateAndDetypeTerm fterm) of-                    Core.TermLambda v0 ->-                      let rawName = Core.unName (Core.lambdaParameter v0)+                    Model.TermLambda v0 ->+                      let rawName = Model.unName (Model.lambdaParameter v0)                           safeName = Strings.fromList (Lists.map (\c -> Logic.ifElse (Equality.equal c 39) 95 c) (Strings.toList rawName))                       in (Strings.concat2 "_" safeName)                     _ -> ""           v =-                  Core.Name (Strings.concat [+                  Model.Name (Strings.concat [                     "v_",                     shortTypeName,                     "_",-                    (Core.unName fname),+                    (Model.unName fname),                     lamParamSuffix])           domainIsUnit =                   case (Strip.deannotateAndDetypeTerm fterm) of-                    Core.TermLambda v0 -> Optionals.match (Core.lambdaDomain v0) True (\dom -> Equality.equal dom Core.TypeUnit)+                    Model.TermLambda v0 -> Optionals.match (Model.lambdaDomain v0) True (\dom -> Equality.equal dom Model.TypeUnit)                     _ -> True           patArgs = Logic.ifElse isUnit (Logic.ifElse domainIsUnit [] [                 Syntax.PatWildcard]) [                 Utils.svar v]+          isCall = Logic.or (Logic.not isUnit) isPolymorphic           pat =                   Syntax.PatExtract (Syntax.ExtractPat {                     Syntax.extractPatFun = (Utils.sname (Utils.qualifyUnionFieldName "MATCHED." sn fname)),-                    Syntax.extractPatArgs = patArgs})+                    Syntax.extractPatArgs = patArgs,+                    Syntax.extractPatIsCall = isCall})           applied = applyVar fterm v       in (Eithers.bind (encodeTerm overlaySubs cx g applied) (\body -> Right (Syntax.Case {         Syntax.casePat = pat,@@ -255,7 +257,7 @@         Syntax.caseBody = body})))  -- | Encode a complex term definition with proper parameter types from the type signature-encodeComplexTermDef :: S.Set String -> t0 -> Graph.Graph -> String -> Core.Term -> Core.Type -> Either Errors.Error Syntax.Stat+encodeComplexTermDef :: S.Set String -> t0 -> Graph.Graph -> String -> Model.Term -> Model.Type -> Either Errors.Error Syntax.Stat encodeComplexTermDef overlaySubs cx g lname term typ =        let doms = extractDomains typ@@ -264,7 +266,7 @@           cod = dropDomains paramCount typ           zippedParams = Lists.zip (Lists.take paramCount paramNames) (Lists.take paramCount doms)           freeTypeVars =-                  Lists.distinct (Lists.filter (\v -> Logic.not (Lists.member 46 (Strings.toList (Core.unName v)))) (Variables.freeVariablesInTypeOrdered typ))+                  Lists.distinct (Lists.filter (\v -> Logic.not (Lists.member 46 (Strings.toList (Model.unName v)))) (Variables.freeVariablesInTypeOrdered typ))           tparams = Lists.map (\tv -> Utils.stparam tv) freeTypeVars           letBindings = extractLetBindings term           gWithTypeVars =@@ -279,9 +281,9 @@                     Graph.graphTypeVariables = (Sets.union (Sets.fromList freeTypeVars) (Graph.graphTypeVariables g))}       in (Eithers.bind (Eithers.mapList (encodeTypedParam cx gWithTypeVars) zippedParams) (\sparams -> Eithers.bind (encodeTerm overlaySubs cx gWithTypeVars (extractBody term)) (\sbody -> Eithers.bind (encodeType cx g cod) (\scod ->         let gForLets =-                Logic.ifElse (Lists.isEmpty letBindings) gWithTypeVars (Scoping.extendGraphForLet (\g2 -> \b -> Logic.ifElse (Predicates.isComplexBinding g2 b) (Just (Core.TermLiteral (Core.LiteralBoolean True))) Nothing) gWithTypeVars (Core.Let {-                  Core.letBindings = letBindings,-                  Core.letBody = (Core.TermVariable (Core.Name "dummy"))}))+                Logic.ifElse (Lists.isEmpty letBindings) gWithTypeVars (Scoping.extendGraphForLet (\g2 -> \b -> Logic.ifElse (Predicates.isComplexBinding g2 b) (Just (Model.TermLiteral (Model.LiteralBoolean True))) Nothing) gWithTypeVars (Model.Let {+                  Model.letBindings = letBindings,+                  Model.letBody = (Model.TermVariable (Model.Name "dummy"))}))         in (Eithers.bind (Eithers.mapList (encodeLetBinding overlaySubs cx gForLets (Sets.fromList freeTypeVars)) letBindings) (\sbindings ->           let defBody =                   Logic.ifElse (Lists.isEmpty sbindings) sbody (Syntax.DataBlock (Syntax.BlockData {@@ -298,26 +300,26 @@             Syntax.defDefnBody = defBody}))))))))))  -- | Encode a Hydra function-valued term (lambda, project, cases, or unwrap) as a Scala expression-encodeFunction :: S.Set String -> t0 -> Graph.Graph -> M.Map Core.Name Core.Term -> Core.Term -> Maybe Core.Term -> Either Errors.Error Syntax.Data+encodeFunction :: S.Set String -> t0 -> Graph.Graph -> M.Map Model.Name Model.Term -> Model.Term -> Maybe Model.Term -> Either Errors.Error Syntax.Data encodeFunction overlaySubs cx g meta funTerm arg =     case (Strip.deannotateAndDetypeTerm funTerm) of-      Core.TermLambda v0 ->-        let param = Core.lambdaParameter v0-            v = Utils.scalaEscapeName (Core.unName param)-            body = Core.lambdaBody v0-            rawMdom = Core.lambdaDomain v0+      Model.TermLambda v0 ->+        let param = Model.lambdaParameter v0+            v = Utils.scalaEscapeName (Model.unName param)+            body = Model.lambdaBody v0+            rawMdom = Model.lambdaDomain v0             mdom =                     Optionals.bind rawMdom (\dom ->                       let freeVars = Variables.freeVariablesInType dom                           unqualifiedFreeVars =-                                  Sets.fromList (Lists.filter (\n -> Logic.not (Lists.member 46 (Strings.toList (Core.unName n)))) (Sets.toList freeVars))+                                  Sets.fromList (Lists.filter (\n -> Logic.not (Lists.member 46 (Strings.toList (Model.unName n)))) (Sets.toList freeVars))                           unresolvedVars = Sets.difference unqualifiedFreeVars (Graph.graphTypeVariables g)                       in (Logic.ifElse (Sets.isEmpty unresolvedVars) (Just dom) Nothing))         in (Eithers.bind (encodeTerm overlaySubs cx g body) (\sbody -> Eithers.bind (Optionals.match mdom (findSdom cx g meta) (\dom -> Eithers.bind (encodeType cx g dom) (\sdom -> Right (Just sdom)))) (\sdom -> Right (Utils.slambda v sbody sdom))))-      Core.TermUnwrap _ -> Optionals.match arg (Eithers.bind (findSdom cx g meta) (\sdom -> Right (Utils.slambda "x" (Utils.sname "x") sdom))) (\a -> encodeTerm overlaySubs cx g a)-      Core.TermProject v0 ->-        let fname = Utils.scalaEscapeName (Core.unName (Core.projectionFieldName v0))-            typeName = Core.projectionTypeName v0+      Model.TermUnwrap _ -> Optionals.match arg (Eithers.bind (findSdom cx g meta) (\sdom -> Right (Utils.slambda "x" (Utils.sname "x") sdom))) (\a -> encodeTerm overlaySubs cx g a)+      Model.TermProject v0 ->+        let fname = Utils.scalaEscapeName (Model.unName (Model.projectionFieldName v0))+            typeName = Model.projectionTypeName v0             pv = "x"         in (Optionals.match arg (Eithers.bind (Eithers.either (\_ -> Right Nothing) (\msdom -> Right msdom) (findSdom cx g meta)) (\msdom -> Right (Utils.slambda pv (Syntax.DataRef (Syntax.RefDataSelect (Syntax.SelectData {           Syntax.selectDataQual = (Utils.sname pv),@@ -326,15 +328,16 @@           Syntax.selectDataQual = sa,           Syntax.selectDataName = Syntax.NameData {             Syntax.nameDataValue = (Syntax.PredefString fname)}}))))))-      Core.TermCases v0 ->+      Model.TermCases v0 ->         let v = "v"-            tname = Core.caseStatementTypeName v0-            dom = Core.TypeVariable tname+            tname = Model.caseStatementTypeName v0+            dom = Model.TypeVariable tname             sn = Utils.nameOfType g dom-            cases = Core.caseStatementCases v0-            dflt = Core.caseStatementDefault v0+            cases = Model.caseStatementCases v0+            dflt = Model.caseStatementDefault v0+            isPolymorphic = Optionals.match (Resolution.resolveType g dom) False (\typ -> Resolution.fTypeIsPolymorphic typ)             ftypes = Eithers.either (\_ -> Maps.empty) (\x_ -> x_) (Resolution.fieldTypes cx g dom)-        in (Eithers.bind (Eithers.mapList (\f -> encodeCase overlaySubs cx g ftypes sn f) cases) (\fieldCases -> Eithers.bind (Optionals.match dflt (Right fieldCases) (\dfltTerm -> Eithers.bind (encodeTerm overlaySubs cx g dfltTerm) (\sdflt -> Right (Lists.concat2 fieldCases [+        in (Eithers.bind (Eithers.mapList (\f -> encodeCase overlaySubs cx g ftypes sn isPolymorphic f) cases) (\fieldCases -> Eithers.bind (Optionals.match dflt (Right fieldCases) (\dfltTerm -> Eithers.bind (encodeTerm overlaySubs cx g dfltTerm) (\sdflt -> Right (Lists.concat2 fieldCases [           Syntax.Case {             Syntax.casePat = Syntax.PatWildcard,             Syntax.caseCond = Nothing,@@ -346,17 +349,17 @@       _ -> Left (Errors.ErrorOther (Errors.OtherError "unsupported function"))  -- | Encode a let binding as a val or def declaration. outerTypeVars are type params from the enclosing scope.-encodeLetBinding :: S.Set String -> t0 -> Graph.Graph -> S.Set Core.Name -> Core.Binding -> Either Errors.Error Syntax.Stat+encodeLetBinding :: S.Set String -> t0 -> Graph.Graph -> S.Set Model.Name -> Model.Binding -> Either Errors.Error Syntax.Stat encodeLetBinding overlaySubs cx g outerTypeVars b = -      let bname = Utils.scalaEscapeName (Core.unName (Core.bindingName b))-          bterm = Core.bindingTerm b-          mts = Optionals.match (Core.bindingTypeScheme b) (Maps.lookup (Core.bindingName b) (Graph.graphBoundTypes g)) (\ts -> Just ts)+      let bname = Utils.scalaEscapeName (Model.unName (Model.bindingName b))+          bterm = Model.bindingTerm b+          mts = Optionals.match (Model.bindingTypeScheme b) (Maps.lookup (Model.bindingName b) (Graph.graphBoundTypes g)) (\ts -> Just ts)           isFn =-                  Optionals.match mts False (\ts -> case (Strip.deannotateType (Core.typeSchemeBody ts)) of-                    Core.TypeFunction _ -> True-                    Core.TypeForall v0 -> case (Strip.deannotateType (Core.forallTypeBody v0)) of-                      Core.TypeFunction _ -> True+                  Optionals.match mts False (\ts -> case (Strip.deannotateType (Model.typeSchemeBody ts)) of+                    Model.TypeFunction _ -> True+                    Model.TypeForall v0 -> case (Strip.deannotateType (Model.forallTypeBody v0)) of+                      Model.TypeFunction _ -> True                       _ -> False                     _ -> False)       in (Optionals.match mts (Eithers.bind (encodeTerm overlaySubs cx g bterm) (\srhs -> Right (Syntax.StatDefn (Syntax.DefnVal (Syntax.ValDefn {@@ -368,9 +371,9 @@               Syntax.nameDataValue = (Syntax.PredefString bname)}})],         Syntax.valDefnDecltpe = Nothing,         Syntax.valDefnRhs = srhs}))))) (\ts ->-        let newVars = Lists.filter (\v -> Logic.not (Sets.member v outerTypeVars)) (Core.typeSchemeVariables ts)+        let newVars = Lists.filter (\v -> Logic.not (Sets.member v outerTypeVars)) (Model.typeSchemeVariables ts)             useDef = Logic.or isFn (Logic.not (Lists.isEmpty newVars))-        in (Logic.ifElse useDef (encodeLocalDef overlaySubs cx g outerTypeVars bname bterm (Core.typeSchemeBody ts)) (Eithers.bind (encodeTerm overlaySubs cx g bterm) (\srhs -> Eithers.bind (encodeType cx g (Core.typeSchemeBody ts)) (\styp -> Right (Syntax.StatDefn (Syntax.DefnVal (Syntax.ValDefn {+        in (Logic.ifElse useDef (encodeLocalDef overlaySubs cx g outerTypeVars bname bterm (Model.typeSchemeBody ts)) (Eithers.bind (encodeTerm overlaySubs cx g bterm) (\srhs -> Eithers.bind (encodeType cx g (Model.typeSchemeBody ts)) (\styp -> Right (Syntax.StatDefn (Syntax.DefnVal (Syntax.ValDefn {           Syntax.valDefnMods = [             Syntax.ModLazy],           Syntax.valDefnPats = [@@ -381,36 +384,36 @@           Syntax.valDefnRhs = srhs})))))))))  -- | Encode a literal value as a Scala literal-encodeLiteral :: t0 -> t1 -> Core.Literal -> Either Errors.Error Syntax.Lit+encodeLiteral :: t0 -> t1 -> Model.Literal -> Either Errors.Error Syntax.Lit encodeLiteral cx g av =     case av of-      Core.LiteralBinary v0 -> Right (Syntax.LitBytes (Literals.binaryToBytes v0))-      Core.LiteralBoolean v0 -> Right (Syntax.LitBoolean v0)-      Core.LiteralDecimal v0 -> Right (Syntax.LitString (Literals.printDecimal v0))-      Core.LiteralFloat v0 -> case v0 of-        Core.FloatValueFloat32 v1 -> Right (Syntax.LitFloat v1)-        Core.FloatValueFloat64 v1 -> Right (Syntax.LitDouble v1)+      Model.LiteralBinary v0 -> Right (Syntax.LitBytes (Literals.binaryToBytes v0))+      Model.LiteralBoolean v0 -> Right (Syntax.LitBoolean v0)+      Model.LiteralDecimal v0 -> Right (Syntax.LitString (Literals.printDecimal v0))+      Model.LiteralFloat v0 -> case v0 of+        Model.FloatValueFloat32 v1 -> Right (Syntax.LitFloat v1)+        Model.FloatValueFloat64 v1 -> Right (Syntax.LitDouble v1)         _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected float value"))-      Core.LiteralInteger v0 -> case v0 of-        Core.IntegerValueBigint v1 -> Right (Syntax.LitLong (Literals.bigintToInt64 v1))-        Core.IntegerValueInt8 v1 -> Right (Syntax.LitByte v1)-        Core.IntegerValueInt16 v1 -> Right (Syntax.LitShort v1)-        Core.IntegerValueInt32 v1 -> Right (Syntax.LitInt v1)-        Core.IntegerValueInt64 v1 -> Right (Syntax.LitLong v1)-        Core.IntegerValueUint8 v1 -> Right (Syntax.LitByte (Literals.bigintToInt8 (Literals.uint8ToBigint v1)))-        Core.IntegerValueUint16 v1 -> Right (Syntax.LitInt (Literals.bigintToInt32 (Literals.uint16ToBigint v1)))-        Core.IntegerValueUint32 v1 -> Right (Syntax.LitLong (Literals.bigintToInt64 (Literals.uint32ToBigint v1)))-        Core.IntegerValueUint64 v1 -> Right (Syntax.LitLong (Literals.bigintToInt64 (Literals.uint64ToBigint v1)))+      Model.LiteralInteger v0 -> case v0 of+        Model.IntegerValueBigint v1 -> Right (Syntax.LitLong (Literals.bigintToInt64 v1))+        Model.IntegerValueInt8 v1 -> Right (Syntax.LitByte v1)+        Model.IntegerValueInt16 v1 -> Right (Syntax.LitShort v1)+        Model.IntegerValueInt32 v1 -> Right (Syntax.LitInt v1)+        Model.IntegerValueInt64 v1 -> Right (Syntax.LitLong v1)+        Model.IntegerValueUint8 v1 -> Right (Syntax.LitByte (Literals.bigintToInt8 (Literals.uint8ToBigint v1)))+        Model.IntegerValueUint16 v1 -> Right (Syntax.LitInt (Literals.bigintToInt32 (Literals.uint16ToBigint v1)))+        Model.IntegerValueUint32 v1 -> Right (Syntax.LitLong (Literals.bigintToInt64 (Literals.uint32ToBigint v1)))+        Model.IntegerValueUint64 v1 -> Right (Syntax.LitLong (Literals.bigintToInt64 (Literals.uint64ToBigint v1)))         _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected integer value"))-      Core.LiteralString v0 -> Right (Syntax.LitString v0)+      Model.LiteralString v0 -> Right (Syntax.LitString v0)       _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected literal"))  -- | Encode a local def. outerTypeVars are type params already in scope (don't redeclare them).-encodeLocalDef :: S.Set String -> t0 -> Graph.Graph -> S.Set Core.Name -> String -> Core.Term -> Core.Type -> Either Errors.Error Syntax.Stat+encodeLocalDef :: S.Set String -> t0 -> Graph.Graph -> S.Set Model.Name -> String -> Model.Term -> Model.Type -> Either Errors.Error Syntax.Stat encodeLocalDef overlaySubs cx g outerTypeVars lname term typ =        let freeTypeVars =-              Lists.filter (\v -> Logic.and (Logic.not (Lists.member 46 (Strings.toList (Core.unName v)))) (Logic.not (Sets.member v outerTypeVars))) (Sets.toList (Variables.freeVariablesInType typ))+              Lists.filter (\v -> Logic.and (Logic.not (Lists.member 46 (Strings.toList (Model.unName v)))) (Logic.not (Sets.member v outerTypeVars))) (Sets.toList (Variables.freeVariablesInType typ))           doms = extractDomains typ           paramNames = extractParams term           paramCount = Ordering.min (Lists.length paramNames) (Lists.length doms)@@ -431,9 +434,9 @@                     Graph.graphTypeVariables = (Sets.union allTypeVars (Graph.graphTypeVariables g))}       in (Eithers.bind (Eithers.mapList (encodeTypedParam cx gWithTypeVars) zippedParams) (\sparams -> Eithers.bind (encodeTerm overlaySubs cx gWithTypeVars (extractBody term)) (\sbody -> Eithers.bind (encodeType cx gWithTypeVars cod) (\scod ->         let gForLets =-                Logic.ifElse (Lists.isEmpty letBindings) gWithTypeVars (Scoping.extendGraphForLet (\g2 -> \b -> Logic.ifElse (Predicates.isComplexBinding g2 b) (Just (Core.TermLiteral (Core.LiteralBoolean True))) Nothing) gWithTypeVars (Core.Let {-                  Core.letBindings = letBindings,-                  Core.letBody = (Core.TermVariable (Core.Name "dummy"))}))+                Logic.ifElse (Lists.isEmpty letBindings) gWithTypeVars (Scoping.extendGraphForLet (\g2 -> \b -> Logic.ifElse (Predicates.isComplexBinding g2 b) (Just (Model.TermLiteral (Model.LiteralBoolean True))) Nothing) gWithTypeVars (Model.Let {+                  Model.letBindings = letBindings,+                  Model.letBody = (Model.TermVariable (Model.Name "dummy"))}))         in (Eithers.bind (Eithers.mapList (encodeLetBinding overlaySubs cx gForLets allTypeVars) letBindings) (\sbindings ->           let defBody =                   Logic.ifElse (Lists.isEmpty sbindings) sbody (Syntax.DataBlock (Syntax.BlockData {@@ -450,102 +453,107 @@             Syntax.defDefnBody = defBody}))))))))))  -- | Encode a Hydra term as a Scala expression-encodeTerm :: S.Set String -> t0 -> Graph.Graph -> Core.Term -> Either Errors.Error Syntax.Data+encodeTerm :: S.Set String -> t0 -> Graph.Graph -> Model.Term -> Either Errors.Error Syntax.Data encodeTerm overlaySubs cx g term0 =        let term = stripWrapEliminations term0       in case (Strip.deannotateTerm term) of-        Core.TermTypeApplication v0 ->+        Model.TermTypeApplication v0 ->           let collectTypeArgs =                   \t -> \acc -> case (Strip.deannotateTerm t) of-                    Core.TermTypeApplication v1 -> collectTypeArgs (Core.typeApplicationTermBody v1) (Lists.cons (Core.typeApplicationTermType v1) acc)+                    Model.TermTypeApplication v1 -> collectTypeArgs (Model.typeApplicationTermBody v1) (Lists.cons (Model.typeApplicationTermType v1) acc)                     _ -> (acc, t)-              collected = collectTypeArgs (Core.typeApplicationTermBody v0) [-                    Core.typeApplicationTermType v0]+              collected = collectTypeArgs (Model.typeApplicationTermBody v0) [+                    Model.typeApplicationTermType v0]               typeArgs = Pairs.first collected               innerTerm = Pairs.second collected               collectTypeLambdas =                       \t -> \acc -> case (Strip.deannotateTerm t) of-                        Core.TermTypeLambda v1 -> collectTypeLambdas (Core.typeLambdaBody v1) (Lists.cons (Core.typeLambdaParameter v1) acc)+                        Model.TermTypeLambda v1 -> collectTypeLambdas (Model.typeLambdaBody v1) (Lists.cons (Model.typeLambdaParameter v1) acc)                         _ -> (acc, t)               tlCollected = collectTypeLambdas innerTerm []               typeParams = Pairs.first tlCollected               bodyAfterTypeLambdas = Pairs.second tlCollected               substitutedBody = bodyAfterTypeLambdas           in case (Strip.deannotateTerm substitutedBody) of-            Core.TermProject _ -> encodeTerm overlaySubs cx g substitutedBody-            Core.TermCases _ -> encodeTerm overlaySubs cx g substitutedBody-            Core.TermUnwrap _ -> encodeTerm overlaySubs cx g substitutedBody-            Core.TermVariable v1 -> Eithers.bind (correctTypeApps v1 typeArgs g) (\correctedTypeArgs -> Eithers.bind (Eithers.mapList (\targ -> encodeType cx g targ) correctedTypeArgs) (\stypeArgs -> Optionals.match (Maps.lookup v1 (Graph.graphPrimitives g)) (Eithers.bind (encodeTerm overlaySubs cx g substitutedBody) (\svar -> Right (Utils.sapplyTypes svar stypeArgs))) (\_prim -> Right (Utils.sapplyTypes (Utils.sprim overlaySubs v1) stypeArgs))))+            Model.TermProject _ -> encodeTerm overlaySubs cx g substitutedBody+            Model.TermCases _ -> encodeTerm overlaySubs cx g substitutedBody+            Model.TermUnwrap _ -> encodeTerm overlaySubs cx g substitutedBody+            Model.TermVariable v1 -> Eithers.bind (correctTypeApps v1 typeArgs g) (\correctedTypeArgs -> Eithers.bind (Eithers.mapList (\targ -> encodeType cx g targ) correctedTypeArgs) (\stypeArgs -> Optionals.match (Maps.lookup v1 (Graph.graphPrimitives g)) (Eithers.bind (encodeTerm overlaySubs cx g substitutedBody) (\svar -> Right (Utils.sapplyTypes svar stypeArgs))) (\_prim -> Right (Utils.sapplyTypes (Utils.sprim overlaySubs v1) stypeArgs))))             _ -> encodeTerm overlaySubs cx g substitutedBody-        Core.TermTypeLambda v0 -> encodeTerm overlaySubs cx (Scoping.extendGraphForTypeLambda g v0) (Core.typeLambdaBody v0)-        Core.TermApplication v0 ->-          let fun = Core.applicationFunction v0-              arg = Core.applicationArgument v0+        Model.TermTypeLambda v0 -> encodeTerm overlaySubs cx (Scoping.extendGraphForTypeLambda g v0) (Model.typeLambdaBody v0)+        Model.TermApplication v0 ->+          let fun = Model.applicationFunction v0+              arg = Model.applicationArgument v0           in case (Strip.deannotateAndDetypeTerm fun) of-            Core.TermLambda v1 ->-              let lamBody = Core.lambdaBody v1+            Model.TermLambda v1 ->+              let lamBody = Model.lambdaBody v1               in case (Strip.deannotateAndDetypeTerm lamBody) of-                Core.TermApplication v2 ->-                  let innerFun = Core.applicationFunction v2+                Model.TermApplication v2 ->+                  let innerFun = Model.applicationFunction v2                   in case (Strip.deannotateAndDetypeTerm innerFun) of-                    Core.TermCases _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal innerFun) innerFun (Just arg)+                    Model.TermCases _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal innerFun) innerFun (Just arg)                     _ -> Eithers.bind (encodeTerm overlaySubs cx g fun) (\sfun -> Eithers.bind (encodeTerm overlaySubs cx g arg) (\sarg -> Right (Utils.sapply sfun [                       sarg])))                 _ -> Eithers.bind (encodeTerm overlaySubs cx g fun) (\sfun -> Eithers.bind (encodeTerm overlaySubs cx g arg) (\sarg -> Right (Utils.sapply sfun [                   sarg])))-            Core.TermProject v1 ->-              let fname = Utils.scalaEscapeName (Core.unName (Core.projectionFieldName v1))+            Model.TermProject v1 ->+              let fname = Utils.scalaEscapeName (Model.unName (Model.projectionFieldName v1))               in (Eithers.bind (encodeTerm overlaySubs cx g arg) (\sarg -> Right (Syntax.DataRef (Syntax.RefDataSelect (Syntax.SelectData {                 Syntax.selectDataQual = sarg,                 Syntax.selectDataName = Syntax.NameData {                   Syntax.nameDataValue = (Syntax.PredefString fname)}})))))-            Core.TermCases _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal fun) fun (Just arg)+            Model.TermCases _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal fun) fun (Just arg)             _ -> Eithers.bind (encodeTerm overlaySubs cx g fun) (\sfun -> Eithers.bind (encodeTerm overlaySubs cx g arg) (\sarg -> Right (Utils.sapply sfun [               sarg])))-        Core.TermLambda _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing-        Core.TermProject _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing-        Core.TermCases _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing-        Core.TermUnwrap _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing-        Core.TermList v0 -> Eithers.bind (Eithers.mapList (\e -> encodeTerm overlaySubs cx g e) v0) (\sels -> Right (Utils.sapply (Utils.sname "Seq") sels))-        Core.TermLiteral v0 -> Eithers.bind (encodeLiteral cx g v0) (\slit ->+        Model.TermLambda _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing+        Model.TermProject _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing+        Model.TermCases _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing+        Model.TermUnwrap _ -> encodeFunction overlaySubs cx g (Annotations.termAnnotationInternal term) term Nothing+        Model.TermList v0 -> Eithers.bind (Eithers.mapList (\e -> encodeTerm overlaySubs cx g e) v0) (\sels -> Right (Utils.sapply (Utils.sname "Seq") sels))+        Model.TermLiteral v0 -> Eithers.bind (encodeLiteral cx g v0) (\slit ->           let litData = Syntax.DataLit slit           in case v0 of-            Core.LiteralDecimal _ -> Right (Utils.sapply (Utils.sname "BigDecimal") [+            Model.LiteralDecimal _ -> Right (Utils.sapply (Utils.sname "BigDecimal") [               litData])-            Core.LiteralInteger v1 -> case v1 of-              Core.IntegerValueBigint v2 -> Right (Utils.sapply (Utils.sname "BigInt") [+            Model.LiteralInteger v1 -> case v1 of+              Model.IntegerValueBigint v2 -> Right (Utils.sapply (Utils.sname "BigInt") [                 Syntax.DataLit (Syntax.LitString (Literals.printBigint v2))])-              Core.IntegerValueUint64 v2 -> Right (Utils.sapply (Utils.sname "BigInt") [+              Model.IntegerValueUint64 v2 -> Right (Utils.sapply (Utils.sname "BigInt") [                 Syntax.DataLit (Syntax.LitString (Literals.printBigint (Literals.uint64ToBigint v2)))])               _ -> Right litData             _ -> Right litData)-        Core.TermMap v0 -> Eithers.bind (Eithers.mapList (\kv -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.first kv)) (\sk -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.second kv)) (\sv -> Right (Utils.sassign sk sv)))) (Maps.toList v0)) (\spairs -> Right (Utils.sapply (Utils.sname "Map") spairs))-        Core.TermWrap v0 -> encodeTerm overlaySubs cx g (Core.wrappedTermBody v0)-        Core.TermOptional v0 -> Optionals.match v0 (Right (Utils.sname "None")) (\t -> Eithers.bind (encodeTerm overlaySubs cx g t) (\s -> Right (Utils.sapply (Utils.sname "Some") [+        Model.TermMap v0 -> Eithers.bind (Eithers.mapList (\kv -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.first kv)) (\sk -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.second kv)) (\sv -> Right (Utils.sassign sk sv)))) (Maps.toList v0)) (\spairs -> Right (Utils.sapply (Utils.sname "Map") spairs))+        Model.TermWrap v0 -> encodeTerm overlaySubs cx g (Model.wrappedTermBody v0)+        Model.TermOptional v0 -> Optionals.match v0 (Right (Utils.sname "None")) (\t -> Eithers.bind (encodeTerm overlaySubs cx g t) (\s -> Right (Utils.sapply (Utils.sname "Some") [           s])))-        Core.TermRecord v0 ->-          let rname = Core.recordTypeName v0-              fields = Core.recordFields v0+        Model.TermRecord v0 ->+          let rname = Model.recordTypeName v0+              fields = Model.recordFields v0               n = Utils.scalaTypeName True rname-          in (Eithers.bind (Eithers.mapList (\f -> encodeTerm overlaySubs cx g (Core.fieldTerm f)) fields) (\args -> Right (Utils.sapply (Utils.sname n) args)))-        Core.TermSet v0 -> Eithers.bind (Eithers.mapList (\e -> encodeTerm overlaySubs cx g e) (Sets.toList v0)) (\sels -> Right (Utils.sapply (Utils.sname "scala.collection.immutable.Set") sels))-        Core.TermInject v0 ->-          let sn = Core.injectionTypeName v0-              fn = Core.fieldName (Core.injectionField v0)-              ft = Core.fieldTerm (Core.injectionField v0)+          in (Eithers.bind (Eithers.mapList (\f -> encodeTerm overlaySubs cx g (Model.fieldTerm f)) fields) (\args -> Right (Utils.sapply (Utils.sname n) args)))+        Model.TermSet v0 -> Eithers.bind (Eithers.mapList (\e -> encodeTerm overlaySubs cx g e) (Sets.toList v0)) (\sels -> Right (Utils.sapply (Utils.sname "scala.collection.immutable.Set") sels))+        Model.TermInject v0 ->+          let sn = Model.injectionTypeName v0+              fn = Model.fieldName (Model.injectionField v0)+              ft = Model.fieldTerm (Model.injectionField v0)               lhs = Utils.sname (Utils.qualifyUnionFieldName "UNION." (Just sn) fn)-              unionFtypes = Eithers.either (\_ -> Maps.empty) (\x_ -> x_) (Resolution.fieldTypes cx g (Core.TypeVariable sn))-          in (Logic.ifElse (Optionals.match (Maps.lookup fn unionFtypes) (case (Strip.deannotateAndDetypeTerm ft) of-            Core.TermUnit -> True-            Core.TermRecord v1 -> Equality.equal (Lists.length (Core.recordFields v1)) 0-            _ -> False) (\dom -> case (Strip.deannotateType dom) of-            Core.TypeUnit -> True-            Core.TypeRecord v1 -> Equality.equal (Lists.length v1) 0-            _ -> False)) (Right lhs) (Eithers.bind (encodeTerm overlaySubs cx g ft) (\sarg -> Right (Utils.sapply lhs [+              isPolymorphic =+                      Optionals.match (Resolution.resolveType g (Model.TypeVariable sn)) False (\typ -> Resolution.fTypeIsPolymorphic typ)+              unionFtypes = Eithers.either (\_ -> Maps.empty) (\x_ -> x_) (Resolution.fieldTypes cx g (Model.TypeVariable sn))+              unionFtypesLookup = Maps.lookup fn unionFtypes+              isValueUnit =+                      Optionals.match unionFtypesLookup (case (Strip.deannotateAndDetypeTerm ft) of+                        Model.TermUnit -> True+                        Model.TermRecord v1 -> Equality.equal (Lists.length (Model.recordFields v1)) 0+                        _ -> False) (\dom -> case (Strip.deannotateType dom) of+                        Model.TypeUnit -> True+                        Model.TypeRecord v1 -> Equality.equal (Lists.length v1) 0+                        _ -> False)+          in (Logic.ifElse isValueUnit (Logic.ifElse isPolymorphic (Right (Utils.sapply lhs [])) (Right lhs)) (Eithers.bind (encodeTerm overlaySubs cx g ft) (\sarg -> Right (Utils.sapply lhs [             sarg]))))-        Core.TermVariable v0 -> Optionals.match (Maps.lookup v0 (Graph.graphPrimitives g)) (-          let fullName = Core.unName v0+        Model.TermVariable v0 -> Optionals.match (Maps.lookup v0 (Graph.graphPrimitives g)) (+          let fullName = Model.unName v0               localName = Names.localNameOf v0               parts = Strings.splitOn "." fullName               numParts = Lists.length parts@@ -553,19 +561,19 @@                       Logic.ifElse (Ordering.lte numParts 1) (Utils.scalaEscapeName fullName) (Logic.ifElse (Equality.equal numParts 2) (Strings.concat2 (Optionals.withDefault fullName (Lists.head parts)) (Strings.concat2 "." (Utils.scalaEscapeName localName))) (Strings.join "." (Lists.concat2 (Lists.take (Math.sub numParts 1) parts) [                         Utils.scalaEscapeName localName])))           in (Right (Utils.sname escaped))) (\_prim -> Right (Utils.sprim overlaySubs v0))-        Core.TermAnnotated v0 -> encodeTerm overlaySubs cx g (Core.annotatedTermBody v0)-        Core.TermEither v0 -> Eithers.either (\l -> Eithers.bind (encodeTerm overlaySubs cx g l) (\sl -> Right (Utils.sapply (Utils.sname "Left") [+        Model.TermAnnotated v0 -> encodeTerm overlaySubs cx g (Model.annotatedTermBody v0)+        Model.TermEither v0 -> Eithers.either (\l -> Eithers.bind (encodeTerm overlaySubs cx g l) (\sl -> Right (Utils.sapply (Utils.sname "Left") [           sl]))) (\r -> Eithers.bind (encodeTerm overlaySubs cx g r) (\sr -> Right (Utils.sapply (Utils.sname "Right") [           sr]))) v0-        Core.TermPair v0 -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.first v0)) (\sf -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.second v0)) (\ss -> Right (Utils.sapply (Utils.sname "Tuple2") [+        Model.TermPair v0 -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.first v0)) (\sf -> Eithers.bind (encodeTerm overlaySubs cx g (Pairs.second v0)) (\ss -> Right (Utils.sapply (Utils.sname "Tuple2") [           sf,           ss])))-        Core.TermUnit -> Right (Syntax.DataLit Syntax.LitUnit)-        Core.TermLet v0 ->-          let bindings = Core.letBindings v0-              body = Core.letBody v0+        Model.TermUnit -> Right (Syntax.DataLit Syntax.LitUnit)+        Model.TermLet v0 ->+          let bindings = Model.letBindings v0+              body = Model.letBody v0               gLet =-                      Scoping.extendGraphForLet (\g2 -> \b -> Logic.ifElse (Predicates.isComplexBinding g2 b) (Just (Core.TermLiteral (Core.LiteralBoolean True))) Nothing) g v0+                      Scoping.extendGraphForLet (\g2 -> \b -> Logic.ifElse (Predicates.isComplexBinding g2 b) (Just (Model.TermLiteral (Model.LiteralBoolean True))) Nothing) g v0           in (Eithers.bind (Eithers.mapList (encodeLetBinding overlaySubs cx gLet (Graph.graphTypeVariables gLet)) bindings) (\sbindings -> Eithers.bind (encodeTerm overlaySubs cx gLet body) (\sbody -> Right (Syntax.DataBlock (Syntax.BlockData {             Syntax.blockDataStats = (Lists.concat2 sbindings [               Syntax.StatTerm sbody])})))))@@ -579,16 +587,16 @@           term = Packaging.termDefinitionBody td           lname = Utils.scalaEscapeName (Names.localNameOf name)           typ_ =-                  Optionals.match (Optionals.map Scoping.termSignatureToTypeScheme (Packaging.termDefinitionSignature td)) (Core.TypeVariable (Core.Name "hydra.core.Unit")) Core.typeSchemeBody+                  Optionals.match (Optionals.map Scoping.termSignatureToTypeScheme (Packaging.termDefinitionSignature td)) (Model.TypeVariable (Model.Name "hydra.core.model.Unit")) Model.typeSchemeBody           isFunctionType =                   case (Strip.deannotateType typ_) of-                    Core.TypeFunction _ -> True-                    Core.TypeForall v0 -> case (Strip.deannotateType (Core.forallTypeBody v0)) of-                      Core.TypeFunction _ -> True+                    Model.TypeFunction _ -> True+                    Model.TypeForall v0 -> case (Strip.deannotateType (Model.forallTypeBody v0)) of+                      Model.TypeFunction _ -> True                       _ -> False                     _ -> False           freeTypeVarsInTyp =-                  Lists.filter (\v -> Logic.not (Lists.member 46 (Strings.toList (Core.unName v)))) (Sets.toList (Variables.freeVariablesInType typ_))+                  Lists.filter (\v -> Logic.not (Lists.member 46 (Strings.toList (Model.unName v)))) (Sets.toList (Variables.freeVariablesInType typ_))       in (Logic.ifElse isFunctionType (encodeComplexTermDef overlaySubs cx g lname term typ_) (Logic.ifElse (Lists.isEmpty freeTypeVarsInTyp) (Eithers.bind (encodeType cx g typ_) (\stype -> Eithers.bind (encodeTerm overlaySubs cx g term) (\rhs -> Right (Syntax.StatDefn (Syntax.DefnVal (Syntax.ValDefn {         Syntax.valDefnMods = [           Syntax.ModLazy],@@ -609,102 +617,102 @@           Syntax.defDefnBody = rhs})))))))))  -- | Encode a Hydra type as a Scala type-encodeType :: t0 -> t1 -> Core.Type -> Either Errors.Error Syntax.Type+encodeType :: t0 -> t1 -> Model.Type -> Either Errors.Error Syntax.Type encodeType cx g t =     case (Strip.deannotateType t) of-      Core.TypeApplication v0 ->+      Model.TypeApplication v0 ->         let collectTypeArgs =                 \t2 -> \acc -> case (Strip.deannotateType t2) of-                  Core.TypeApplication v1 ->-                    let f2 = Core.applicationTypeFunction v1-                        a2 = Core.applicationTypeArgument v1+                  Model.TypeApplication v1 ->+                    let f2 = Model.applicationTypeFunction v1+                        a2 = Model.applicationTypeArgument v1                     in (collectTypeArgs f2 (Lists.cons a2 acc))                   _ -> (t2, acc)-            collected = collectTypeArgs (Core.TypeApplication v0) []+            collected = collectTypeArgs (Model.TypeApplication v0) []             baseFun = Pairs.first collected             allArgs = Pairs.second collected         in (Eithers.bind (encodeType cx g baseFun) (\sfun -> Eithers.bind (Eithers.mapList (\a -> encodeType cx g a) allArgs) (\sargs -> Right (Utils.stapply sfun sargs))))-      Core.TypeUnit -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+      Model.TypeUnit -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {         Syntax.nameTypeValue = "Unit"})))-      Core.TypeEither v0 ->-        let lt = Core.eitherTypeLeft v0-            rt = Core.eitherTypeRight v0+      Model.TypeEither v0 ->+        let lt = Model.eitherTypeLeft v0+            rt = Model.eitherTypeRight v0         in (Eithers.bind (encodeType cx g lt) (\slt -> Eithers.bind (encodeType cx g rt) (\srt -> Right (Utils.stapply2 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {           Syntax.nameTypeValue = "Either"}))) slt srt))))-      Core.TypeEffect v0 -> encodeType cx g v0-      Core.TypeFunction v0 ->-        let dom = Core.functionTypeDomain v0-            cod = Core.functionTypeCodomain v0+      Model.TypeEffect v0 -> encodeType cx g v0+      Model.TypeFunction v0 ->+        let dom = Model.functionTypeDomain v0+            cod = Model.functionTypeCodomain v0         in (Eithers.bind (encodeType cx g dom) (\sdom -> Eithers.bind (encodeType cx g cod) (\scod -> Right (Syntax.TypeFunction (Syntax.FunctionType {           Syntax.functionTypeParams = [             sdom],           Syntax.functionTypeRes = scod})))))-      Core.TypeList v0 -> Eithers.bind (encodeType cx g v0) (\slt -> Right (Utils.stapply1 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+      Model.TypeList v0 -> Eithers.bind (encodeType cx g v0) (\slt -> Right (Utils.stapply1 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {         Syntax.nameTypeValue = "scala.collection.immutable.Seq"}))) slt))-      Core.TypeLiteral v0 -> case v0 of-        Core.LiteralTypeBinary -> Right (Utils.stapply (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+      Model.TypeLiteral v0 -> case v0 of+        Model.LiteralTypeBinary -> Right (Utils.stapply (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {           Syntax.nameTypeValue = "scala.Array"}))) [           Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Byte"}))])-        Core.LiteralTypeBoolean -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+        Model.LiteralTypeBoolean -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {           Syntax.nameTypeValue = "scala.Boolean"})))-        Core.LiteralTypeDecimal -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+        Model.LiteralTypeDecimal -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {           Syntax.nameTypeValue = "scala.math.BigDecimal"})))-        Core.LiteralTypeFloat v1 -> case v1 of-          Core.FloatTypeFloat32 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+        Model.LiteralTypeFloat v1 -> case v1 of+          Model.FloatTypeFloat32 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Float"})))-          Core.FloatTypeFloat64 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.FloatTypeFloat64 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Double"})))           _ -> Left (Errors.ErrorOther (Errors.OtherError "unsupported float type"))-        Core.LiteralTypeInteger v1 -> case v1 of-          Core.IntegerTypeBigint -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+        Model.LiteralTypeInteger v1 -> case v1 of+          Model.IntegerTypeBigint -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.math.BigInt"})))-          Core.IntegerTypeInt8 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeInt8 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Byte"})))-          Core.IntegerTypeInt16 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeInt16 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Short"})))-          Core.IntegerTypeInt32 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeInt32 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Int"})))-          Core.IntegerTypeInt64 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeInt64 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Long"})))-          Core.IntegerTypeUint8 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeUint8 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Byte"})))-          Core.IntegerTypeUint16 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeUint16 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Int"})))-          Core.IntegerTypeUint32 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeUint32 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.Long"})))-          Core.IntegerTypeUint64 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+          Model.IntegerTypeUint64 -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {             Syntax.nameTypeValue = "scala.math.BigInt"})))           _ -> Left (Errors.ErrorOther (Errors.OtherError "unsupported integer type"))-        Core.LiteralTypeString -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+        Model.LiteralTypeString -> Right (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {           Syntax.nameTypeValue = "scala.Predef.String"})))         _ -> Left (Errors.ErrorOther (Errors.OtherError "unsupported literal type"))-      Core.TypeMap v0 ->-        let kt = Core.mapTypeKeys v0-            vt = Core.mapTypeValues v0+      Model.TypeMap v0 ->+        let kt = Model.mapTypeKeys v0+            vt = Model.mapTypeValues v0         in (Eithers.bind (encodeType cx g kt) (\skt -> Eithers.bind (encodeType cx g vt) (\svt -> Right (Utils.stapply2 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {           Syntax.nameTypeValue = "scala.collection.immutable.Map"}))) skt svt))))-      Core.TypeOptional v0 -> Eithers.bind (encodeType cx g v0) (\sot -> Right (Utils.stapply1 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+      Model.TypeOptional v0 -> Eithers.bind (encodeType cx g v0) (\sot -> Right (Utils.stapply1 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {         Syntax.nameTypeValue = "scala.Option"}))) sot))-      Core.TypePair v0 ->-        let ft = Core.pairTypeFirst v0-            st = Core.pairTypeSecond v0+      Model.TypePair v0 ->+        let ft = Model.pairTypeFirst v0+            st = Model.pairTypeSecond v0         in (Eithers.bind (encodeType cx g ft) (\sft -> Eithers.bind (encodeType cx g st) (\sst -> Right (Utils.stapply2 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {           Syntax.nameTypeValue = "Tuple2"}))) sft sst))))-      Core.TypeRecord _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous record type"))-      Core.TypeSet v0 -> Eithers.bind (encodeType cx g v0) (\sst -> Right (Utils.stapply1 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {+      Model.TypeRecord _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous record type"))+      Model.TypeSet v0 -> Eithers.bind (encodeType cx g v0) (\sst -> Right (Utils.stapply1 (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {         Syntax.nameTypeValue = "scala.collection.immutable.Set"}))) sst))-      Core.TypeUnion _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous union type"))-      Core.TypeWrap _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous wrap type"))-      Core.TypeForall v0 ->-        let v = Core.forallTypeParameter v0-            body = Core.forallTypeBody v0+      Model.TypeUnion _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous union type"))+      Model.TypeWrap _ -> Left (Errors.ErrorOther (Errors.OtherError "unexpected anonymous wrap type"))+      Model.TypeForall v0 ->+        let v = Model.forallTypeParameter v0+            body = Model.forallTypeBody v0         in (Eithers.bind (encodeType cx g body) (\sbody -> Right (Syntax.TypeLambda (Syntax.LambdaType {           Syntax.lambdaTypeTparams = [             Utils.stparam v],           Syntax.lambdaTypeTpe = sbody}))))-      Core.TypeVariable v0 ->-        let rawName = Core.unName v0+      Model.TypeVariable v0 ->+        let rawName = Model.unName v0             typeName = Logic.ifElse (Lists.member 46 (Strings.toList rawName)) rawName (Formatting.capitalize rawName)         in (Right (Syntax.TypeVar (Syntax.VarType {           Syntax.varTypeName = Syntax.NameType {@@ -716,17 +724,17 @@ encodeTypeDefinition cx g td =        let name = Packaging.typeDefinitionName td-          typ = Core.typeSchemeBody (Packaging.typeDefinitionBody td)+          typ = Model.typeSchemeBody (Packaging.typeDefinitionBody td)           lname = Names.localNameOf name           tname = Syntax.NameType {                 Syntax.nameTypeValue = lname}           dname = Syntax.NameData {                 Syntax.nameDataValue = (Syntax.PredefString lname)}           freeVars =-                  Lists.filter (\v -> Logic.not (Lists.member 46 (Strings.toList (Core.unName v)))) (Sets.toList (Variables.freeVariablesInType typ))+                  Lists.filter (\v -> Logic.not (Lists.member 46 (Strings.toList (Model.unName v)))) (Sets.toList (Variables.freeVariablesInType typ))           tparams =                   Lists.map (\_v ->-                    let vn = Formatting.capitalize (Core.unName _v)+                    let vn = Formatting.capitalize (Model.unName _v)                     in Syntax.ParamType {                       Syntax.paramTypeMods = [],                       Syntax.paramTypeName = (Syntax.NameValue vn),@@ -735,12 +743,12 @@                       Syntax.paramTypeVbounds = [],                       Syntax.paramTypeCbounds = []}) freeVars       in case (Strip.deannotateType typ) of-        Core.TypeForall v0 ->-          let forallBody = Core.forallTypeBody v0-              forallParam = Core.forallTypeParameter v0+        Model.TypeForall v0 ->+          let forallBody = Model.forallTypeBody v0+              forallParam = Model.forallTypeParameter v0               collectForallParams =                       \t -> \acc -> case (Strip.deannotateType t) of-                        Core.TypeForall v1 -> collectForallParams (Core.forallTypeBody v1) (Lists.cons (Core.forallTypeParameter v1) acc)+                        Model.TypeForall v1 -> collectForallParams (Model.forallTypeBody v1) (Lists.cons (Model.forallTypeParameter v1) acc)                         _ -> (acc, t)               collected = collectForallParams forallBody [                     forallParam]@@ -748,7 +756,7 @@               innerBody = Pairs.second collected               allTparams =                       Lists.map (\_v ->-                        let vn = Formatting.capitalize (Core.unName _v)+                        let vn = Formatting.capitalize (Model.unName _v)                         in Syntax.ParamType {                           Syntax.paramTypeMods = [],                           Syntax.paramTypeName = (Syntax.NameValue vn),@@ -757,7 +765,7 @@                           Syntax.paramTypeVbounds = [],                           Syntax.paramTypeCbounds = []}) allForallParams           in case (Strip.deannotateType innerBody) of-            Core.TypeRecord v1 -> (\rt -> Eithers.bind (Eithers.mapList (\f -> fieldToParam cx g f) rt) (\params -> Right (Syntax.StatDefn (Syntax.DefnClass (Syntax.ClassDefn {+            Model.TypeRecord v1 -> (\rt -> Eithers.bind (Eithers.mapList (\f -> fieldToParam cx g f) rt) (\params -> Right (Syntax.StatDefn (Syntax.DefnClass (Syntax.ClassDefn {               Syntax.classDefnMods = [                 Syntax.ModCase],               Syntax.classDefnName = tname,@@ -772,7 +780,7 @@                 Syntax.templateInits = [],                 Syntax.templateSelf = (Syntax.Self ()),                 Syntax.templateStats = []}}))))) v1-            Core.TypeUnion v1 -> (\g2 -> \rt -> Eithers.bind (Eithers.mapList (\f -> fieldToEnumCase cx g2 lname allTparams f) rt) (\cases -> Right (Syntax.StatDefn (Syntax.DefnEnum (Syntax.EnumDefn {+            Model.TypeUnion v1 -> (\g2 -> \rt -> Eithers.bind (Eithers.mapList (\f -> fieldToEnumCase cx g2 lname allTparams f) rt) (\cases -> Right (Syntax.StatDefn (Syntax.DefnEnum (Syntax.EnumDefn {               Syntax.enumDefnMods = [],               Syntax.enumDefnName = tname,               Syntax.enumDefnTparams = allTparams,@@ -785,7 +793,7 @@                 Syntax.templateInits = [],                 Syntax.templateSelf = (Syntax.Self ()),                 Syntax.templateStats = cases}}))))) g v1-            Core.TypeWrap v1 -> Eithers.bind (encodeType cx g v1) (\styp -> Right (Syntax.StatDefn (Syntax.DefnType (Syntax.TypeDefn {+            Model.TypeWrap v1 -> Eithers.bind (encodeType cx g v1) (\styp -> Right (Syntax.StatDefn (Syntax.DefnType (Syntax.TypeDefn {               Syntax.typeDefnMods = [],               Syntax.typeDefnName = tname,               Syntax.typeDefnTparams = allTparams,@@ -799,7 +807,7 @@                         Syntax.typeDefnTparams = allTparams,                         Syntax.typeDefnBody = styp})))               in (Eithers.either (\_ -> mkAlias (Utils.stref "Any")) mkAlias (encodeType cx2 g2 typ2))) cx g innerBody-        Core.TypeRecord v0 -> (\cx2 -> \g2 -> \rt2 -> Eithers.bind (Eithers.mapList (\f -> fieldToParam cx2 g2 f) rt2) (\params -> Right (Syntax.StatDefn (Syntax.DefnClass (Syntax.ClassDefn {+        Model.TypeRecord v0 -> (\cx2 -> \g2 -> \rt2 -> Eithers.bind (Eithers.mapList (\f -> fieldToParam cx2 g2 f) rt2) (\params -> Right (Syntax.StatDefn (Syntax.DefnClass (Syntax.ClassDefn {           Syntax.classDefnMods = [             Syntax.ModCase],           Syntax.classDefnName = tname,@@ -814,7 +822,7 @@             Syntax.templateInits = [],             Syntax.templateSelf = (Syntax.Self ()),             Syntax.templateStats = []}}))))) cx g v0-        Core.TypeUnion v0 -> (\tparams2 -> \cx2 -> \g2 -> \rt2 -> Eithers.bind (Eithers.mapList (\f -> fieldToEnumCase cx2 g2 lname tparams2 f) rt2) (\cases -> Right (Syntax.StatDefn (Syntax.DefnEnum (Syntax.EnumDefn {+        Model.TypeUnion v0 -> (\tparams2 -> \cx2 -> \g2 -> \rt2 -> Eithers.bind (Eithers.mapList (\f -> fieldToEnumCase cx2 g2 lname tparams2 f) rt2) (\cases -> Right (Syntax.StatDefn (Syntax.DefnEnum (Syntax.EnumDefn {           Syntax.enumDefnMods = [],           Syntax.enumDefnName = tname,           Syntax.enumDefnTparams = tparams2,@@ -827,7 +835,7 @@             Syntax.templateInits = [],             Syntax.templateSelf = (Syntax.Self ()),             Syntax.templateStats = cases}}))))) tparams cx g v0-        Core.TypeWrap v0 -> Eithers.bind (encodeType cx g v0) (\styp -> Right (Syntax.StatDefn (Syntax.DefnType (Syntax.TypeDefn {+        Model.TypeWrap v0 -> Eithers.bind (encodeType cx g v0) (\styp -> Right (Syntax.StatDefn (Syntax.DefnType (Syntax.TypeDefn {           Syntax.typeDefnMods = [],           Syntax.typeDefnName = tname,           Syntax.typeDefnTparams = tparams,@@ -843,7 +851,7 @@           in (Eithers.either (\_ -> mkAlias (Utils.stref "Any")) mkAlias (encodeType cx2 g2 typ2))) lname tparams cx g typ  -- | Encode a parameter with its type annotation-encodeTypedParam :: t0 -> t1 -> (Core.Name, Core.Type) -> Either Errors.Error Syntax.ParamData+encodeTypedParam :: t0 -> t1 -> (Model.Name, Model.Type) -> Either Errors.Error Syntax.ParamData encodeTypedParam cx g pair =        let pname = Utils.scalaEscapeName (Names.localNameOf (Pairs.first pair))@@ -855,110 +863,110 @@         Syntax.paramDataDefault = Nothing})))  -- | Encode an untyped application term by first inferring types-encodeUntypeApplicationTerm :: S.Set String -> Typing.InferenceContext -> Graph.Graph -> Core.Term -> Either Errors.Error Syntax.Data+encodeUntypeApplicationTerm :: S.Set String -> Typing.InferenceContext -> Graph.Graph -> Model.Term -> Either Errors.Error Syntax.Data encodeUntypeApplicationTerm overlaySubs cx g term =     Eithers.bind (Inference.inferInGraphContext cx g term) (\result -> encodeTerm overlaySubs cx g (Typing.inferenceResultTerm result))  -- | Extract the innermost body from a term-extractBody :: Core.Term -> Core.Term+extractBody :: Model.Term -> Model.Term extractBody t =     case (Strip.deannotateAndDetypeTerm t) of-      Core.TermLambda v0 -> extractBody (Core.lambdaBody v0)-      Core.TermTypeLambda v0 -> extractBody (Core.typeLambdaBody v0)-      Core.TermTypeApplication v0 -> extractBody (Core.typeApplicationTermBody v0)-      Core.TermLet v0 -> extractBody (Core.letBody v0)+      Model.TermLambda v0 -> extractBody (Model.lambdaBody v0)+      Model.TermTypeLambda v0 -> extractBody (Model.typeLambdaBody v0)+      Model.TermTypeApplication v0 -> extractBody (Model.typeApplicationTermBody v0)+      Model.TermLet v0 -> extractBody (Model.letBody v0)       _ -> t  -- | Extract the final return type from a function type-extractCodomain :: Core.Type -> Core.Type+extractCodomain :: Model.Type -> Model.Type extractCodomain t =     case (Strip.deannotateType t) of-      Core.TypeFunction v0 -> extractCodomain (Core.functionTypeCodomain v0)-      Core.TypeForall v0 -> extractCodomain (Core.forallTypeBody v0)+      Model.TypeFunction v0 -> extractCodomain (Model.functionTypeCodomain v0)+      Model.TypeForall v0 -> extractCodomain (Model.forallTypeBody v0)       _ -> t  -- | Extract direct-return (input-var, output-var) pairs from a domain type (#589)-extractDirectReturn :: S.Set Core.Name -> Core.Type -> [(Core.Name, Core.Name)]+extractDirectReturn :: S.Set Model.Name -> Model.Type -> [(Model.Name, Model.Name)] extractDirectReturn tparamSet t = extractDirectReturnGo tparamSet t  -- | Recursive worker for extractDirectReturn (#589)-extractDirectReturnGo :: S.Set Core.Name -> Core.Type -> [(Core.Name, Core.Name)]+extractDirectReturnGo :: S.Set Model.Name -> Model.Type -> [(Model.Name, Model.Name)] extractDirectReturnGo tparamSet t =     case (Strip.deannotateType t) of-      Core.TypeFunction v0 ->-        let dom = Strip.deannotateType (Core.functionTypeDomain v0)-            cod = Core.functionTypeCodomain v0+      Model.TypeFunction v0 ->+        let dom = Strip.deannotateType (Model.functionTypeDomain v0)+            cod = Model.functionTypeCodomain v0         in case dom of-          Core.TypeVariable v1 -> Logic.ifElse (Sets.member v1 tparamSet) (case (Strip.deannotateType cod) of-            Core.TypeFunction v2 ->-              let midArg = Strip.deannotateType (Core.functionTypeDomain v2)-                  retPart = Strip.deannotateType (Core.functionTypeCodomain v2)+          Model.TypeVariable v1 -> Logic.ifElse (Sets.member v1 tparamSet) (case (Strip.deannotateType cod) of+            Model.TypeFunction v2 ->+              let midArg = Strip.deannotateType (Model.functionTypeDomain v2)+                  retPart = Strip.deannotateType (Model.functionTypeCodomain v2)               in case midArg of-                Core.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) [] (case retPart of-                  Core.TypeVariable v4 -> Logic.ifElse (Sets.member v4 tparamSet) (Lists.singleton (v1, v4)) []+                Model.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) [] (case retPart of+                  Model.TypeVariable v4 -> Logic.ifElse (Sets.member v4 tparamSet) (Lists.singleton (v1, v4)) []                   _ -> [])                 _ -> case retPart of-                  Core.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) (Lists.singleton (v1, v3)) []+                  Model.TypeVariable v3 -> Logic.ifElse (Sets.member v3 tparamSet) (Lists.singleton (v1, v3)) []                   _ -> []             _ -> []) (extractDirectReturnGo tparamSet cod)           _ -> extractDirectReturnGo tparamSet cod       _ -> []  -- | Extract domain types from a function type-extractDomains :: Core.Type -> [Core.Type]+extractDomains :: Model.Type -> [Model.Type] extractDomains t =     case (Strip.deannotateType t) of-      Core.TypeFunction v0 -> Lists.cons (Core.functionTypeDomain v0) (extractDomains (Core.functionTypeCodomain v0))-      Core.TypeForall v0 -> extractDomains (Core.forallTypeBody v0)+      Model.TypeFunction v0 -> Lists.cons (Model.functionTypeDomain v0) (extractDomains (Model.functionTypeCodomain v0))+      Model.TypeForall v0 -> extractDomains (Model.forallTypeBody v0)       _ -> []  -- | Extract an (input-var, output-var) accumulator pair from a domain type (#589)-extractInOutPair :: Core.Type -> [(Core.Name, Core.Name)]+extractInOutPair :: Model.Type -> [(Model.Name, Model.Name)] extractInOutPair t =     case (Strip.deannotateType t) of-      Core.TypeFunction v0 -> case (Strip.deannotateType (Core.functionTypeDomain v0)) of-        Core.TypeVariable v1 ->-          let retType = unwrapReturnType (Core.functionTypeCodomain v0)+      Model.TypeFunction v0 -> case (Strip.deannotateType (Model.functionTypeDomain v0)) of+        Model.TypeVariable v1 ->+          let retType = unwrapReturnType (Model.functionTypeCodomain v0)           in case (Strip.deannotateType retType) of-            Core.TypePair v2 -> case (Strip.deannotateType (Core.pairTypeFirst v2)) of-              Core.TypeVariable v3 -> Lists.singleton (v1, v3)+            Model.TypePair v2 -> case (Strip.deannotateType (Model.pairTypeFirst v2)) of+              Model.TypeVariable v3 -> Lists.singleton (v1, v3)               _ -> []             _ -> []         _ -> []       _ -> []  -- | Extract let bindings from a term-extractLetBindings :: Core.Term -> [Core.Binding]+extractLetBindings :: Model.Term -> [Model.Binding] extractLetBindings t =     case (Strip.deannotateAndDetypeTerm t) of-      Core.TermLambda v0 -> extractLetBindings (Core.lambdaBody v0)-      Core.TermTypeLambda v0 -> extractLetBindings (Core.typeLambdaBody v0)-      Core.TermTypeApplication v0 -> extractLetBindings (Core.typeApplicationTermBody v0)-      Core.TermLet v0 -> Lists.concat2 (Core.letBindings v0) (extractLetBindings (Core.letBody v0))+      Model.TermLambda v0 -> extractLetBindings (Model.lambdaBody v0)+      Model.TermTypeLambda v0 -> extractLetBindings (Model.typeLambdaBody v0)+      Model.TermTypeApplication v0 -> extractLetBindings (Model.typeApplicationTermBody v0)+      Model.TermLet v0 -> Lists.concat2 (Model.letBindings v0) (extractLetBindings (Model.letBody v0))       _ -> []  -- | Extract parameter names from a term-extractParams :: Core.Term -> [Core.Name]+extractParams :: Model.Term -> [Model.Name] extractParams t =     case (Strip.deannotateAndDetypeTerm t) of-      Core.TermLambda v0 -> Lists.cons (Core.lambdaParameter v0) (extractParams (Core.lambdaBody v0))-      Core.TermTypeLambda v0 -> extractParams (Core.typeLambdaBody v0)-      Core.TermTypeApplication v0 -> extractParams (Core.typeApplicationTermBody v0)-      Core.TermLet v0 -> extractParams (Core.letBody v0)+      Model.TermLambda v0 -> Lists.cons (Model.lambdaParameter v0) (extractParams (Model.lambdaBody v0))+      Model.TermTypeLambda v0 -> extractParams (Model.typeLambdaBody v0)+      Model.TermTypeApplication v0 -> extractParams (Model.typeApplicationTermBody v0)+      Model.TermLet v0 -> extractParams (Model.letBody v0)       _ -> []  -- | Convert a field type to a Scala enum case-fieldToEnumCase :: t0 -> t1 -> String -> [Syntax.ParamType] -> Core.FieldType -> Either Errors.Error Syntax.Stat+fieldToEnumCase :: t0 -> t1 -> String -> [Syntax.ParamType] -> Model.FieldType -> Either Errors.Error Syntax.Stat fieldToEnumCase cx g parentName tparams ft = -      let fname = Utils.scalaEscapeEnumCaseName (Core.unName (Core.fieldTypeName ft))-          ftyp = Core.fieldTypeType ft+      let fname = Utils.scalaEscapeEnumCaseName (Model.unName (Model.fieldTypeName ft))+          ftyp = Model.fieldTypeType ft           caseName = Syntax.NameData {                 Syntax.nameDataValue = (Syntax.PredefString fname)}           isUnit =                   case (Strip.deannotateType ftyp) of-                    Core.TypeUnit -> True-                    Core.TypeRecord v0 -> Equality.equal (Lists.length v0) 0+                    Model.TypeUnit -> True+                    Model.TypeRecord v0 -> Equality.equal (Lists.length v0) 0                     _ -> False           parentType =                   Logic.ifElse (Lists.isEmpty tparams) (Syntax.TypeRef (Syntax.RefTypeName (Syntax.NameType {@@ -969,17 +977,18 @@       in (Eithers.bind (encodeType cx g ftyp) (\sftyp -> Right (Syntax.StatDefn (Syntax.DefnEnumCase (Syntax.EnumCaseDefn {         Syntax.enumCaseDefnMods = [],         Syntax.enumCaseDefnName = caseName,-        Syntax.enumCaseDefnTparams = [],+        Syntax.enumCaseDefnTparams = (Logic.ifElse isUnit tparams []),         Syntax.enumCaseDefnCtor = Syntax.PrimaryCtor {           Syntax.primaryCtorMods = [],           Syntax.primaryCtorName = (Syntax.NameValue ""),-          Syntax.primaryCtorParamss = [-            Logic.ifElse isUnit [] [+          Syntax.primaryCtorParamss = (Logic.ifElse isUnit (Logic.ifElse (Lists.isEmpty tparams) [] [+            []]) [+            [               Syntax.ParamData {                 Syntax.paramDataMods = [],                 Syntax.paramDataName = (Syntax.NameValue "value"),                 Syntax.paramDataDecltpe = (Just sftyp),-                Syntax.paramDataDefault = Nothing}]]},+                Syntax.paramDataDefault = Nothing}]])},         Syntax.enumCaseDefnInits = [           Syntax.Init {             Syntax.initTpe = parentType,@@ -987,11 +996,11 @@             Syntax.initArgss = []}]})))))  -- | Convert a field type to a Scala parameter-fieldToParam :: t0 -> t1 -> Core.FieldType -> Either Errors.Error Syntax.ParamData+fieldToParam :: t0 -> t1 -> Model.FieldType -> Either Errors.Error Syntax.ParamData fieldToParam cx g ft = -      let fname = Utils.scalaEscapeName (Core.unName (Core.fieldTypeName ft))-          ftyp = Core.fieldTypeType ft+      let fname = Utils.scalaEscapeName (Model.unName (Model.fieldTypeName ft))+          ftyp = Model.fieldTypeType ft       in (Eithers.bind (encodeType cx g ftyp) (\sftyp -> Right (Syntax.ParamData {         Syntax.paramDataMods = [],         Syntax.paramDataName = (Syntax.NameValue fname),@@ -1003,10 +1012,10 @@ filterByFlags xs flags = Lists.map (\p -> Pairs.first p) (Lists.filter (\p -> Pairs.second p) (Lists.zip xs flags))  -- | Find the domain type from annotations-findDomain :: t0 -> Graph.Graph -> M.Map Core.Name Core.Term -> Either Errors.Error Core.Type+findDomain :: t0 -> Graph.Graph -> M.Map Model.Name Model.Term -> Either Errors.Error Model.Type findDomain cx g meta =     Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g meta)) (\r -> Optionals.match r (Left (Errors.ErrorOther (Errors.OtherError "expected a typed term"))) (\t -> case (Strip.deannotateType t) of-      Core.TypeFunction v0 -> Right (Core.functionTypeDomain v0)+      Model.TypeFunction v0 -> Right (Model.functionTypeDomain v0)       _ -> Left (Errors.ErrorOther (Errors.OtherError "expected a function type"))))  -- | Find import statements for the module@@ -1017,24 +1026,24 @@       (Lists.map (toPrimImport overlaySubs) (Sets.toList primImps))])))  -- | If t is Pair(var, _), return the first component's variable name (#589)-findPairFirst :: Core.Type -> Maybe Core.Name+findPairFirst :: Model.Type -> Maybe Model.Name findPairFirst t =     case (Strip.deannotateType t) of-      Core.TypePair v0 -> case (Strip.deannotateType (Core.pairTypeFirst v0)) of-        Core.TypeVariable v1 -> Just v1+      Model.TypePair v0 -> case (Strip.deannotateType (Model.pairTypeFirst v0)) of+        Model.TypeVariable v1 -> Just v1         _ -> Nothing       _ -> Nothing  -- | Find the Scala domain type for a function from annotations-findSdom :: t0 -> Graph.Graph -> M.Map Core.Name Core.Term -> Either Errors.Error (Maybe Syntax.Type)+findSdom :: t0 -> Graph.Graph -> M.Map Model.Name Model.Term -> Either Errors.Error (Maybe Syntax.Type) findSdom cx g meta =     Eithers.bind (Eithers.bimap (\_de -> Errors.ErrorOther (Errors.OtherError (Errors.unDecodingError _de))) (\_a -> _a) (Annotations.getType g meta)) (\mtyp -> Optionals.match mtyp (Right Nothing) (\t -> case (Strip.deannotateType t) of-      Core.TypeFunction v0 ->-        let dom = Core.functionTypeDomain v0+      Model.TypeFunction v0 ->+        let dom = Model.functionTypeDomain v0         in (Eithers.bind (encodeType cx g dom) (\sdom -> Right (Just sdom)))-      Core.TypeForall v0 -> case (Strip.deannotateType (Core.forallTypeBody v0)) of-        Core.TypeFunction v1 ->-          let dom2 = Core.functionTypeDomain v1+      Model.TypeForall v0 -> case (Strip.deannotateType (Model.forallTypeBody v0)) of+        Model.TypeFunction v1 ->+          let dom2 = Model.functionTypeDomain v1           in (Eithers.bind (encodeType cx g dom2) (\sdom2 -> Right (Just sdom2)))         _ -> Right Nothing       _ -> Eithers.bind (encodeType cx g t) (\st -> Right (Just st))))@@ -1055,8 +1064,8 @@       in (Maps.alter (\mv -> Optionals.match mv (Just (Lists.singleton vv)) (\vs -> Just (Lists.concat2 vs (Lists.singleton vv)))) k m)) Maps.empty pairs  -- | True if a type-variable name has no namespace qualifier (#589)-isSimpleName :: Core.Name -> Bool-isSimpleName name = Equality.equal (Lists.length (Strings.splitOn "." (Core.unName name))) 1+isSimpleName :: Model.Name -> Bool+isSimpleName name = Equality.equal (Lists.length (Strings.splitOn "." (Model.unName name))) 1  -- | Convert a Hydra module to Scala source code moduleToScala :: S.Set String -> Packaging.Module -> [Packaging.Definition] -> t0 -> Graph.Graph -> Either Errors.Error (M.Map String String)@@ -1066,16 +1075,16 @@       in (Right (Maps.singleton (Names.moduleNameToFilePath Util.CaseConventionCamel (File.FileExtension "scala") (Packaging.moduleName mod)) s)))  -- | Lift a Name->Name substitution map to a Name->Type map (#589)-nameMapToTypeMap :: Ord t0 => (M.Map t0 Core.Name -> M.Map t0 Core.Type)-nameMapToTypeMap m = Maps.map (\vv -> Core.TypeVariable vv) m+nameMapToTypeMap :: Ord t0 => (M.Map t0 Model.Name -> M.Map t0 Model.Type)+nameMapToTypeMap m = Maps.map (\vv -> Model.TypeVariable vv) m  -- | Peel up to n curried domain types off a function type (#589)-peelDomainTypes :: Int -> Core.Type -> ([Core.Type], Core.Type)+peelDomainTypes :: Int -> Model.Type -> ([Model.Type], Model.Type) peelDomainTypes n t =     Logic.ifElse (Ordering.lte n 0) ([], t) (case (Strip.deannotateType t) of-      Core.TypeFunction v0 ->-        let rest = peelDomainTypes (Math.sub n 1) (Core.functionTypeCodomain v0)-        in (Lists.cons (Core.functionTypeDomain v0) (Pairs.first rest), (Pairs.second rest))+      Model.TypeFunction v0 ->+        let rest = peelDomainTypes (Math.sub n 1) (Model.functionTypeCodomain v0)+        in (Lists.cons (Model.functionTypeDomain v0) (Pairs.first rest), (Pairs.second rest))       _ -> ([], t))  -- | Compute the self-reference substitution over grouped accumulator pairs (#589)@@ -1089,56 +1098,56 @@     Logic.ifElse (Lists.member inVar outVars) (Lists.foldl (\s -> \vv -> Logic.ifElse (Equality.equal vv inVar) s (Maps.insert vv inVar s)) subst outVars) subst  -- | Strip wrap eliminations from terms (newtypes are erased in Scala)-stripWrapEliminations :: Core.Term -> Core.Term+stripWrapEliminations :: Model.Term -> Model.Term stripWrapEliminations t =     case (Strip.deannotateAndDetypeTerm t) of-      Core.TermApplication v0 ->-        let appFun = Core.applicationFunction v0-            appArg = Core.applicationArgument v0+      Model.TermApplication v0 ->+        let appFun = Model.applicationFunction v0+            appArg = Model.applicationArgument v0         in case (Strip.deannotateAndDetypeTerm appFun) of-          Core.TermUnwrap _ -> stripWrapEliminations appArg-          Core.TermApplication v1 ->-            let innerFun = Core.applicationFunction v1-                innerArg = Core.applicationArgument v1+          Model.TermUnwrap _ -> stripWrapEliminations appArg+          Model.TermApplication v1 ->+            let innerFun = Model.applicationFunction v1+                innerArg = Model.applicationArgument v1             in case (Strip.deannotateAndDetypeTerm innerFun) of-              Core.TermUnwrap _ -> stripWrapEliminations (Core.TermApplication (Core.Application {-                Core.applicationFunction = innerArg,-                Core.applicationArgument = appArg}))+              Model.TermUnwrap _ -> stripWrapEliminations (Model.TermApplication (Model.Application {+                Model.applicationFunction = innerArg,+                Model.applicationArgument = appArg}))               _ -> t           _ -> t       _ -> t  -- | Substitute type variables in t per subst (#589)-substituteTypeVarsWithTypes :: M.Map Core.Name Core.Type -> Core.Type -> Core.Type+substituteTypeVarsWithTypes :: M.Map Model.Name Model.Type -> Model.Type -> Model.Type substituteTypeVarsWithTypes subst t = substituteTypeVarsWithTypesGo subst (Strip.deannotateType t)  -- | Recursive worker for substituteTypeVarsWithTypes (#589)-substituteTypeVarsWithTypesGo :: M.Map Core.Name Core.Type -> Core.Type -> Core.Type+substituteTypeVarsWithTypesGo :: M.Map Model.Name Model.Type -> Model.Type -> Model.Type substituteTypeVarsWithTypesGo subst t =     case (Strip.deannotateType t) of-      Core.TypeVariable v0 -> Optionals.match (Maps.lookup v0 subst) t (\rep -> rep)-      Core.TypeFunction v0 -> Core.TypeFunction (Core.FunctionType {-        Core.functionTypeDomain = (substituteTypeVarsWithTypesGo subst (Core.functionTypeDomain v0)),-        Core.functionTypeCodomain = (substituteTypeVarsWithTypesGo subst (Core.functionTypeCodomain v0))})-      Core.TypeApplication v0 -> Core.TypeApplication (Core.ApplicationType {-        Core.applicationTypeFunction = (substituteTypeVarsWithTypesGo subst (Core.applicationTypeFunction v0)),-        Core.applicationTypeArgument = (substituteTypeVarsWithTypesGo subst (Core.applicationTypeArgument v0))})-      Core.TypeList v0 -> Core.TypeList (substituteTypeVarsWithTypesGo subst v0)-      Core.TypeSet v0 -> Core.TypeSet (substituteTypeVarsWithTypesGo subst v0)-      Core.TypeOptional v0 -> Core.TypeOptional (substituteTypeVarsWithTypesGo subst v0)-      Core.TypeEffect v0 -> Core.TypeEffect (substituteTypeVarsWithTypesGo subst v0)-      Core.TypeMap v0 -> Core.TypeMap (Core.MapType {-        Core.mapTypeKeys = (substituteTypeVarsWithTypesGo subst (Core.mapTypeKeys v0)),-        Core.mapTypeValues = (substituteTypeVarsWithTypesGo subst (Core.mapTypeValues v0))})-      Core.TypePair v0 -> Core.TypePair (Core.PairType {-        Core.pairTypeFirst = (substituteTypeVarsWithTypesGo subst (Core.pairTypeFirst v0)),-        Core.pairTypeSecond = (substituteTypeVarsWithTypesGo subst (Core.pairTypeSecond v0))})-      Core.TypeEither v0 -> Core.TypeEither (Core.EitherType {-        Core.eitherTypeLeft = (substituteTypeVarsWithTypesGo subst (Core.eitherTypeLeft v0)),-        Core.eitherTypeRight = (substituteTypeVarsWithTypesGo subst (Core.eitherTypeRight v0))})-      Core.TypeForall v0 -> Core.TypeForall (Core.ForallType {-        Core.forallTypeParameter = (Core.forallTypeParameter v0),-        Core.forallTypeBody = (substituteTypeVarsWithTypesGo subst (Core.forallTypeBody v0))})+      Model.TypeVariable v0 -> Optionals.match (Maps.lookup v0 subst) t (\rep -> rep)+      Model.TypeFunction v0 -> Model.TypeFunction (Model.FunctionType {+        Model.functionTypeDomain = (substituteTypeVarsWithTypesGo subst (Model.functionTypeDomain v0)),+        Model.functionTypeCodomain = (substituteTypeVarsWithTypesGo subst (Model.functionTypeCodomain v0))})+      Model.TypeApplication v0 -> Model.TypeApplication (Model.ApplicationType {+        Model.applicationTypeFunction = (substituteTypeVarsWithTypesGo subst (Model.applicationTypeFunction v0)),+        Model.applicationTypeArgument = (substituteTypeVarsWithTypesGo subst (Model.applicationTypeArgument v0))})+      Model.TypeList v0 -> Model.TypeList (substituteTypeVarsWithTypesGo subst v0)+      Model.TypeSet v0 -> Model.TypeSet (substituteTypeVarsWithTypesGo subst v0)+      Model.TypeOptional v0 -> Model.TypeOptional (substituteTypeVarsWithTypesGo subst v0)+      Model.TypeEffect v0 -> Model.TypeEffect (substituteTypeVarsWithTypesGo subst v0)+      Model.TypeMap v0 -> Model.TypeMap (Model.MapType {+        Model.mapTypeKeys = (substituteTypeVarsWithTypesGo subst (Model.mapTypeKeys v0)),+        Model.mapTypeValues = (substituteTypeVarsWithTypesGo subst (Model.mapTypeValues v0))})+      Model.TypePair v0 -> Model.TypePair (Model.PairType {+        Model.pairTypeFirst = (substituteTypeVarsWithTypesGo subst (Model.pairTypeFirst v0)),+        Model.pairTypeSecond = (substituteTypeVarsWithTypesGo subst (Model.pairTypeSecond v0))})+      Model.TypeEither v0 -> Model.TypeEither (Model.EitherType {+        Model.eitherTypeLeft = (substituteTypeVarsWithTypesGo subst (Model.eitherTypeLeft v0)),+        Model.eitherTypeRight = (substituteTypeVarsWithTypesGo subst (Model.eitherTypeRight v0))})+      Model.TypeForall v0 -> Model.TypeForall (Model.ForallType {+        Model.forallTypeParameter = (Model.forallTypeParameter v0),+        Model.forallTypeBody = (substituteTypeVarsWithTypesGo subst (Model.forallTypeBody v0))})       _ -> t  -- | Create an element import statement@@ -1158,11 +1167,12 @@        let raw = Packaging.unModuleName ns           parts = Strings.splitOn "." raw-          sub = Strings.join "." (Lists.drop 2 parts)+          sub = Strings.join "." (Lists.drop 3 parts)           redirected =-                  Logic.ifElse (Logic.and (Logic.and (Equality.equal (Lists.length parts) 3) (Equality.equal (Lists.take 2 parts) [+                  Logic.ifElse (Logic.and (Logic.and (Equality.equal (Lists.length parts) 4) (Equality.equal (Lists.take 3 parts) [                     "hydra",-                    "lib"])) (Sets.member sub overlaySubs)) (Strings.concat2 "hydra.overlay.scala.lib." sub) raw+                    "core",+                    "lib"])) (Sets.member sub overlaySubs)) (Strings.concat2 "hydra.core.overlay.scala.lib." sub) raw           redirectedName =                   Syntax.NameData {                     Syntax.nameDataValue = (Syntax.PredefString (Strings.join "." (Strings.splitOn "." redirected)))}@@ -1189,9 +1199,9 @@           Syntax.nameTypeValue = s}}))  -- | Unwrap a (possibly curried/applied) type down to its ultimate return type (#589)-unwrapReturnType :: Core.Type -> Core.Type+unwrapReturnType :: Model.Type -> Model.Type unwrapReturnType t =     case (Strip.deannotateType t) of-      Core.TypeFunction v0 -> unwrapReturnType (Core.functionTypeCodomain v0)-      Core.TypeApplication v0 -> unwrapReturnType (Core.applicationTypeArgument v0)+      Model.TypeFunction v0 -> unwrapReturnType (Model.functionTypeCodomain v0)+      Model.TypeApplication v0 -> unwrapReturnType (Model.applicationTypeArgument v0)       _ -> t
+ src/main/haskell/Hydra/Scala/Dsl/Syntax.hs view
@@ -0,0 +1,11762 @@+-- Note: this is an automatically generated file. Do not edit.++-- | DSL functions for hydra.scala.syntax++module Hydra.Scala.Dsl.Syntax where++import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Scala.Syntax as Syntax+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void+import qualified Data.Int as I++-- | DSL constructor for hydra.scala.syntax.AlternativePat+alternativePat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.AlternativePat+alternativePat lhs rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AlternativePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.AlternativePat+alternativePatLhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat+alternativePatLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AlternativePat"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.AlternativePat+alternativePatRhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat+alternativePatRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AlternativePat"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.AlternativePat+alternativePatWithLhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.AlternativePat+alternativePatWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AlternativePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AlternativePat"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.AlternativePat+alternativePatWithRhs :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.AlternativePat+alternativePatWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AlternativePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AlternativePat"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.AndType+andType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AndType+andType lhs rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AndType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.AndType+andTypeLhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type+andTypeLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AndType"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.AndType+andTypeRhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type+andTypeRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AndType"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.AndType+andTypeWithLhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AndType+andTypeWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AndType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AndType"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.AndType+andTypeWithRhs :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AndType+andTypeWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AndType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AndType"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.AnnotMod+annotMod :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.AnnotMod+annotMod init =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotMod"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Typed.unTypedTerm init)}]}))++-- | DSL accessor for the init field of hydra.scala.syntax.AnnotMod+annotModInit :: Typed.TypedTerm Syntax.AnnotMod -> Typed.TypedTerm Syntax.Init+annotModInit x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotMod"),+        Model.projectionFieldName = (Model.Name "init")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the init field of hydra.scala.syntax.AnnotMod+annotModWithInit :: Typed.TypedTerm Syntax.AnnotMod -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.AnnotMod+annotModWithInit original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotMod"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.AnnotateData+annotateData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateData+annotateData expr annots =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotateData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)},+        Model.Field {+          Model.fieldName = (Model.Name "annots"),+          Model.fieldTerm = (Typed.unTypedTerm annots)}]}))++-- | DSL accessor for the annots field of hydra.scala.syntax.AnnotateData+annotateDataAnnots :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm [Syntax.AnnotMod]+annotateDataAnnots x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateData"),+        Model.projectionFieldName = (Model.Name "annots")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the expr field of hydra.scala.syntax.AnnotateData+annotateDataExpr :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm Syntax.Data+annotateDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annots field of hydra.scala.syntax.AnnotateData+annotateDataWithAnnots :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateData+annotateDataWithAnnots original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotateData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "annots"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the expr field of hydra.scala.syntax.AnnotateData+annotateDataWithExpr :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AnnotateData+annotateDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotateData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "annots"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateData"),+              Model.projectionFieldName = (Model.Name "annots")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.AnnotateType+annotateType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateType+annotateType tpe annots =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotateType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)},+        Model.Field {+          Model.fieldName = (Model.Name "annots"),+          Model.fieldTerm = (Typed.unTypedTerm annots)}]}))++-- | DSL accessor for the annots field of hydra.scala.syntax.AnnotateType+annotateTypeAnnots :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm [Syntax.AnnotMod]+annotateTypeAnnots x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateType"),+        Model.projectionFieldName = (Model.Name "annots")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.AnnotateType+annotateTypeTpe :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm Syntax.Type+annotateTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the annots field of hydra.scala.syntax.AnnotateType+annotateTypeWithAnnots :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm [Syntax.AnnotMod] -> Typed.TypedTerm Syntax.AnnotateType+annotateTypeWithAnnots original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotateType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "annots"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.AnnotateType+annotateTypeWithTpe :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AnnotateType+annotateTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AnnotateType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "annots"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AnnotateType"),+              Model.projectionFieldName = (Model.Name "annots")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.scala.syntax.AnonymousData wrapper+anonymousData :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.AnonymousData+anonymousData x =+    Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+      Model.wrappedTermTypeName = (Model.Name "hydra.scala.syntax.AnonymousData"),+      Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL constructor for the hydra.scala.syntax.AnonymousNameType wrapper+anonymousNameType :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.AnonymousNameType+anonymousNameType x =+    Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+      Model.wrappedTermTypeName = (Model.Name "hydra.scala.syntax.AnonymousNameType"),+      Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.ApplyData+applyData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyData+applyData fun args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Typed.unTypedTerm fun)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.ApplyData+applyDataArgs :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm [Syntax.Data]+applyDataArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyData"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the fun field of hydra.scala.syntax.ApplyData+applyDataFun :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm Syntax.Data+applyDataFun x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyData"),+        Model.projectionFieldName = (Model.Name "fun")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.ApplyData+applyDataWithArgs :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyData+applyDataWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyData"),+              Model.projectionFieldName = (Model.Name "fun")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the fun field of hydra.scala.syntax.ApplyData+applyDataWithFun :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyData+applyDataWithFun original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ApplyInfixData+applyInfixData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyInfixData+applyInfixData lhs op targs args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm op)},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Typed.unTypedTerm targs)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.ApplyInfixData+applyInfixDataArgs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Data]+applyInfixDataArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.ApplyInfixData+applyInfixDataLhs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.Data+applyInfixDataLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the op field of hydra.scala.syntax.ApplyInfixData+applyInfixDataOp :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.NameData+applyInfixDataOp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+        Model.projectionFieldName = (Model.Name "op")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the targs field of hydra.scala.syntax.ApplyInfixData+applyInfixDataTargs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Type]+applyInfixDataTargs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+        Model.projectionFieldName = (Model.Name "targs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.ApplyInfixData+applyInfixDataWithArgs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyInfixData+applyInfixDataWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "targs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the lhs field of hydra.scala.syntax.ApplyInfixData+applyInfixDataWithLhs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyInfixData+applyInfixDataWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "targs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the op field of hydra.scala.syntax.ApplyInfixData+applyInfixDataWithOp :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ApplyInfixData+applyInfixDataWithOp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "targs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the targs field of hydra.scala.syntax.ApplyInfixData+applyInfixDataWithTargs :: Typed.TypedTerm Syntax.ApplyInfixData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyInfixData+applyInfixDataWithTargs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ApplyInfixType+applyInfixType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyInfixType+applyInfixType lhs op rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm op)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.ApplyInfixType+applyInfixTypeLhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type+applyInfixTypeLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the op field of hydra.scala.syntax.ApplyInfixType+applyInfixTypeOp :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.NameType+applyInfixTypeOp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+        Model.projectionFieldName = (Model.Name "op")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.ApplyInfixType+applyInfixTypeRhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type+applyInfixTypeRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.ApplyInfixType+applyInfixTypeWithLhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyInfixType+applyInfixTypeWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the op field of hydra.scala.syntax.ApplyInfixType+applyInfixTypeWithOp :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ApplyInfixType+applyInfixTypeWithOp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.ApplyInfixType+applyInfixTypeWithRhs :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyInfixType+applyInfixTypeWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyInfixType"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ApplyType+applyType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyType+applyType tpe args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.ApplyType+applyTypeArgs :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm [Syntax.Type]+applyTypeArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyType"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.ApplyTypeData+applyTypeData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyTypeData+applyTypeData lhs op targs args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm op)},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Typed.unTypedTerm targs)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.ApplyTypeData+applyTypeDataArgs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Data]+applyTypeDataArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.ApplyTypeData+applyTypeDataLhs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.Data+applyTypeDataLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the op field of hydra.scala.syntax.ApplyTypeData+applyTypeDataOp :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.NameData+applyTypeDataOp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+        Model.projectionFieldName = (Model.Name "op")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the targs field of hydra.scala.syntax.ApplyTypeData+applyTypeDataTargs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Type]+applyTypeDataTargs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+        Model.projectionFieldName = (Model.Name "targs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.ApplyTypeData+applyTypeDataWithArgs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyTypeData+applyTypeDataWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "targs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the lhs field of hydra.scala.syntax.ApplyTypeData+applyTypeDataWithLhs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyTypeData+applyTypeDataWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "targs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the op field of hydra.scala.syntax.ApplyTypeData+applyTypeDataWithOp :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ApplyTypeData+applyTypeDataWithOp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "targs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the targs field of hydra.scala.syntax.ApplyTypeData+applyTypeDataWithTargs :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyTypeData+applyTypeDataWithTargs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyTypeData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.ApplyType+applyTypeTpe :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm Syntax.Type+applyTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.ApplyType+applyTypeWithArgs :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ApplyType+applyTypeWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.ApplyType+applyTypeWithTpe :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ApplyType+applyTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyType"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ApplyUnaryData+applyUnaryData :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyUnaryData+applyUnaryData op arg =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyUnaryData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm op)},+        Model.Field {+          Model.fieldName = (Model.Name "arg"),+          Model.fieldTerm = (Typed.unTypedTerm arg)}]}))++-- | DSL accessor for the arg field of hydra.scala.syntax.ApplyUnaryData+applyUnaryDataArg :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.Data+applyUnaryDataArg x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUnaryData"),+        Model.projectionFieldName = (Model.Name "arg")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the op field of hydra.scala.syntax.ApplyUnaryData+applyUnaryDataOp :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.NameData+applyUnaryDataOp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUnaryData"),+        Model.projectionFieldName = (Model.Name "op")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the arg field of hydra.scala.syntax.ApplyUnaryData+applyUnaryDataWithArg :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyUnaryData+applyUnaryDataWithArg original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyUnaryData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUnaryData"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "arg"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the op field of hydra.scala.syntax.ApplyUnaryData+applyUnaryDataWithOp :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ApplyUnaryData+applyUnaryDataWithOp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyUnaryData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "arg"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUnaryData"),+              Model.projectionFieldName = (Model.Name "arg")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ApplyUsingData+applyUsingData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyUsingData+applyUsingData fun targs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyUsingData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Typed.unTypedTerm fun)},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Typed.unTypedTerm targs)}]}))++-- | DSL accessor for the fun field of hydra.scala.syntax.ApplyUsingData+applyUsingDataFun :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm Syntax.Data+applyUsingDataFun x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUsingData"),+        Model.projectionFieldName = (Model.Name "fun")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the targs field of hydra.scala.syntax.ApplyUsingData+applyUsingDataTargs :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm [Syntax.Data]+applyUsingDataTargs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUsingData"),+        Model.projectionFieldName = (Model.Name "targs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the fun field of hydra.scala.syntax.ApplyUsingData+applyUsingDataWithFun :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ApplyUsingData+applyUsingDataWithFun original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyUsingData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUsingData"),+              Model.projectionFieldName = (Model.Name "targs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the targs field of hydra.scala.syntax.ApplyUsingData+applyUsingDataWithTargs :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.ApplyUsingData+applyUsingDataWithTargs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ApplyUsingData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ApplyUsingData"),+              Model.projectionFieldName = (Model.Name "fun")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "targs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.AscribeData+ascribeData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AscribeData+ascribeData expr tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AscribeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the expr field of hydra.scala.syntax.AscribeData+ascribeDataExpr :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Data+ascribeDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AscribeData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.AscribeData+ascribeDataTpe :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Type+ascribeDataTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AscribeData"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expr field of hydra.scala.syntax.AscribeData+ascribeDataWithExpr :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AscribeData+ascribeDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AscribeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AscribeData"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.AscribeData+ascribeDataWithTpe :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.AscribeData+ascribeDataWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AscribeData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AscribeData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.AssignData+assignData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AssignData+assignData lhs rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AssignData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.AssignData+assignDataLhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data+assignDataLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AssignData"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.AssignData+assignDataRhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data+assignDataRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AssignData"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.AssignData+assignDataWithLhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AssignData+assignDataWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AssignData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AssignData"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.AssignData+assignDataWithRhs :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.AssignData+assignDataWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.AssignData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.AssignData"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.BindPat+bindPat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.BindPat+bindPat lhs rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.BindPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.BindPat+bindPatLhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat+bindPatLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.BindPat"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.BindPat+bindPatRhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat+bindPatRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.BindPat"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.BindPat+bindPatWithLhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.BindPat+bindPatWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.BindPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.BindPat"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.BindPat+bindPatWithRhs :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.BindPat+bindPatWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.BindPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.BindPat"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.BlockData+blockData :: Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.BlockData+blockData stats =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.BlockData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm stats)}]}))++-- | DSL accessor for the stats field of hydra.scala.syntax.BlockData+blockDataStats :: Typed.TypedTerm Syntax.BlockData -> Typed.TypedTerm [Syntax.Stat]+blockDataStats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.BlockData"),+        Model.projectionFieldName = (Model.Name "stats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the stats field of hydra.scala.syntax.BlockData+blockDataWithStats :: Typed.TypedTerm Syntax.BlockData -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.BlockData+blockDataWithStats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.BlockData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ByNameType+byNameType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ByNameType+byNameType tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ByNameType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.ByNameType+byNameTypeTpe :: Typed.TypedTerm Syntax.ByNameType -> Typed.TypedTerm Syntax.Type+byNameTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ByNameType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the tpe field of hydra.scala.syntax.ByNameType+byNameTypeWithTpe :: Typed.TypedTerm Syntax.ByNameType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ByNameType+byNameTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ByNameType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.Case+case_ :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Case+case_ pat cond body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Case"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm pat)},+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Typed.unTypedTerm cond)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.Case+caseBody :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Data+caseBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the cond field of hydra.scala.syntax.Case+caseCond :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm (Maybe Syntax.Data)+caseCond x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+        Model.projectionFieldName = (Model.Name "cond")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.CaseGeneratorEnumerator+caseGeneratorEnumerator :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.CaseGeneratorEnumerator+caseGeneratorEnumerator pat rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm pat)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the pat field of hydra.scala.syntax.CaseGeneratorEnumerator+caseGeneratorEnumeratorPat :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Pat+caseGeneratorEnumeratorPat x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),+        Model.projectionFieldName = (Model.Name "pat")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.CaseGeneratorEnumerator+caseGeneratorEnumeratorRhs :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Data+caseGeneratorEnumeratorRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the pat field of hydra.scala.syntax.CaseGeneratorEnumerator+caseGeneratorEnumeratorWithPat :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.CaseGeneratorEnumerator+caseGeneratorEnumeratorWithPat original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.CaseGeneratorEnumerator+caseGeneratorEnumeratorWithRhs :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.CaseGeneratorEnumerator+caseGeneratorEnumeratorWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"),+              Model.projectionFieldName = (Model.Name "pat")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the pat field of hydra.scala.syntax.Case+casePat :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Pat+casePat x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+        Model.projectionFieldName = (Model.Name "pat")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL injection for the case variant of hydra.scala.syntax.CaseTree+caseTreeCase :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.CaseTree+caseTreeCase x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.CaseTree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "case"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the typeCase variant of hydra.scala.syntax.CaseTree+caseTreeTypeCase :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.CaseTree+caseTreeTypeCase x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.CaseTree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "typeCase"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL updater for the body field of hydra.scala.syntax.Case+caseWithBody :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Case+caseWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Case"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+              Model.projectionFieldName = (Model.Name "pat")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+              Model.projectionFieldName = (Model.Name "cond")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the cond field of hydra.scala.syntax.Case+caseWithCond :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.Case+caseWithCond original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Case"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+              Model.projectionFieldName = (Model.Name "pat")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the pat field of hydra.scala.syntax.Case+caseWithPat :: Typed.TypedTerm Syntax.Case -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Case+caseWithPat original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Case"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+              Model.projectionFieldName = (Model.Name "cond")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Case"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ClassDefn+classDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ClassDefn+classDefn mods name tparams ctor template =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm ctor)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm template)}]}))++-- | DSL accessor for the ctor field of hydra.scala.syntax.ClassDefn+classDefnCtor :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.PrimaryCtor+classDefnCtor x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+        Model.projectionFieldName = (Model.Name "ctor")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.ClassDefn+classDefnMods :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.Mod]+classDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.ClassDefn+classDefnName :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.NameType+classDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the template field of hydra.scala.syntax.ClassDefn+classDefnTemplate :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.Template+classDefnTemplate x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+        Model.projectionFieldName = (Model.Name "template")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.ClassDefn+classDefnTparams :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.ParamType]+classDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the ctor field of hydra.scala.syntax.ClassDefn+classDefnWithCtor :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.ClassDefn+classDefnWithCtor original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.ClassDefn+classDefnWithMods :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ClassDefn+classDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.ClassDefn+classDefnWithName :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ClassDefn+classDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the template field of hydra.scala.syntax.ClassDefn+classDefnWithTemplate :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ClassDefn+classDefnWithTemplate original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.ClassDefn+classDefnWithTparams :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.ClassDefn+classDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ClassDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ContextFunctionData+contextFunctionData :: Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ContextFunctionData+contextFunctionData params body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm params)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.ContextFunctionData+contextFunctionDataBody :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm Syntax.Data+contextFunctionDataBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionData"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the params field of hydra.scala.syntax.ContextFunctionData+contextFunctionDataParams :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm [Syntax.ParamData]+contextFunctionDataParams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionData"),+        Model.projectionFieldName = (Model.Name "params")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.ContextFunctionData+contextFunctionDataWithBody :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ContextFunctionData+contextFunctionDataWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionData"),+              Model.projectionFieldName = (Model.Name "params")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the params field of hydra.scala.syntax.ContextFunctionData+contextFunctionDataWithParams :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.ContextFunctionData+contextFunctionDataWithParams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionData"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ContextFunctionType+contextFunctionType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ContextFunctionType+contextFunctionType params res =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm params)},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Typed.unTypedTerm res)}]}))++-- | DSL accessor for the params field of hydra.scala.syntax.ContextFunctionType+contextFunctionTypeParams :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm [Syntax.Type]+contextFunctionTypeParams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionType"),+        Model.projectionFieldName = (Model.Name "params")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the res field of hydra.scala.syntax.ContextFunctionType+contextFunctionTypeRes :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm Syntax.Type+contextFunctionTypeRes x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionType"),+        Model.projectionFieldName = (Model.Name "res")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the params field of hydra.scala.syntax.ContextFunctionType+contextFunctionTypeWithParams :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ContextFunctionType+contextFunctionTypeWithParams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionType"),+              Model.projectionFieldName = (Model.Name "res")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the res field of hydra.scala.syntax.ContextFunctionType+contextFunctionTypeWithRes :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ContextFunctionType+contextFunctionTypeWithRes original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ContextFunctionType"),+              Model.projectionFieldName = (Model.Name "params")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the primary variant of hydra.scala.syntax.Ctor+ctorPrimary :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Ctor+ctorPrimary x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Ctor"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "primary"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the secondary variant of hydra.scala.syntax.Ctor+ctorSecondary :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Ctor+ctorSecondary x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Ctor"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "secondary"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the annotate variant of hydra.scala.syntax.Data+dataAnnotate :: Typed.TypedTerm Syntax.AnnotateData -> Typed.TypedTerm Syntax.Data+dataAnnotate x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "annotate"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the apply variant of hydra.scala.syntax.Data+dataApply :: Typed.TypedTerm Syntax.ApplyData -> Typed.TypedTerm Syntax.Data+dataApply x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "apply"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the applyType variant of hydra.scala.syntax.Data+dataApplyType :: Typed.TypedTerm Syntax.ApplyTypeData -> Typed.TypedTerm Syntax.Data+dataApplyType x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "applyType"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the applyUsing variant of hydra.scala.syntax.Data+dataApplyUsing :: Typed.TypedTerm Syntax.ApplyUsingData -> Typed.TypedTerm Syntax.Data+dataApplyUsing x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "applyUsing"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ascribe variant of hydra.scala.syntax.Data+dataAscribe :: Typed.TypedTerm Syntax.AscribeData -> Typed.TypedTerm Syntax.Data+dataAscribe x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "ascribe"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the assign variant of hydra.scala.syntax.Data+dataAssign :: Typed.TypedTerm Syntax.AssignData -> Typed.TypedTerm Syntax.Data+dataAssign x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "assign"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the block variant of hydra.scala.syntax.Data+dataBlock :: Typed.TypedTerm Syntax.BlockData -> Typed.TypedTerm Syntax.Data+dataBlock x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "block"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the contextFunction variant of hydra.scala.syntax.Data+dataContextFunction :: Typed.TypedTerm Syntax.ContextFunctionData -> Typed.TypedTerm Syntax.Data+dataContextFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "contextFunction"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the do variant of hydra.scala.syntax.Data+dataDo :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data+dataDo x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "do"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the endMarker variant of hydra.scala.syntax.Data+dataEndMarker :: Typed.TypedTerm Syntax.EndMarkerData -> Typed.TypedTerm Syntax.Data+dataEndMarker x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "endMarker"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the eta variant of hydra.scala.syntax.Data+dataEta :: Typed.TypedTerm Syntax.EtaData -> Typed.TypedTerm Syntax.Data+dataEta x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "eta"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the for variant of hydra.scala.syntax.Data+dataFor :: Typed.TypedTerm Syntax.ForData -> Typed.TypedTerm Syntax.Data+dataFor x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "for"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the forYield variant of hydra.scala.syntax.Data+dataForYield :: Typed.TypedTerm Syntax.ForYieldData -> Typed.TypedTerm Syntax.Data+dataForYield x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "forYield"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the function variant of hydra.scala.syntax.Data+dataFunction :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm Syntax.Data+dataFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "function"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the if variant of hydra.scala.syntax.Data+dataIf :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data+dataIf x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "if"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the interpolate variant of hydra.scala.syntax.Data+dataInterpolate :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm Syntax.Data+dataInterpolate x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "interpolate"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the lit variant of hydra.scala.syntax.Data+dataLit :: Typed.TypedTerm Syntax.Lit -> Typed.TypedTerm Syntax.Data+dataLit x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "lit"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the match variant of hydra.scala.syntax.Data+dataMatch :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm Syntax.Data+dataMatch x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "match"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the object variant of hydra.scala.syntax.DataMember+dataMemberObject :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.DataMember+dataMemberObject x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.DataMember"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "object"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the pkg variant of hydra.scala.syntax.DataMember+dataMemberPkg :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.DataMember+dataMemberPkg x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.DataMember"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "pkg"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the new variant of hydra.scala.syntax.Data+dataNew :: Typed.TypedTerm Syntax.NewData -> Typed.TypedTerm Syntax.Data+dataNew x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "new"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the newAnonymous variant of hydra.scala.syntax.Data+dataNewAnonymous :: Typed.TypedTerm Syntax.NewAnonymousData -> Typed.TypedTerm Syntax.Data+dataNewAnonymous x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "newAnonymous"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the param variant of hydra.scala.syntax.Data+dataParam :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Data+dataParam x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "param"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the partialFunction variant of hydra.scala.syntax.Data+dataPartialFunction :: Typed.TypedTerm Syntax.PartialFunctionData -> Typed.TypedTerm Syntax.Data+dataPartialFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "partialFunction"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the placeholder variant of hydra.scala.syntax.Data+dataPlaceholder :: Typed.TypedTerm Syntax.Data+dataPlaceholder =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "placeholder"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the polyFunction variant of hydra.scala.syntax.Data+dataPolyFunction :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm Syntax.Data+dataPolyFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "polyFunction"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ref variant of hydra.scala.syntax.Data+dataRef :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.Data+dataRef x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "ref"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the repeated variant of hydra.scala.syntax.Data+dataRepeated :: Typed.TypedTerm Syntax.RepeatedData -> Typed.TypedTerm Syntax.Data+dataRepeated x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "repeated"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the return variant of hydra.scala.syntax.Data+dataReturn :: Typed.TypedTerm Syntax.ReturnData -> Typed.TypedTerm Syntax.Data+dataReturn x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "return"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the throw variant of hydra.scala.syntax.Data+dataThrow :: Typed.TypedTerm Syntax.ThrowData -> Typed.TypedTerm Syntax.Data+dataThrow x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "throw"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the try variant of hydra.scala.syntax.Data+dataTry :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm Syntax.Data+dataTry x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "try"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the tryWithHandler variant of hydra.scala.syntax.Data+dataTryWithHandler :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data+dataTryWithHandler x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "tryWithHandler"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the tuple variant of hydra.scala.syntax.Data+dataTuple :: Typed.TypedTerm Syntax.TupleData -> Typed.TypedTerm Syntax.Data+dataTuple x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "tuple"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the while variant of hydra.scala.syntax.Data+dataWhile :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data+dataWhile x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Data"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "while"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the def variant of hydra.scala.syntax.Decl+declDef :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.Decl+declDef x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Decl"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "def"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the given variant of hydra.scala.syntax.Decl+declGiven :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.Decl+declGiven x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Decl"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "given"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the type variant of hydra.scala.syntax.Decl+declType :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.Decl+declType x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Decl"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "type"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the val variant of hydra.scala.syntax.Decl+declVal :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm Syntax.Decl+declVal x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Decl"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "val"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the var variant of hydra.scala.syntax.Decl+declVar :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm Syntax.Decl+declVar x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Decl"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "var"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.DefDecl+defDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.DefDecl+defDecl mods name tparams paramss decltpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm paramss)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)}]}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.DefDecl+defDeclDecltpe :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.Type+defDeclDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.DefDecl+defDeclMods :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.Mod]+defDeclMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.DefDecl+defDeclName :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.NameData+defDeclName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the paramss field of hydra.scala.syntax.DefDecl+defDeclParamss :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [[Syntax.ParamData]]+defDeclParamss x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+        Model.projectionFieldName = (Model.Name "paramss")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.DefDecl+defDeclTparams :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.ParamType]+defDeclTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.DefDecl+defDeclWithDecltpe :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.DefDecl+defDeclWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.DefDecl+defDeclWithMods :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.DefDecl+defDeclWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.DefDecl+defDeclWithName :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.DefDecl+defDeclWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the paramss field of hydra.scala.syntax.DefDecl+defDeclWithParamss :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.DefDecl+defDeclWithParamss original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.DefDecl+defDeclWithTparams :: Typed.TypedTerm Syntax.DefDecl -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.DefDecl+defDeclWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.DefDefn+defDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DefDefn+defDefn mods name tparams paramss decltpe body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm paramss)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.DefDefn+defDefnBody :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.Data+defDefnBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.DefDefn+defDefnDecltpe :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm (Maybe Syntax.Type)+defDefnDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.DefDefn+defDefnMods :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.Mod]+defDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.DefDefn+defDefnName :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.NameData+defDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the paramss field of hydra.scala.syntax.DefDefn+defDefnParamss :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [[Syntax.ParamData]]+defDefnParamss x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+        Model.projectionFieldName = (Model.Name "paramss")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.DefDefn+defDefnTparams :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.ParamType]+defDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.DefDefn+defDefnWithBody :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DefDefn+defDefnWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.DefDefn+defDefnWithDecltpe :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.DefDefn+defDefnWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.DefDefn+defDefnWithMods :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.DefDefn+defDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.DefDefn+defDefnWithName :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.DefDefn+defDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the paramss field of hydra.scala.syntax.DefDefn+defDefnWithParamss :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.DefDefn+defDefnWithParamss original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.DefDefn+defDefnWithTparams :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.DefDefn+defDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DefDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the class variant of hydra.scala.syntax.Defn+defnClass :: Typed.TypedTerm Syntax.ClassDefn -> Typed.TypedTerm Syntax.Defn+defnClass x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "class"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the def variant of hydra.scala.syntax.Defn+defnDef :: Typed.TypedTerm Syntax.DefDefn -> Typed.TypedTerm Syntax.Defn+defnDef x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "def"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the enum variant of hydra.scala.syntax.Defn+defnEnum :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.Defn+defnEnum x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "enum"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the enumCase variant of hydra.scala.syntax.Defn+defnEnumCase :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.Defn+defnEnumCase x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "enumCase"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the extensionGroup variant of hydra.scala.syntax.Defn+defnExtensionGroup :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm Syntax.Defn+defnExtensionGroup x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "extensionGroup"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the given variant of hydra.scala.syntax.Defn+defnGiven :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Defn+defnGiven x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "given"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the givenAlias variant of hydra.scala.syntax.Defn+defnGivenAlias :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Defn+defnGivenAlias x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "givenAlias"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the object variant of hydra.scala.syntax.Defn+defnObject :: Typed.TypedTerm Syntax.ObjectDefn -> Typed.TypedTerm Syntax.Defn+defnObject x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "object"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the repeatedEnumCase variant of hydra.scala.syntax.Defn+defnRepeatedEnumCase :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm Syntax.Defn+defnRepeatedEnumCase x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "repeatedEnumCase"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the trait variant of hydra.scala.syntax.Defn+defnTrait :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.Defn+defnTrait x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "trait"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the type variant of hydra.scala.syntax.Defn+defnType :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.Defn+defnType x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "type"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the val variant of hydra.scala.syntax.Defn+defnVal :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm Syntax.Defn+defnVal x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "val"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the var variant of hydra.scala.syntax.Defn+defnVar :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm Syntax.Defn+defnVar x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Defn"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "var"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.DoData+doData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DoData+doData body expr =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DoData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)},+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.DoData+doDataBody :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data+doDataBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DoData"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the expr field of hydra.scala.syntax.DoData+doDataExpr :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data+doDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DoData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.DoData+doDataWithBody :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DoData+doDataWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DoData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DoData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the expr field of hydra.scala.syntax.DoData+doDataWithExpr :: Typed.TypedTerm Syntax.DoData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.DoData+doDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.DoData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.DoData"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.EndMarkerData+endMarkerData :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.EndMarkerData+endMarkerData name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EndMarkerData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.EndMarkerData+endMarkerDataName :: Typed.TypedTerm Syntax.EndMarkerData -> Typed.TypedTerm Syntax.NameData+endMarkerDataName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EndMarkerData"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.EndMarkerData+endMarkerDataWithName :: Typed.TypedTerm Syntax.EndMarkerData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.EndMarkerData+endMarkerDataWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EndMarkerData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.EnumCaseDefn+enumCaseDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.EnumCaseDefn+enumCaseDefn mods name tparams ctor inits =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm ctor)},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Typed.unTypedTerm inits)}]}))++-- | DSL accessor for the ctor field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnCtor :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.PrimaryCtor+enumCaseDefnCtor x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+        Model.projectionFieldName = (Model.Name "ctor")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the inits field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnInits :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Init]+enumCaseDefnInits x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+        Model.projectionFieldName = (Model.Name "inits")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnMods :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Mod]+enumCaseDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnName :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.NameData+enumCaseDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnTparams :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.ParamType]+enumCaseDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the ctor field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnWithCtor :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.EnumCaseDefn+enumCaseDefnWithCtor original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "inits")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the inits field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnWithInits :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.EnumCaseDefn+enumCaseDefnWithInits original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnWithMods :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.EnumCaseDefn+enumCaseDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "inits")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnWithName :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.EnumCaseDefn+enumCaseDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "inits")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.EnumCaseDefn+enumCaseDefnWithTparams :: Typed.TypedTerm Syntax.EnumCaseDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.EnumCaseDefn+enumCaseDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "inits")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.EnumDefn+enumDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.EnumDefn+enumDefn mods name tparams ctor template =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm ctor)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm template)}]}))++-- | DSL accessor for the ctor field of hydra.scala.syntax.EnumDefn+enumDefnCtor :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.PrimaryCtor+enumDefnCtor x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+        Model.projectionFieldName = (Model.Name "ctor")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.EnumDefn+enumDefnMods :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.Mod]+enumDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.EnumDefn+enumDefnName :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.NameType+enumDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the template field of hydra.scala.syntax.EnumDefn+enumDefnTemplate :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.Template+enumDefnTemplate x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+        Model.projectionFieldName = (Model.Name "template")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.EnumDefn+enumDefnTparams :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.ParamType]+enumDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the ctor field of hydra.scala.syntax.EnumDefn+enumDefnWithCtor :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.EnumDefn+enumDefnWithCtor original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.EnumDefn+enumDefnWithMods :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.EnumDefn+enumDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.EnumDefn+enumDefnWithName :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.EnumDefn+enumDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the template field of hydra.scala.syntax.EnumDefn+enumDefnWithTemplate :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.EnumDefn+enumDefnWithTemplate original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.EnumDefn+enumDefnWithTparams :: Typed.TypedTerm Syntax.EnumDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.EnumDefn+enumDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EnumDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the caseGenerator variant of hydra.scala.syntax.Enumerator+enumeratorCaseGenerator :: Typed.TypedTerm Syntax.CaseGeneratorEnumerator -> Typed.TypedTerm Syntax.Enumerator+enumeratorCaseGenerator x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Enumerator"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "caseGenerator"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the generator variant of hydra.scala.syntax.Enumerator+enumeratorGenerator :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Enumerator+enumeratorGenerator x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Enumerator"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "generator"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the guard variant of hydra.scala.syntax.Enumerator+enumeratorGuard :: Typed.TypedTerm Syntax.GuardEnumerator -> Typed.TypedTerm Syntax.Enumerator+enumeratorGuard x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Enumerator"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "guard"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the val variant of hydra.scala.syntax.Enumerator+enumeratorVal :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Enumerator+enumeratorVal x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Enumerator"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "val"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.EtaData+etaData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.EtaData+etaData expr =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EtaData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)}]}))++-- | DSL accessor for the expr field of hydra.scala.syntax.EtaData+etaDataExpr :: Typed.TypedTerm Syntax.EtaData -> Typed.TypedTerm Syntax.Data+etaDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.EtaData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expr field of hydra.scala.syntax.EtaData+etaDataWithExpr :: Typed.TypedTerm Syntax.EtaData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.EtaData+etaDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.EtaData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ExistentialType+existentialType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.ExistentialType+existentialType tpe stats =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExistentialType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm stats)}]}))++-- | DSL accessor for the stats field of hydra.scala.syntax.ExistentialType+existentialTypeStats :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm [Syntax.Stat]+existentialTypeStats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExistentialType"),+        Model.projectionFieldName = (Model.Name "stats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.ExistentialType+existentialTypeTpe :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm Syntax.Type+existentialTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExistentialType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the stats field of hydra.scala.syntax.ExistentialType+existentialTypeWithStats :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.ExistentialType+existentialTypeWithStats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExistentialType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExistentialType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.ExistentialType+existentialTypeWithTpe :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ExistentialType+existentialTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExistentialType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExistentialType"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.Export+export :: Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Export+export importers =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Export"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "importers"),+          Model.fieldTerm = (Typed.unTypedTerm importers)}]}))++-- | DSL accessor for the importers field of hydra.scala.syntax.Export+exportImporters :: Typed.TypedTerm Syntax.Export -> Typed.TypedTerm [Syntax.Importer]+exportImporters x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Export"),+        Model.projectionFieldName = (Model.Name "importers")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the importers field of hydra.scala.syntax.Export+exportWithImporters :: Typed.TypedTerm Syntax.Export -> Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Export+exportWithImporters original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Export"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "importers"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ExtensionGroupDefn+extensionGroupDefn :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Stat -> Typed.TypedTerm Syntax.ExtensionGroupDefn+extensionGroupDefn tparams parmss body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "parmss"),+          Model.fieldTerm = (Typed.unTypedTerm parmss)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.ExtensionGroupDefn+extensionGroupDefnBody :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm Syntax.Stat+extensionGroupDefnBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the parmss field of hydra.scala.syntax.ExtensionGroupDefn+extensionGroupDefnParmss :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [[Syntax.ParamData]]+extensionGroupDefnParmss x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+        Model.projectionFieldName = (Model.Name "parmss")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.ExtensionGroupDefn+extensionGroupDefnTparams :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [Syntax.ParamType]+extensionGroupDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.ExtensionGroupDefn+extensionGroupDefnWithBody :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm Syntax.Stat -> Typed.TypedTerm Syntax.ExtensionGroupDefn+extensionGroupDefnWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "parmss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+              Model.projectionFieldName = (Model.Name "parmss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the parmss field of hydra.scala.syntax.ExtensionGroupDefn+extensionGroupDefnWithParmss :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.ExtensionGroupDefn+extensionGroupDefnWithParmss original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "parmss"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.ExtensionGroupDefn+extensionGroupDefnWithTparams :: Typed.TypedTerm Syntax.ExtensionGroupDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.ExtensionGroupDefn+extensionGroupDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "parmss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+              Model.projectionFieldName = (Model.Name "parmss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtensionGroupDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ExtractInfixPat+extractInfixPat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ExtractInfixPat+extractInfixPat lhs op rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm op)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.ExtractInfixPat+extractInfixPatLhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.Pat+extractInfixPatLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the op field of hydra.scala.syntax.ExtractInfixPat+extractInfixPatOp :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.NameData+extractInfixPatOp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+        Model.projectionFieldName = (Model.Name "op")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.ExtractInfixPat+extractInfixPatRhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm [Syntax.Pat]+extractInfixPatRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.ExtractInfixPat+extractInfixPatWithLhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.ExtractInfixPat+extractInfixPatWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the op field of hydra.scala.syntax.ExtractInfixPat+extractInfixPatWithOp :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ExtractInfixPat+extractInfixPatWithOp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.ExtractInfixPat+extractInfixPatWithRhs :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ExtractInfixPat+extractInfixPatWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "op"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractInfixPat"),+              Model.projectionFieldName = (Model.Name "op")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ExtractPat+extractPat :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.ExtractPat+extractPat fun args isCall =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Typed.unTypedTerm fun)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)},+        Model.Field {+          Model.fieldName = (Model.Name "isCall"),+          Model.fieldTerm = (Typed.unTypedTerm isCall)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.ExtractPat+extractPatArgs :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm [Syntax.Pat]+extractPatArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the fun field of hydra.scala.syntax.ExtractPat+extractPatFun :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm Syntax.Data+extractPatFun x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+        Model.projectionFieldName = (Model.Name "fun")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | Accessor for the isCall field of hydra.scala.syntax.ExtractPat+extractPatIsCall :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm Bool+extractPatIsCall x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+        Model.projectionFieldName = (Model.Name "isCall")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.ExtractPat+extractPatWithArgs :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ExtractPat+extractPatWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+              Model.projectionFieldName = (Model.Name "fun")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "isCall"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+              Model.projectionFieldName = (Model.Name "isCall")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the fun field of hydra.scala.syntax.ExtractPat+extractPatWithFun :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ExtractPat+extractPatWithFun original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "fun"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "isCall"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ExtractPat"),+              Model.projectionFieldName = (Model.Name "isCall")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ForData+forData :: Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForData+forData enums =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ForData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "enums"),+          Model.fieldTerm = (Typed.unTypedTerm enums)}]}))++-- | DSL accessor for the enums field of hydra.scala.syntax.ForData+forDataEnums :: Typed.TypedTerm Syntax.ForData -> Typed.TypedTerm [Syntax.Enumerator]+forDataEnums x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ForData"),+        Model.projectionFieldName = (Model.Name "enums")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the enums field of hydra.scala.syntax.ForData+forDataWithEnums :: Typed.TypedTerm Syntax.ForData -> Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForData+forDataWithEnums original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ForData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "enums"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ForYieldData+forYieldData :: Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForYieldData+forYieldData enums =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ForYieldData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "enums"),+          Model.fieldTerm = (Typed.unTypedTerm enums)}]}))++-- | DSL accessor for the enums field of hydra.scala.syntax.ForYieldData+forYieldDataEnums :: Typed.TypedTerm Syntax.ForYieldData -> Typed.TypedTerm [Syntax.Enumerator]+forYieldDataEnums x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ForYieldData"),+        Model.projectionFieldName = (Model.Name "enums")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the enums field of hydra.scala.syntax.ForYieldData+forYieldDataWithEnums :: Typed.TypedTerm Syntax.ForYieldData -> Typed.TypedTerm [Syntax.Enumerator] -> Typed.TypedTerm Syntax.ForYieldData+forYieldDataWithEnums original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ForYieldData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "enums"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.FunctionData+functionData :: Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.FunctionData+functionData params body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.FunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm params)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.FunctionData+functionDataBody :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm Syntax.Data+functionDataBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionData"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the params field of hydra.scala.syntax.FunctionData+functionDataParams :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm [Syntax.ParamData]+functionDataParams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionData"),+        Model.projectionFieldName = (Model.Name "params")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.FunctionData+functionDataWithBody :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.FunctionData+functionDataWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.FunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionData"),+              Model.projectionFieldName = (Model.Name "params")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the params field of hydra.scala.syntax.FunctionData+functionDataWithParams :: Typed.TypedTerm Syntax.FunctionData -> Typed.TypedTerm [Syntax.ParamData] -> Typed.TypedTerm Syntax.FunctionData+functionDataWithParams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.FunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionData"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.FunctionType+functionType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.FunctionType+functionType params res =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.FunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm params)},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Typed.unTypedTerm res)}]}))++-- | DSL accessor for the params field of hydra.scala.syntax.FunctionType+functionTypeParams :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm [Syntax.Type]+functionTypeParams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionType"),+        Model.projectionFieldName = (Model.Name "params")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the res field of hydra.scala.syntax.FunctionType+functionTypeRes :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm Syntax.Type+functionTypeRes x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionType"),+        Model.projectionFieldName = (Model.Name "res")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the params field of hydra.scala.syntax.FunctionType+functionTypeWithParams :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.FunctionType+functionTypeWithParams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.FunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionType"),+              Model.projectionFieldName = (Model.Name "res")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the res field of hydra.scala.syntax.FunctionType+functionTypeWithRes :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.FunctionType+functionTypeWithRes original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.FunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.FunctionType"),+              Model.projectionFieldName = (Model.Name "params")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.GeneratorEnumerator+generatorEnumerator :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GeneratorEnumerator+generatorEnumerator pat rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GeneratorEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm pat)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the pat field of hydra.scala.syntax.GeneratorEnumerator+generatorEnumeratorPat :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Pat+generatorEnumeratorPat x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GeneratorEnumerator"),+        Model.projectionFieldName = (Model.Name "pat")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.GeneratorEnumerator+generatorEnumeratorRhs :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Data+generatorEnumeratorRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GeneratorEnumerator"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the pat field of hydra.scala.syntax.GeneratorEnumerator+generatorEnumeratorWithPat :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.GeneratorEnumerator+generatorEnumeratorWithPat original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GeneratorEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GeneratorEnumerator"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.GeneratorEnumerator+generatorEnumeratorWithRhs :: Typed.TypedTerm Syntax.GeneratorEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GeneratorEnumerator+generatorEnumeratorWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GeneratorEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GeneratorEnumerator"),+              Model.projectionFieldName = (Model.Name "pat")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.GivenAliasDefn+givenAliasDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GivenAliasDefn+givenAliasDefn mods name tparams sparams decltpe body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Typed.unTypedTerm sparams)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnBody :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Data+givenAliasDefnBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnDecltpe :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Type+givenAliasDefnDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnMods :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [Syntax.Mod]+givenAliasDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnName :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Name+givenAliasDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the sparams field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnSparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamData]]+givenAliasDefnSparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+        Model.projectionFieldName = (Model.Name "sparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnTparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamType]]+givenAliasDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnWithBody :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GivenAliasDefn+givenAliasDefnWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnWithDecltpe :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenAliasDefn+givenAliasDefnWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnWithMods :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.GivenAliasDefn+givenAliasDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnWithName :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.GivenAliasDefn+givenAliasDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the sparams field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnWithSparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.GivenAliasDefn+givenAliasDefnWithSparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.GivenAliasDefn+givenAliasDefnWithTparams :: Typed.TypedTerm Syntax.GivenAliasDefn -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm Syntax.GivenAliasDefn+givenAliasDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenAliasDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.GivenDecl+givenDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenDecl+givenDecl mods name tparams sparams decltpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Typed.unTypedTerm sparams)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)}]}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.GivenDecl+givenDeclDecltpe :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.Type+givenDeclDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.GivenDecl+givenDeclMods :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.Mod]+givenDeclMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.GivenDecl+givenDeclName :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.NameData+givenDeclName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the sparams field of hydra.scala.syntax.GivenDecl+givenDeclSparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [[Syntax.ParamData]]+givenDeclSparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+        Model.projectionFieldName = (Model.Name "sparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.GivenDecl+givenDeclTparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.ParamType]+givenDeclTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.GivenDecl+givenDeclWithDecltpe :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenDecl+givenDeclWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.GivenDecl+givenDeclWithMods :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.GivenDecl+givenDeclWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.GivenDecl+givenDeclWithName :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.GivenDecl+givenDeclWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the sparams field of hydra.scala.syntax.GivenDecl+givenDeclWithSparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.GivenDecl+givenDeclWithSparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.GivenDecl+givenDeclWithTparams :: Typed.TypedTerm Syntax.GivenDecl -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.GivenDecl+givenDeclWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.GivenDefn+givenDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.GivenDefn+givenDefn mods name tparams sparams templ =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Typed.unTypedTerm sparams)},+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Typed.unTypedTerm templ)}]}))++-- | DSL accessor for the mods field of hydra.scala.syntax.GivenDefn+givenDefnMods :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [Syntax.Mod]+givenDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.GivenDefn+givenDefnName :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Name+givenDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the sparams field of hydra.scala.syntax.GivenDefn+givenDefnSparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamData]]+givenDefnSparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+        Model.projectionFieldName = (Model.Name "sparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the templ field of hydra.scala.syntax.GivenDefn+givenDefnTempl :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Template+givenDefnTempl x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+        Model.projectionFieldName = (Model.Name "templ")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.GivenDefn+givenDefnTparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamType]]+givenDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the mods field of hydra.scala.syntax.GivenDefn+givenDefnWithMods :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.GivenDefn+givenDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "templ")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.GivenDefn+givenDefnWithName :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.GivenDefn+givenDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "templ")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the sparams field of hydra.scala.syntax.GivenDefn+givenDefnWithSparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.GivenDefn+givenDefnWithSparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "templ")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the templ field of hydra.scala.syntax.GivenDefn+givenDefnWithTempl :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.GivenDefn+givenDefnWithTempl original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.GivenDefn+givenDefnWithTparams :: Typed.TypedTerm Syntax.GivenDefn -> Typed.TypedTerm [[Syntax.ParamType]] -> Typed.TypedTerm Syntax.GivenDefn+givenDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "sparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "sparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenDefn"),+              Model.projectionFieldName = (Model.Name "templ")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.GivenImportee+givenImportee :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenImportee+givenImportee tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.GivenImportee+givenImporteeTpe :: Typed.TypedTerm Syntax.GivenImportee -> Typed.TypedTerm Syntax.Type+givenImporteeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenImportee"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the tpe field of hydra.scala.syntax.GivenImportee+givenImporteeWithTpe :: Typed.TypedTerm Syntax.GivenImportee -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenImportee+givenImporteeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.GivenPat+givenPat :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenPat+givenPat tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.GivenPat+givenPatTpe :: Typed.TypedTerm Syntax.GivenPat -> Typed.TypedTerm Syntax.Type+givenPatTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GivenPat"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the tpe field of hydra.scala.syntax.GivenPat+givenPatWithTpe :: Typed.TypedTerm Syntax.GivenPat -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.GivenPat+givenPatWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GivenPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.GuardEnumerator+guardEnumerator :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GuardEnumerator+guardEnumerator cond =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GuardEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Typed.unTypedTerm cond)}]}))++-- | DSL accessor for the cond field of hydra.scala.syntax.GuardEnumerator+guardEnumeratorCond :: Typed.TypedTerm Syntax.GuardEnumerator -> Typed.TypedTerm Syntax.Data+guardEnumeratorCond x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.GuardEnumerator"),+        Model.projectionFieldName = (Model.Name "cond")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cond field of hydra.scala.syntax.GuardEnumerator+guardEnumeratorWithCond :: Typed.TypedTerm Syntax.GuardEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.GuardEnumerator+guardEnumeratorWithCond original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.GuardEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.IfData+ifData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData+ifData cond thenp elsep =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.IfData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Typed.unTypedTerm cond)},+        Model.Field {+          Model.fieldName = (Model.Name "thenp"),+          Model.fieldTerm = (Typed.unTypedTerm thenp)},+        Model.Field {+          Model.fieldName = (Model.Name "elsep"),+          Model.fieldTerm = (Typed.unTypedTerm elsep)}]}))++-- | DSL accessor for the cond field of hydra.scala.syntax.IfData+ifDataCond :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data+ifDataCond x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+        Model.projectionFieldName = (Model.Name "cond")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the elsep field of hydra.scala.syntax.IfData+ifDataElsep :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data+ifDataElsep x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+        Model.projectionFieldName = (Model.Name "elsep")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the thenp field of hydra.scala.syntax.IfData+ifDataThenp :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data+ifDataThenp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+        Model.projectionFieldName = (Model.Name "thenp")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cond field of hydra.scala.syntax.IfData+ifDataWithCond :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData+ifDataWithCond original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.IfData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "thenp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+              Model.projectionFieldName = (Model.Name "thenp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "elsep"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+              Model.projectionFieldName = (Model.Name "elsep")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the elsep field of hydra.scala.syntax.IfData+ifDataWithElsep :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData+ifDataWithElsep original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.IfData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+              Model.projectionFieldName = (Model.Name "cond")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "thenp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+              Model.projectionFieldName = (Model.Name "thenp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "elsep"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the thenp field of hydra.scala.syntax.IfData+ifDataWithThenp :: Typed.TypedTerm Syntax.IfData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.IfData+ifDataWithThenp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.IfData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cond"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+              Model.projectionFieldName = (Model.Name "cond")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "thenp"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "elsep"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.IfData"),+              Model.projectionFieldName = (Model.Name "elsep")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ImplicitFunctionType+implicitFunctionType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ImplicitFunctionType+implicitFunctionType params res =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ImplicitFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm params)},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Typed.unTypedTerm res)}]}))++-- | DSL accessor for the params field of hydra.scala.syntax.ImplicitFunctionType+implicitFunctionTypeParams :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm [Syntax.Type]+implicitFunctionTypeParams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ImplicitFunctionType"),+        Model.projectionFieldName = (Model.Name "params")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the res field of hydra.scala.syntax.ImplicitFunctionType+implicitFunctionTypeRes :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm Syntax.Type+implicitFunctionTypeRes x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ImplicitFunctionType"),+        Model.projectionFieldName = (Model.Name "res")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the params field of hydra.scala.syntax.ImplicitFunctionType+implicitFunctionTypeWithParams :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ImplicitFunctionType+implicitFunctionTypeWithParams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ImplicitFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ImplicitFunctionType"),+              Model.projectionFieldName = (Model.Name "res")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the res field of hydra.scala.syntax.ImplicitFunctionType+implicitFunctionTypeWithRes :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ImplicitFunctionType+implicitFunctionTypeWithRes original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ImplicitFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "params"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ImplicitFunctionType"),+              Model.projectionFieldName = (Model.Name "params")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "res"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.Import+import_ :: Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Import+import_ importers =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Import"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "importers"),+          Model.fieldTerm = (Typed.unTypedTerm importers)}]}))++-- | DSL injection for the export variant of hydra.scala.syntax.ImportExportStat+importExportStatExport :: Typed.TypedTerm Syntax.Export -> Typed.TypedTerm Syntax.ImportExportStat+importExportStatExport x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.ImportExportStat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "export"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the import variant of hydra.scala.syntax.ImportExportStat+importExportStatImport :: Typed.TypedTerm Syntax.Import -> Typed.TypedTerm Syntax.ImportExportStat+importExportStatImport x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.ImportExportStat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "import"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL accessor for the importers field of hydra.scala.syntax.Import+importImporters :: Typed.TypedTerm Syntax.Import -> Typed.TypedTerm [Syntax.Importer]+importImporters x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Import"),+        Model.projectionFieldName = (Model.Name "importers")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the importers field of hydra.scala.syntax.Import+importWithImporters :: Typed.TypedTerm Syntax.Import -> Typed.TypedTerm [Syntax.Importer] -> Typed.TypedTerm Syntax.Import+importWithImporters original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Import"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "importers"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the given variant of hydra.scala.syntax.Importee+importeeGiven :: Typed.TypedTerm Syntax.GivenImportee -> Typed.TypedTerm Syntax.Importee+importeeGiven x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Importee"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "given"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the givenAll variant of hydra.scala.syntax.Importee+importeeGivenAll :: Typed.TypedTerm Syntax.Importee+importeeGivenAll =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Importee"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "givenAll"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the name variant of hydra.scala.syntax.Importee+importeeName :: Typed.TypedTerm Syntax.NameImportee -> Typed.TypedTerm Syntax.Importee+importeeName x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Importee"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "name"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the rename variant of hydra.scala.syntax.Importee+importeeRename :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Importee+importeeRename x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Importee"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "rename"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the unimport variant of hydra.scala.syntax.Importee+importeeUnimport :: Typed.TypedTerm Syntax.UnimportImportee -> Typed.TypedTerm Syntax.Importee+importeeUnimport x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Importee"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "unimport"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the wildcard variant of hydra.scala.syntax.Importee+importeeWildcard :: Typed.TypedTerm Syntax.Importee+importeeWildcard =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Importee"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "wildcard"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.scala.syntax.Importer+importer :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm [Syntax.Importee] -> Typed.TypedTerm Syntax.Importer+importer ref importees =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Importer"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Typed.unTypedTerm ref)},+        Model.Field {+          Model.fieldName = (Model.Name "importees"),+          Model.fieldTerm = (Typed.unTypedTerm importees)}]}))++-- | DSL accessor for the importees field of hydra.scala.syntax.Importer+importerImportees :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm [Syntax.Importee]+importerImportees x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Importer"),+        Model.projectionFieldName = (Model.Name "importees")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the ref field of hydra.scala.syntax.Importer+importerRef :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm Syntax.RefData+importerRef x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Importer"),+        Model.projectionFieldName = (Model.Name "ref")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the importees field of hydra.scala.syntax.Importer+importerWithImportees :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm [Syntax.Importee] -> Typed.TypedTerm Syntax.Importer+importerWithImportees original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Importer"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Importer"),+              Model.projectionFieldName = (Model.Name "ref")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "importees"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the ref field of hydra.scala.syntax.Importer+importerWithRef :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.Importer+importerWithRef original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Importer"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "importees"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Importer"),+              Model.projectionFieldName = (Model.Name "importees")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.Init+init :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.Data]] -> Typed.TypedTerm Syntax.Init+init tpe name argss =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Init"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "argss"),+          Model.fieldTerm = (Typed.unTypedTerm argss)}]}))++-- | DSL accessor for the argss field of hydra.scala.syntax.Init+initArgss :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm [[Syntax.Data]]+initArgss x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+        Model.projectionFieldName = (Model.Name "argss")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.Init+initName :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Name+initName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.Init+initTpe :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Type+initTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the argss field of hydra.scala.syntax.Init+initWithArgss :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm [[Syntax.Data]] -> Typed.TypedTerm Syntax.Init+initWithArgss original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Init"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "argss"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the name field of hydra.scala.syntax.Init+initWithName :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Init+initWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Init"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "argss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+              Model.projectionFieldName = (Model.Name "argss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.Init+initWithTpe :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Init+initWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Init"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "argss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Init"),+              Model.projectionFieldName = (Model.Name "argss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.InterpolateData+interpolateData :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.InterpolateData+interpolateData prefix parts args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "prefix"),+          Model.fieldTerm = (Typed.unTypedTerm prefix)},+        Model.Field {+          Model.fieldName = (Model.Name "parts"),+          Model.fieldTerm = (Typed.unTypedTerm parts)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.InterpolateData+interpolateDataArgs :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Data]+interpolateDataArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the parts field of hydra.scala.syntax.InterpolateData+interpolateDataParts :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Lit]+interpolateDataParts x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+        Model.projectionFieldName = (Model.Name "parts")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the prefix field of hydra.scala.syntax.InterpolateData+interpolateDataPrefix :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm Syntax.NameData+interpolateDataPrefix x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+        Model.projectionFieldName = (Model.Name "prefix")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.InterpolateData+interpolateDataWithArgs :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.InterpolateData+interpolateDataWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "prefix"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+              Model.projectionFieldName = (Model.Name "prefix")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "parts"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+              Model.projectionFieldName = (Model.Name "parts")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the parts field of hydra.scala.syntax.InterpolateData+interpolateDataWithParts :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm Syntax.InterpolateData+interpolateDataWithParts original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "prefix"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+              Model.projectionFieldName = (Model.Name "prefix")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "parts"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the prefix field of hydra.scala.syntax.InterpolateData+interpolateDataWithPrefix :: Typed.TypedTerm Syntax.InterpolateData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.InterpolateData+interpolateDataWithPrefix original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "prefix"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "parts"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+              Model.projectionFieldName = (Model.Name "parts")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolateData"),+              Model.projectionFieldName = (Model.Name "args")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.InterpolatePat+interpolatePat :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm Syntax.InterpolatePat+interpolatePat prefix parts =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.InterpolatePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "prefix"),+          Model.fieldTerm = (Typed.unTypedTerm prefix)},+        Model.Field {+          Model.fieldName = (Model.Name "parts"),+          Model.fieldTerm = (Typed.unTypedTerm parts)}]}))++-- | DSL accessor for the parts field of hydra.scala.syntax.InterpolatePat+interpolatePatParts :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm [Syntax.Lit]+interpolatePatParts x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolatePat"),+        Model.projectionFieldName = (Model.Name "parts")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the prefix field of hydra.scala.syntax.InterpolatePat+interpolatePatPrefix :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm Syntax.NameData+interpolatePatPrefix x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolatePat"),+        Model.projectionFieldName = (Model.Name "prefix")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the parts field of hydra.scala.syntax.InterpolatePat+interpolatePatWithParts :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm [Syntax.Lit] -> Typed.TypedTerm Syntax.InterpolatePat+interpolatePatWithParts original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.InterpolatePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "prefix"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolatePat"),+              Model.projectionFieldName = (Model.Name "prefix")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "parts"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the prefix field of hydra.scala.syntax.InterpolatePat+interpolatePatWithPrefix :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.InterpolatePat+interpolatePatWithPrefix original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.InterpolatePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "prefix"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "parts"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.InterpolatePat"),+              Model.projectionFieldName = (Model.Name "parts")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.LambdaType+lambdaType :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.LambdaType+lambdaType tparams tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.LambdaType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.LambdaType+lambdaTypeTparams :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm [Syntax.ParamType]+lambdaTypeTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.LambdaType"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.LambdaType+lambdaTypeTpe :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm Syntax.Type+lambdaTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.LambdaType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the tparams field of hydra.scala.syntax.LambdaType+lambdaTypeWithTparams :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.LambdaType+lambdaTypeWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.LambdaType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.LambdaType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.LambdaType+lambdaTypeWithTpe :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.LambdaType+lambdaTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.LambdaType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.LambdaType"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the boolean variant of hydra.scala.syntax.Lit+litBoolean :: Typed.TypedTerm Bool -> Typed.TypedTerm Syntax.Lit+litBoolean x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "boolean"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the byte variant of hydra.scala.syntax.Lit+litByte :: Typed.TypedTerm I.Int8 -> Typed.TypedTerm Syntax.Lit+litByte x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "byte"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the bytes variant of hydra.scala.syntax.Lit+litBytes :: Typed.TypedTerm [Int] -> Typed.TypedTerm Syntax.Lit+litBytes x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "bytes"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the char variant of hydra.scala.syntax.Lit+litChar :: Typed.TypedTerm Int -> Typed.TypedTerm Syntax.Lit+litChar x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "char"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the double variant of hydra.scala.syntax.Lit+litDouble :: Typed.TypedTerm Double -> Typed.TypedTerm Syntax.Lit+litDouble x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "double"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the float variant of hydra.scala.syntax.Lit+litFloat :: Typed.TypedTerm Float -> Typed.TypedTerm Syntax.Lit+litFloat x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "float"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the int variant of hydra.scala.syntax.Lit+litInt :: Typed.TypedTerm Int -> Typed.TypedTerm Syntax.Lit+litInt x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "int"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the long variant of hydra.scala.syntax.Lit+litLong :: Typed.TypedTerm I.Int64 -> Typed.TypedTerm Syntax.Lit+litLong x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "long"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the null variant of hydra.scala.syntax.Lit+litNull :: Typed.TypedTerm Syntax.Lit+litNull =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "null"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the short variant of hydra.scala.syntax.Lit+litShort :: Typed.TypedTerm I.Int16 -> Typed.TypedTerm Syntax.Lit+litShort x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "short"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the string variant of hydra.scala.syntax.Lit+litString :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Lit+litString x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "string"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the symbol variant of hydra.scala.syntax.Lit+litSymbol :: Typed.TypedTerm Syntax.ScalaSymbol -> Typed.TypedTerm Syntax.Lit+litSymbol x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "symbol"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the unit variant of hydra.scala.syntax.Lit+litUnit :: Typed.TypedTerm Syntax.Lit+litUnit =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Lit"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "unit"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.scala.syntax.MatchData+matchData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.MatchData+matchData expr cases =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MatchData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm cases)}]}))++-- | DSL accessor for the cases field of hydra.scala.syntax.MatchData+matchDataCases :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm [Syntax.Case]+matchDataCases x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchData"),+        Model.projectionFieldName = (Model.Name "cases")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the expr field of hydra.scala.syntax.MatchData+matchDataExpr :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm Syntax.Data+matchDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cases field of hydra.scala.syntax.MatchData+matchDataWithCases :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.MatchData+matchDataWithCases original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MatchData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the expr field of hydra.scala.syntax.MatchData+matchDataWithExpr :: Typed.TypedTerm Syntax.MatchData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.MatchData+matchDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MatchData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchData"),+              Model.projectionFieldName = (Model.Name "cases")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.MatchType+matchType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm [Syntax.TypeCase] -> Typed.TypedTerm Syntax.MatchType+matchType tpe cases =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MatchType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm cases)}]}))++-- | DSL accessor for the cases field of hydra.scala.syntax.MatchType+matchTypeCases :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm [Syntax.TypeCase]+matchTypeCases x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchType"),+        Model.projectionFieldName = (Model.Name "cases")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.MatchType+matchTypeTpe :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm Syntax.Type+matchTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cases field of hydra.scala.syntax.MatchType+matchTypeWithCases :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm [Syntax.TypeCase] -> Typed.TypedTerm Syntax.MatchType+matchTypeWithCases original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MatchType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.MatchType+matchTypeWithTpe :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.MatchType+matchTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MatchType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MatchType"),+              Model.projectionFieldName = (Model.Name "cases")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the self variant of hydra.scala.syntax.Member+memberSelf :: Typed.TypedTerm Syntax.Self -> Typed.TypedTerm Syntax.Member+memberSelf x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Member"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "self"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the term variant of hydra.scala.syntax.Member+memberTerm :: Typed.TypedTerm Syntax.DataMember -> Typed.TypedTerm Syntax.Member+memberTerm x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Member"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "term"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the termParam variant of hydra.scala.syntax.Member+memberTermParam :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Member+memberTermParam x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Member"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "termParam"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the type variant of hydra.scala.syntax.Member+memberType :: Typed.TypedTerm Syntax.TypeMember -> Typed.TypedTerm Syntax.Member+memberType x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Member"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "type"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the typeParam variant of hydra.scala.syntax.Member+memberTypeParam :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm Syntax.Member+memberTypeParam x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Member"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "typeParam"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.MethodType+methodType :: Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.MethodType+methodType paramss tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MethodType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm paramss)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the paramss field of hydra.scala.syntax.MethodType+methodTypeParamss :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm [[Syntax.ParamData]]+methodTypeParamss x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MethodType"),+        Model.projectionFieldName = (Model.Name "paramss")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.MethodType+methodTypeTpe :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm Syntax.Type+methodTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MethodType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the paramss field of hydra.scala.syntax.MethodType+methodTypeWithParamss :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.MethodType+methodTypeWithParamss original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MethodType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MethodType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.MethodType+methodTypeWithTpe :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.MethodType+methodTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.MethodType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.MethodType"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the abstract variant of hydra.scala.syntax.Mod+modAbstract :: Typed.TypedTerm Syntax.Mod+modAbstract =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "abstract"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the annot variant of hydra.scala.syntax.Mod+modAnnot :: Typed.TypedTerm Syntax.AnnotMod -> Typed.TypedTerm Syntax.Mod+modAnnot x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "annot"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the case variant of hydra.scala.syntax.Mod+modCase :: Typed.TypedTerm Syntax.Mod+modCase =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "case"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the contravariant variant of hydra.scala.syntax.Mod+modContravariant :: Typed.TypedTerm Syntax.Mod+modContravariant =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "contravariant"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the covariant variant of hydra.scala.syntax.Mod+modCovariant :: Typed.TypedTerm Syntax.Mod+modCovariant =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "covariant"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the final variant of hydra.scala.syntax.Mod+modFinal :: Typed.TypedTerm Syntax.Mod+modFinal =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "final"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the implicit variant of hydra.scala.syntax.Mod+modImplicit :: Typed.TypedTerm Syntax.Mod+modImplicit =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "implicit"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the infix variant of hydra.scala.syntax.Mod+modInfix :: Typed.TypedTerm Syntax.Mod+modInfix =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "infix"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the inline variant of hydra.scala.syntax.Mod+modInline :: Typed.TypedTerm Syntax.Mod+modInline =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "inline"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the lazy variant of hydra.scala.syntax.Mod+modLazy :: Typed.TypedTerm Syntax.Mod+modLazy =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "lazy"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the opaque variant of hydra.scala.syntax.Mod+modOpaque :: Typed.TypedTerm Syntax.Mod+modOpaque =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "opaque"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the open variant of hydra.scala.syntax.Mod+modOpen :: Typed.TypedTerm Syntax.Mod+modOpen =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "open"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the override variant of hydra.scala.syntax.Mod+modOverride :: Typed.TypedTerm Syntax.Mod+modOverride =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "override"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the private variant of hydra.scala.syntax.Mod+modPrivate :: Typed.TypedTerm Syntax.PrivateMod -> Typed.TypedTerm Syntax.Mod+modPrivate x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "private"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the protected variant of hydra.scala.syntax.Mod+modProtected :: Typed.TypedTerm Syntax.ProtectedMod -> Typed.TypedTerm Syntax.Mod+modProtected x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "protected"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the sealed variant of hydra.scala.syntax.Mod+modSealed :: Typed.TypedTerm Syntax.Mod+modSealed =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "sealed"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the super variant of hydra.scala.syntax.Mod+modSuper :: Typed.TypedTerm Syntax.Mod+modSuper =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "super"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the transparent variant of hydra.scala.syntax.Mod+modTransparent :: Typed.TypedTerm Syntax.Mod+modTransparent =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "transparent"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the using variant of hydra.scala.syntax.Mod+modUsing :: Typed.TypedTerm Syntax.Mod+modUsing =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "using"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the valParam variant of hydra.scala.syntax.Mod+modValParam :: Typed.TypedTerm Syntax.Mod+modValParam =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "valParam"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the varParam variant of hydra.scala.syntax.Mod+modVarParam :: Typed.TypedTerm Syntax.Mod+modVarParam =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Mod"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "varParam"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the anonymous variant of hydra.scala.syntax.Name+nameAnonymous :: Typed.TypedTerm Syntax.Name+nameAnonymous =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Name"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "anonymous"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.scala.syntax.NameData+nameData :: Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm Syntax.NameData+nameData value =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NameData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "value"),+          Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL accessor for the value field of hydra.scala.syntax.NameData+nameDataValue :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.PredefString+nameDataValue x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.NameData"),+        Model.projectionFieldName = (Model.Name "value")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the value field of hydra.scala.syntax.NameData+nameDataWithValue :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm Syntax.NameData+nameDataWithValue original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NameData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "value"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.NameImportee+nameImportee :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.NameImportee+nameImportee name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NameImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.NameImportee+nameImporteeName :: Typed.TypedTerm Syntax.NameImportee -> Typed.TypedTerm Syntax.Name+nameImporteeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.NameImportee"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.NameImportee+nameImporteeWithName :: Typed.TypedTerm Syntax.NameImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.NameImportee+nameImporteeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NameImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the indeterminate variant of hydra.scala.syntax.Name+nameIndeterminate :: Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm Syntax.Name+nameIndeterminate x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Name"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "indeterminate"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.NameType+nameType :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.NameType+nameType value =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NameType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "value"),+          Model.fieldTerm = (Typed.unTypedTerm value)}]}))++-- | DSL accessor for the value field of hydra.scala.syntax.NameType+nameTypeValue :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm String+nameTypeValue x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.NameType"),+        Model.projectionFieldName = (Model.Name "value")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the value field of hydra.scala.syntax.NameType+nameTypeWithValue :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.NameType+nameTypeWithValue original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NameType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "value"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the value variant of hydra.scala.syntax.Name+nameValue :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.Name+nameValue x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Name"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "value"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.NewAnonymousData+newAnonymousData :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.NewAnonymousData+newAnonymousData templ =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NewAnonymousData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Typed.unTypedTerm templ)}]}))++-- | DSL accessor for the templ field of hydra.scala.syntax.NewAnonymousData+newAnonymousDataTempl :: Typed.TypedTerm Syntax.NewAnonymousData -> Typed.TypedTerm Syntax.Template+newAnonymousDataTempl x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.NewAnonymousData"),+        Model.projectionFieldName = (Model.Name "templ")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the templ field of hydra.scala.syntax.NewAnonymousData+newAnonymousDataWithTempl :: Typed.TypedTerm Syntax.NewAnonymousData -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.NewAnonymousData+newAnonymousDataWithTempl original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NewAnonymousData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "templ"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.NewData+newData :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.NewData+newData init =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NewData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Typed.unTypedTerm init)}]}))++-- | DSL accessor for the init field of hydra.scala.syntax.NewData+newDataInit :: Typed.TypedTerm Syntax.NewData -> Typed.TypedTerm Syntax.Init+newDataInit x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.NewData"),+        Model.projectionFieldName = (Model.Name "init")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the init field of hydra.scala.syntax.NewData+newDataWithInit :: Typed.TypedTerm Syntax.NewData -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.NewData+newDataWithInit original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.NewData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ObjectDefn+objectDefn :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ObjectDefn+objectDefn name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ObjectDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.ObjectDefn+objectDefnName :: Typed.TypedTerm Syntax.ObjectDefn -> Typed.TypedTerm Syntax.NameData+objectDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.ObjectDefn+objectDefnWithName :: Typed.TypedTerm Syntax.ObjectDefn -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ObjectDefn+objectDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ObjectDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ObjectPkg+objectPkg :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ObjectPkg+objectPkg mods name template =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm template)}]}))++-- | DSL accessor for the mods field of hydra.scala.syntax.ObjectPkg+objectPkgMods :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm [Syntax.Mod]+objectPkgMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.ObjectPkg+objectPkgName :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.NameData+objectPkgName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the template field of hydra.scala.syntax.ObjectPkg+objectPkgTemplate :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.Template+objectPkgTemplate x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+        Model.projectionFieldName = (Model.Name "template")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the mods field of hydra.scala.syntax.ObjectPkg+objectPkgWithMods :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ObjectPkg+objectPkgWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.ObjectPkg+objectPkgWithName :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.ObjectPkg+objectPkgWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the template field of hydra.scala.syntax.ObjectPkg+objectPkgWithTemplate :: Typed.TypedTerm Syntax.ObjectPkg -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.ObjectPkg+objectPkgWithTemplate original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ObjectPkg"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.OrType+orType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.OrType+orType lhs rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.OrType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.OrType+orTypeLhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type+orTypeLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.OrType"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.OrType+orTypeRhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type+orTypeRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.OrType"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.OrType+orTypeWithLhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.OrType+orTypeWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.OrType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.OrType"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.OrType+orTypeWithRhs :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.OrType+orTypeWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.OrType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.OrType"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ParamData+paramData :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.ParamData+paramData mods name decltpe default_ =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)},+        Model.Field {+          Model.fieldName = (Model.Name "default"),+          Model.fieldTerm = (Typed.unTypedTerm default_)}]}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.ParamData+paramDataDecltpe :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Type)+paramDataDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the default field of hydra.scala.syntax.ParamData+paramDataDefault :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Data)+paramDataDefault x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+        Model.projectionFieldName = (Model.Name "default")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.ParamData+paramDataMods :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm [Syntax.Mod]+paramDataMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.ParamData+paramDataName :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Name+paramDataName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.ParamData+paramDataWithDecltpe :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.ParamData+paramDataWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "default"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "default")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the default field of hydra.scala.syntax.ParamData+paramDataWithDefault :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.ParamData+paramDataWithDefault original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "default"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.ParamData+paramDataWithMods :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ParamData+paramDataWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "default"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "default")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.ParamData+paramDataWithName :: Typed.TypedTerm Syntax.ParamData -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.ParamData+paramDataWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "default"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamData"),+              Model.projectionFieldName = (Model.Name "default")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ParamType+paramType :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm [Syntax.TypeBounds] -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ParamType+paramType mods name tparams tbounds vbounds cbounds =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "tbounds"),+          Model.fieldTerm = (Typed.unTypedTerm tbounds)},+        Model.Field {+          Model.fieldName = (Model.Name "vbounds"),+          Model.fieldTerm = (Typed.unTypedTerm vbounds)},+        Model.Field {+          Model.fieldName = (Model.Name "cbounds"),+          Model.fieldTerm = (Typed.unTypedTerm cbounds)}]}))++-- | DSL accessor for the cbounds field of hydra.scala.syntax.ParamType+paramTypeCbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type]+paramTypeCbounds x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+        Model.projectionFieldName = (Model.Name "cbounds")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.ParamType+paramTypeMods :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Mod]+paramTypeMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.ParamType+paramTypeName :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm Syntax.Name+paramTypeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tbounds field of hydra.scala.syntax.ParamType+paramTypeTbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.TypeBounds]+paramTypeTbounds x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+        Model.projectionFieldName = (Model.Name "tbounds")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.ParamType+paramTypeTparams :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.ParamType]+paramTypeTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the vbounds field of hydra.scala.syntax.ParamType+paramTypeVbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type]+paramTypeVbounds x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+        Model.projectionFieldName = (Model.Name "vbounds")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cbounds field of hydra.scala.syntax.ParamType+paramTypeWithCbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ParamType+paramTypeWithCbounds original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "vbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "vbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cbounds"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.ParamType+paramTypeWithMods :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ParamType+paramTypeWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "vbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "vbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "cbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.ParamType+paramTypeWithName :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.ParamType+paramTypeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "vbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "vbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "cbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tbounds field of hydra.scala.syntax.ParamType+paramTypeWithTbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.TypeBounds] -> Typed.TypedTerm Syntax.ParamType+paramTypeWithTbounds original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tbounds"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "vbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "vbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "cbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.ParamType+paramTypeWithTparams :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.ParamType+paramTypeWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "vbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "vbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "cbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the vbounds field of hydra.scala.syntax.ParamType+paramTypeWithVbounds :: Typed.TypedTerm Syntax.ParamType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.ParamType+paramTypeWithVbounds original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "tbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "vbounds"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "cbounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ParamType"),+              Model.projectionFieldName = (Model.Name "cbounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.PartialFunctionData+partialFunctionData :: Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.PartialFunctionData+partialFunctionData cases =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PartialFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm cases)}]}))++-- | DSL accessor for the cases field of hydra.scala.syntax.PartialFunctionData+partialFunctionDataCases :: Typed.TypedTerm Syntax.PartialFunctionData -> Typed.TypedTerm [Syntax.Case]+partialFunctionDataCases x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PartialFunctionData"),+        Model.projectionFieldName = (Model.Name "cases")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cases field of hydra.scala.syntax.PartialFunctionData+partialFunctionDataWithCases :: Typed.TypedTerm Syntax.PartialFunctionData -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.PartialFunctionData+partialFunctionDataWithCases original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PartialFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the alternative variant of hydra.scala.syntax.Pat+patAlternative :: Typed.TypedTerm Syntax.AlternativePat -> Typed.TypedTerm Syntax.Pat+patAlternative x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "alternative"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the bind variant of hydra.scala.syntax.Pat+patBind :: Typed.TypedTerm Syntax.BindPat -> Typed.TypedTerm Syntax.Pat+patBind x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "bind"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the extract variant of hydra.scala.syntax.Pat+patExtract :: Typed.TypedTerm Syntax.ExtractPat -> Typed.TypedTerm Syntax.Pat+patExtract x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "extract"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the extractInfix variant of hydra.scala.syntax.Pat+patExtractInfix :: Typed.TypedTerm Syntax.ExtractInfixPat -> Typed.TypedTerm Syntax.Pat+patExtractInfix x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "extractInfix"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the given variant of hydra.scala.syntax.Pat+patGiven :: Typed.TypedTerm Syntax.GivenPat -> Typed.TypedTerm Syntax.Pat+patGiven x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "given"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the interpolate variant of hydra.scala.syntax.Pat+patInterpolate :: Typed.TypedTerm Syntax.InterpolatePat -> Typed.TypedTerm Syntax.Pat+patInterpolate x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "interpolate"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the repeated variant of hydra.scala.syntax.Pat+patRepeated :: Typed.TypedTerm Syntax.RepeatedPat -> Typed.TypedTerm Syntax.Pat+patRepeated x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "repeated"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the seqWildcard variant of hydra.scala.syntax.Pat+patSeqWildcard :: Typed.TypedTerm Syntax.Pat+patSeqWildcard =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "seqWildcard"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL injection for the tuple variant of hydra.scala.syntax.Pat+patTuple :: Typed.TypedTerm Syntax.TuplePat -> Typed.TypedTerm Syntax.Pat+patTuple x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "tuple"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the typed variant of hydra.scala.syntax.Pat+patTyped :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Pat+patTyped x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "typed"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the var variant of hydra.scala.syntax.Pat+patVar :: Typed.TypedTerm Syntax.VarPat -> Typed.TypedTerm Syntax.Pat+patVar x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "var"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the wildcard variant of hydra.scala.syntax.Pat+patWildcard :: Typed.TypedTerm Syntax.Pat+patWildcard =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Pat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "wildcard"),+        Model.fieldTerm = Model.TermUnit}}))++-- | DSL constructor for hydra.scala.syntax.Pkg+pkg :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Pkg+pkg name ref stats =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Typed.unTypedTerm ref)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm stats)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.Pkg+pkgName :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.NameData+pkgName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the ref field of hydra.scala.syntax.Pkg+pkgRef :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.RefData+pkgRef x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+        Model.projectionFieldName = (Model.Name "ref")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the stats field of hydra.scala.syntax.Pkg+pkgStats :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm [Syntax.Stat]+pkgStats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+        Model.projectionFieldName = (Model.Name "stats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.Pkg+pkgWithName :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.Pkg+pkgWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+              Model.projectionFieldName = (Model.Name "ref")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the ref field of hydra.scala.syntax.Pkg+pkgWithRef :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.Pkg+pkgWithRef original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the stats field of hydra.scala.syntax.Pkg+pkgWithStats :: Typed.TypedTerm Syntax.Pkg -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Pkg+pkgWithStats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Pkg"),+              Model.projectionFieldName = (Model.Name "ref")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.PlaceholderType+placeholderType :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.PlaceholderType+placeholderType bounds =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PlaceholderType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "bounds"),+          Model.fieldTerm = (Typed.unTypedTerm bounds)}]}))++-- | DSL accessor for the bounds field of hydra.scala.syntax.PlaceholderType+placeholderTypeBounds :: Typed.TypedTerm Syntax.PlaceholderType -> Typed.TypedTerm Syntax.TypeBounds+placeholderTypeBounds x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PlaceholderType"),+        Model.projectionFieldName = (Model.Name "bounds")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the bounds field of hydra.scala.syntax.PlaceholderType+placeholderTypeWithBounds :: Typed.TypedTerm Syntax.PlaceholderType -> Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.PlaceholderType+placeholderTypeWithBounds original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PlaceholderType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "bounds"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.PolyFunctionData+polyFunctionData :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.PolyFunctionData+polyFunctionData tparams body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.PolyFunctionData+polyFunctionDataBody :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm Syntax.Data+polyFunctionDataBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionData"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.PolyFunctionData+polyFunctionDataTparams :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm [Syntax.ParamType]+polyFunctionDataTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionData"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.PolyFunctionData+polyFunctionDataWithBody :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.PolyFunctionData+polyFunctionDataWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionData"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.PolyFunctionData+polyFunctionDataWithTparams :: Typed.TypedTerm Syntax.PolyFunctionData -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PolyFunctionData+polyFunctionDataWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionData"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.PolyFunctionType+polyFunctionType :: Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.PolyFunctionType+polyFunctionType tparams tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.PolyFunctionType+polyFunctionTypeTparams :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm [Syntax.ParamType]+polyFunctionTypeTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionType"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.PolyFunctionType+polyFunctionTypeTpe :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm Syntax.Type+polyFunctionTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the tparams field of hydra.scala.syntax.PolyFunctionType+polyFunctionTypeWithTparams :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PolyFunctionType+polyFunctionTypeWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.PolyFunctionType+polyFunctionTypeWithTpe :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.PolyFunctionType+polyFunctionTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PolyFunctionType"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.scala.syntax.PredefString wrapper+predefString :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.PredefString+predefString x =+    Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+      Model.wrappedTermTypeName = (Model.Name "hydra.scala.syntax.PredefString"),+      Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.PrimaryCtor+primaryCtor :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.PrimaryCtor+primaryCtor mods name paramss =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm paramss)}]}))++-- | DSL accessor for the mods field of hydra.scala.syntax.PrimaryCtor+primaryCtorMods :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [Syntax.Mod]+primaryCtorMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.PrimaryCtor+primaryCtorName :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Name+primaryCtorName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the paramss field of hydra.scala.syntax.PrimaryCtor+primaryCtorParamss :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [[Syntax.ParamData]]+primaryCtorParamss x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+        Model.projectionFieldName = (Model.Name "paramss")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the mods field of hydra.scala.syntax.PrimaryCtor+primaryCtorWithMods :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.PrimaryCtor+primaryCtorWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.PrimaryCtor+primaryCtorWithName :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.PrimaryCtor+primaryCtorWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the paramss field of hydra.scala.syntax.PrimaryCtor+primaryCtorWithParamss :: Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.PrimaryCtor+primaryCtorWithParamss original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrimaryCtor"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.PrivateMod+privateMod :: Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.PrivateMod+privateMod within =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PrivateMod"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "within"),+          Model.fieldTerm = (Typed.unTypedTerm within)}]}))++-- | DSL updater for the within field of hydra.scala.syntax.PrivateMod+privateModWithWithin :: Typed.TypedTerm Syntax.PrivateMod -> Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.PrivateMod+privateModWithWithin original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.PrivateMod"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "within"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the within field of hydra.scala.syntax.PrivateMod+privateModWithin :: Typed.TypedTerm Syntax.PrivateMod -> Typed.TypedTerm Syntax.Ref+privateModWithin x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.PrivateMod"),+        Model.projectionFieldName = (Model.Name "within")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.ProjectType+projectType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ProjectType+projectType qual name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ProjectType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Typed.unTypedTerm qual)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.ProjectType+projectTypeName :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.NameType+projectTypeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ProjectType"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qual field of hydra.scala.syntax.ProjectType+projectTypeQual :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.Type+projectTypeQual x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ProjectType"),+        Model.projectionFieldName = (Model.Name "qual")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.ProjectType+projectTypeWithName :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.ProjectType+projectTypeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ProjectType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ProjectType"),+              Model.projectionFieldName = (Model.Name "qual")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the qual field of hydra.scala.syntax.ProjectType+projectTypeWithQual :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ProjectType+projectTypeWithQual original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ProjectType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ProjectType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ProtectedMod+protectedMod :: Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.ProtectedMod+protectedMod within =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ProtectedMod"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "within"),+          Model.fieldTerm = (Typed.unTypedTerm within)}]}))++-- | DSL updater for the within field of hydra.scala.syntax.ProtectedMod+protectedModWithWithin :: Typed.TypedTerm Syntax.ProtectedMod -> Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.ProtectedMod+protectedModWithWithin original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ProtectedMod"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "within"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the within field of hydra.scala.syntax.ProtectedMod+protectedModWithin :: Typed.TypedTerm Syntax.ProtectedMod -> Typed.TypedTerm Syntax.Ref+protectedModWithin x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ProtectedMod"),+        Model.projectionFieldName = (Model.Name "within")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL injection for the anonymous variant of hydra.scala.syntax.RefData+refDataAnonymous :: Typed.TypedTerm Syntax.AnonymousData -> Typed.TypedTerm Syntax.RefData+refDataAnonymous x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefData"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "anonymous"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the applyUnary variant of hydra.scala.syntax.RefData+refDataApplyUnary :: Typed.TypedTerm Syntax.ApplyUnaryData -> Typed.TypedTerm Syntax.RefData+refDataApplyUnary x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefData"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "applyUnary"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the name variant of hydra.scala.syntax.RefData+refDataName :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RefData+refDataName x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefData"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "name"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the select variant of hydra.scala.syntax.RefData+refDataSelect :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.RefData+refDataSelect x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefData"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "select"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the super variant of hydra.scala.syntax.RefData+refDataSuper :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.RefData+refDataSuper x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefData"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "super"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the this variant of hydra.scala.syntax.RefData+refDataThis :: Typed.TypedTerm Syntax.ThisData -> Typed.TypedTerm Syntax.RefData+refDataThis x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefData"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "this"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the init variant of hydra.scala.syntax.Ref+refInit :: Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.Ref+refInit x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Ref"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "init"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the name variant of hydra.scala.syntax.Ref+refName :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Ref+refName x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Ref"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "name"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the name variant of hydra.scala.syntax.RefType+refTypeName :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.RefType+refTypeName x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefType"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "name"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the project variant of hydra.scala.syntax.RefType+refTypeProject :: Typed.TypedTerm Syntax.ProjectType -> Typed.TypedTerm Syntax.RefType+refTypeProject x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefType"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "project"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the select variant of hydra.scala.syntax.RefType+refTypeSelect :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.RefType+refTypeSelect x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefType"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "select"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the singleton variant of hydra.scala.syntax.RefType+refTypeSingleton :: Typed.TypedTerm Syntax.SingletonType -> Typed.TypedTerm Syntax.RefType+refTypeSingleton x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.RefType"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "singleton"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.RefineType+refineType :: Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.RefineType+refineType tpe stats =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RefineType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm stats)}]}))++-- | DSL accessor for the stats field of hydra.scala.syntax.RefineType+refineTypeStats :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm [Syntax.Stat]+refineTypeStats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RefineType"),+        Model.projectionFieldName = (Model.Name "stats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.RefineType+refineTypeTpe :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm (Maybe Syntax.Type)+refineTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RefineType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the stats field of hydra.scala.syntax.RefineType+refineTypeWithStats :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.RefineType+refineTypeWithStats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RefineType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RefineType"),+              Model.projectionFieldName = (Model.Name "tpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tpe field of hydra.scala.syntax.RefineType+refineTypeWithTpe :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.RefineType+refineTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RefineType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RefineType"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.RenameImportee+renameImportee :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.RenameImportee+renameImportee name rename =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RenameImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "rename"),+          Model.fieldTerm = (Typed.unTypedTerm rename)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.RenameImportee+renameImporteeName :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name+renameImporteeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RenameImportee"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rename field of hydra.scala.syntax.RenameImportee+renameImporteeRename :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name+renameImporteeRename x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RenameImportee"),+        Model.projectionFieldName = (Model.Name "rename")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.RenameImportee+renameImporteeWithName :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.RenameImportee+renameImporteeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RenameImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rename"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RenameImportee"),+              Model.projectionFieldName = (Model.Name "rename")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rename field of hydra.scala.syntax.RenameImportee+renameImporteeWithRename :: Typed.TypedTerm Syntax.RenameImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.RenameImportee+renameImporteeWithRename original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RenameImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RenameImportee"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rename"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.RepeatedData+repeatedData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.RepeatedData+repeatedData expr =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)}]}))++-- | DSL accessor for the expr field of hydra.scala.syntax.RepeatedData+repeatedDataExpr :: Typed.TypedTerm Syntax.RepeatedData -> Typed.TypedTerm Syntax.Data+repeatedDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RepeatedData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expr field of hydra.scala.syntax.RepeatedData+repeatedDataWithExpr :: Typed.TypedTerm Syntax.RepeatedData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.RepeatedData+repeatedDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.NameData] -> Typed.TypedTerm Syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefn mods cases =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm cases)}]}))++-- | DSL accessor for the cases field of hydra.scala.syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefnCases :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.NameData]+repeatedEnumCaseDefnCases x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),+        Model.projectionFieldName = (Model.Name "cases")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefnMods :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.Mod]+repeatedEnumCaseDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the cases field of hydra.scala.syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefnWithCases :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.NameData] -> Typed.TypedTerm Syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefnWithCases original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefnWithMods :: Typed.TypedTerm Syntax.RepeatedEnumCaseDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.RepeatedEnumCaseDefn+repeatedEnumCaseDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "cases"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"),+              Model.projectionFieldName = (Model.Name "cases")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.RepeatedPat+repeatedPat :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RepeatedPat+repeatedPat name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.RepeatedPat+repeatedPatName :: Typed.TypedTerm Syntax.RepeatedPat -> Typed.TypedTerm Syntax.NameData+repeatedPatName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RepeatedPat"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.RepeatedPat+repeatedPatWithName :: Typed.TypedTerm Syntax.RepeatedPat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.RepeatedPat+repeatedPatWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.RepeatedType+repeatedType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.RepeatedType+repeatedType tpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm tpe)}]}))++-- | DSL accessor for the tpe field of hydra.scala.syntax.RepeatedType+repeatedTypeTpe :: Typed.TypedTerm Syntax.RepeatedType -> Typed.TypedTerm Syntax.Type+repeatedTypeTpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.RepeatedType"),+        Model.projectionFieldName = (Model.Name "tpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the tpe field of hydra.scala.syntax.RepeatedType+repeatedTypeWithTpe :: Typed.TypedTerm Syntax.RepeatedType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.RepeatedType+repeatedTypeWithTpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.RepeatedType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "tpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ReturnData+returnData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ReturnData+returnData expr =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ReturnData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)}]}))++-- | DSL accessor for the expr field of hydra.scala.syntax.ReturnData+returnDataExpr :: Typed.TypedTerm Syntax.ReturnData -> Typed.TypedTerm Syntax.Data+returnDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ReturnData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expr field of hydra.scala.syntax.ReturnData+returnDataWithExpr :: Typed.TypedTerm Syntax.ReturnData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ReturnData+returnDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ReturnData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ScalaSymbol+scalaSymbol :: Typed.TypedTerm String -> Typed.TypedTerm Syntax.ScalaSymbol+scalaSymbol name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ScalaSymbol"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.ScalaSymbol+scalaSymbolName :: Typed.TypedTerm Syntax.ScalaSymbol -> Typed.TypedTerm String+scalaSymbolName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ScalaSymbol"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.ScalaSymbol+scalaSymbolWithName :: Typed.TypedTerm Syntax.ScalaSymbol -> Typed.TypedTerm String -> Typed.TypedTerm Syntax.ScalaSymbol+scalaSymbolWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ScalaSymbol"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.SecondaryCtor+secondaryCtor :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.SecondaryCtor+secondaryCtor mods name paramss init stats =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm paramss)},+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Typed.unTypedTerm init)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm stats)}]}))++-- | DSL accessor for the init field of hydra.scala.syntax.SecondaryCtor+secondaryCtorInit :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Init+secondaryCtorInit x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+        Model.projectionFieldName = (Model.Name "init")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.SecondaryCtor+secondaryCtorMods :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Mod]+secondaryCtorMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.SecondaryCtor+secondaryCtorName :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Name+secondaryCtorName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the paramss field of hydra.scala.syntax.SecondaryCtor+secondaryCtorParamss :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [[Syntax.ParamData]]+secondaryCtorParamss x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+        Model.projectionFieldName = (Model.Name "paramss")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the stats field of hydra.scala.syntax.SecondaryCtor+secondaryCtorStats :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Stat]+secondaryCtorStats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+        Model.projectionFieldName = (Model.Name "stats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the init field of hydra.scala.syntax.SecondaryCtor+secondaryCtorWithInit :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Init -> Typed.TypedTerm Syntax.SecondaryCtor+secondaryCtorWithInit original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.SecondaryCtor+secondaryCtorWithMods :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.SecondaryCtor+secondaryCtorWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "init")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.SecondaryCtor+secondaryCtorWithName :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SecondaryCtor+secondaryCtorWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "init")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the paramss field of hydra.scala.syntax.SecondaryCtor+secondaryCtorWithParamss :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [[Syntax.ParamData]] -> Typed.TypedTerm Syntax.SecondaryCtor+secondaryCtorWithParamss original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "init")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the stats field of hydra.scala.syntax.SecondaryCtor+secondaryCtorWithStats :: Typed.TypedTerm Syntax.SecondaryCtor -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.SecondaryCtor+secondaryCtorWithStats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "paramss"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "paramss")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "init"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SecondaryCtor"),+              Model.projectionFieldName = (Model.Name "init")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.SelectData+selectData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.SelectData+selectData qual name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SelectData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Typed.unTypedTerm qual)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.SelectData+selectDataName :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.NameData+selectDataName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectData"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qual field of hydra.scala.syntax.SelectData+selectDataQual :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.Data+selectDataQual x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectData"),+        Model.projectionFieldName = (Model.Name "qual")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.SelectData+selectDataWithName :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.SelectData+selectDataWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SelectData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectData"),+              Model.projectionFieldName = (Model.Name "qual")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the qual field of hydra.scala.syntax.SelectData+selectDataWithQual :: Typed.TypedTerm Syntax.SelectData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.SelectData+selectDataWithQual original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SelectData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectData"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.SelectType+selectType :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.SelectType+selectType qual name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SelectType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Typed.unTypedTerm qual)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.SelectType+selectTypeName :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.NameType+selectTypeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectType"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the qual field of hydra.scala.syntax.SelectType+selectTypeQual :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.RefData+selectTypeQual x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectType"),+        Model.projectionFieldName = (Model.Name "qual")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.SelectType+selectTypeWithName :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.SelectType+selectTypeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SelectType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectType"),+              Model.projectionFieldName = (Model.Name "qual")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the qual field of hydra.scala.syntax.SelectType+selectTypeWithQual :: Typed.TypedTerm Syntax.SelectType -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.SelectType+selectTypeWithQual original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SelectType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "qual"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SelectType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for the hydra.scala.syntax.Self wrapper+self :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.Self+self x =+    Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+      Model.wrappedTermTypeName = (Model.Name "hydra.scala.syntax.Self"),+      Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.SingletonType+singletonType :: Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.SingletonType+singletonType ref =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SingletonType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Typed.unTypedTerm ref)}]}))++-- | DSL accessor for the ref field of hydra.scala.syntax.SingletonType+singletonTypeRef :: Typed.TypedTerm Syntax.SingletonType -> Typed.TypedTerm Syntax.RefData+singletonTypeRef x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SingletonType"),+        Model.projectionFieldName = (Model.Name "ref")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the ref field of hydra.scala.syntax.SingletonType+singletonTypeWithRef :: Typed.TypedTerm Syntax.SingletonType -> Typed.TypedTerm Syntax.RefData -> Typed.TypedTerm Syntax.SingletonType+singletonTypeWithRef original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SingletonType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "ref"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.Source+source :: Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Source+source stats =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Source"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm stats)}]}))++-- | DSL accessor for the stats field of hydra.scala.syntax.Source+sourceStats :: Typed.TypedTerm Syntax.Source -> Typed.TypedTerm [Syntax.Stat]+sourceStats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Source"),+        Model.projectionFieldName = (Model.Name "stats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the stats field of hydra.scala.syntax.Source+sourceWithStats :: Typed.TypedTerm Syntax.Source -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Source+sourceWithStats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Source"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the decl variant of hydra.scala.syntax.Stat+statDecl :: Typed.TypedTerm Syntax.Decl -> Typed.TypedTerm Syntax.Stat+statDecl x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Stat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "decl"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the defn variant of hydra.scala.syntax.Stat+statDefn :: Typed.TypedTerm Syntax.Defn -> Typed.TypedTerm Syntax.Stat+statDefn x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Stat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "defn"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the importExport variant of hydra.scala.syntax.Stat+statImportExport :: Typed.TypedTerm Syntax.ImportExportStat -> Typed.TypedTerm Syntax.Stat+statImportExport x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Stat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "importExport"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the term variant of hydra.scala.syntax.Stat+statTerm :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Stat+statTerm x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Stat"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "term"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.SuperData+superData :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SuperData+superData thisp superp =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SuperData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "thisp"),+          Model.fieldTerm = (Typed.unTypedTerm thisp)},+        Model.Field {+          Model.fieldName = (Model.Name "superp"),+          Model.fieldTerm = (Typed.unTypedTerm superp)}]}))++-- | DSL accessor for the superp field of hydra.scala.syntax.SuperData+superDataSuperp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name+superDataSuperp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SuperData"),+        Model.projectionFieldName = (Model.Name "superp")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the thisp field of hydra.scala.syntax.SuperData+superDataThisp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name+superDataThisp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SuperData"),+        Model.projectionFieldName = (Model.Name "thisp")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the superp field of hydra.scala.syntax.SuperData+superDataWithSuperp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SuperData+superDataWithSuperp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SuperData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "thisp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SuperData"),+              Model.projectionFieldName = (Model.Name "thisp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "superp"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the thisp field of hydra.scala.syntax.SuperData+superDataWithThisp :: Typed.TypedTerm Syntax.SuperData -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.SuperData+superDataWithThisp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.SuperData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "thisp"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "superp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.SuperData"),+              Model.projectionFieldName = (Model.Name "superp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.Template+template :: Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.Self -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Template+template early inits self stats =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Template"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "early"),+          Model.fieldTerm = (Typed.unTypedTerm early)},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Typed.unTypedTerm inits)},+        Model.Field {+          Model.fieldName = (Model.Name "self"),+          Model.fieldTerm = (Typed.unTypedTerm self)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm stats)}]}))++-- | DSL accessor for the early field of hydra.scala.syntax.Template+templateEarly :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat]+templateEarly x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+        Model.projectionFieldName = (Model.Name "early")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the inits field of hydra.scala.syntax.Template+templateInits :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Init]+templateInits x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+        Model.projectionFieldName = (Model.Name "inits")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the self field of hydra.scala.syntax.Template+templateSelf :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.Self+templateSelf x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+        Model.projectionFieldName = (Model.Name "self")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the stats field of hydra.scala.syntax.Template+templateStats :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat]+templateStats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+        Model.projectionFieldName = (Model.Name "stats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the early field of hydra.scala.syntax.Template+templateWithEarly :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Template+templateWithEarly original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Template"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "early"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "inits")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "self"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "self")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the inits field of hydra.scala.syntax.Template+templateWithInits :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Init] -> Typed.TypedTerm Syntax.Template+templateWithInits original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Template"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "early"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "early")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "self"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "self")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the self field of hydra.scala.syntax.Template+templateWithSelf :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.Self -> Typed.TypedTerm Syntax.Template+templateWithSelf original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Template"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "early"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "early")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "inits")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "self"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "stats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the stats field of hydra.scala.syntax.Template+templateWithStats :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm [Syntax.Stat] -> Typed.TypedTerm Syntax.Template+templateWithStats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.Template"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "early"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "early")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "inits"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "inits")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "self"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.Template"),+              Model.projectionFieldName = (Model.Name "self")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "stats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for the hydra.scala.syntax.ThisData wrapper+thisData :: Typed.TypedTerm () -> Typed.TypedTerm Syntax.ThisData+thisData x =+    Typed.TypedTerm (Model.TermWrap (Model.WrappedTerm {+      Model.wrappedTermTypeName = (Model.Name "hydra.scala.syntax.ThisData"),+      Model.wrappedTermBody = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.ThrowData+throwData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ThrowData+throwData expr =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ThrowData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)}]}))++-- | DSL accessor for the expr field of hydra.scala.syntax.ThrowData+throwDataExpr :: Typed.TypedTerm Syntax.ThrowData -> Typed.TypedTerm Syntax.Data+throwDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ThrowData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the expr field of hydra.scala.syntax.ThrowData+throwDataWithExpr :: Typed.TypedTerm Syntax.ThrowData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ThrowData+throwDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ThrowData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.TraitDefn+traitDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.TraitDefn+traitDefn mods name tparams ctor template =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm ctor)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm template)}]}))++-- | DSL accessor for the ctor field of hydra.scala.syntax.TraitDefn+traitDefnCtor :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.PrimaryCtor+traitDefnCtor x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+        Model.projectionFieldName = (Model.Name "ctor")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.TraitDefn+traitDefnMods :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.Mod]+traitDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.TraitDefn+traitDefnName :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.NameType+traitDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the template field of hydra.scala.syntax.TraitDefn+traitDefnTemplate :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.Template+traitDefnTemplate x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+        Model.projectionFieldName = (Model.Name "template")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.TraitDefn+traitDefnTparams :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.ParamType]+traitDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the ctor field of hydra.scala.syntax.TraitDefn+traitDefnWithCtor :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.PrimaryCtor -> Typed.TypedTerm Syntax.TraitDefn+traitDefnWithCtor original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.TraitDefn+traitDefnWithMods :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.TraitDefn+traitDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.TraitDefn+traitDefnWithName :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TraitDefn+traitDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the template field of hydra.scala.syntax.TraitDefn+traitDefnWithTemplate :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.TraitDefn+traitDefnWithTemplate original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.TraitDefn+traitDefnWithTparams :: Typed.TypedTerm Syntax.TraitDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TraitDefn+traitDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "ctor"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "ctor")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "template"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TraitDefn"),+              Model.projectionFieldName = (Model.Name "template")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the bounds variant of hydra.scala.syntax.Tree+treeBounds :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.Tree+treeBounds x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "bounds"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the caseTree variant of hydra.scala.syntax.Tree+treeCaseTree :: Typed.TypedTerm Syntax.CaseTree -> Typed.TypedTerm Syntax.Tree+treeCaseTree x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "caseTree"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ctor variant of hydra.scala.syntax.Tree+treeCtor :: Typed.TypedTerm Syntax.Ctor -> Typed.TypedTerm Syntax.Tree+treeCtor x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "ctor"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the enumerator variant of hydra.scala.syntax.Tree+treeEnumerator :: Typed.TypedTerm Syntax.Enumerator -> Typed.TypedTerm Syntax.Tree+treeEnumerator x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "enumerator"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the importee variant of hydra.scala.syntax.Tree+treeImportee :: Typed.TypedTerm Syntax.Importee -> Typed.TypedTerm Syntax.Tree+treeImportee x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "importee"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the importer variant of hydra.scala.syntax.Tree+treeImporter :: Typed.TypedTerm Syntax.Importer -> Typed.TypedTerm Syntax.Tree+treeImporter x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "importer"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the member variant of hydra.scala.syntax.Tree+treeMember :: Typed.TypedTerm Syntax.Member -> Typed.TypedTerm Syntax.Tree+treeMember x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "member"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the mod variant of hydra.scala.syntax.Tree+treeMod :: Typed.TypedTerm Syntax.Mod -> Typed.TypedTerm Syntax.Tree+treeMod x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "mod"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the pat variant of hydra.scala.syntax.Tree+treePat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Tree+treePat x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "pat"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ref variant of hydra.scala.syntax.Tree+treeRef :: Typed.TypedTerm Syntax.Ref -> Typed.TypedTerm Syntax.Tree+treeRef x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "ref"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the source variant of hydra.scala.syntax.Tree+treeSource :: Typed.TypedTerm Syntax.Source -> Typed.TypedTerm Syntax.Tree+treeSource x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "source"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the stat variant of hydra.scala.syntax.Tree+treeStat :: Typed.TypedTerm Syntax.Stat -> Typed.TypedTerm Syntax.Tree+treeStat x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "stat"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the template variant of hydra.scala.syntax.Tree+treeTemplate :: Typed.TypedTerm Syntax.Template -> Typed.TypedTerm Syntax.Tree+treeTemplate x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "template"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the type variant of hydra.scala.syntax.Tree+treeType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Tree+treeType x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Tree"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "type"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.TryData+tryData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryData+tryData expr catchp finallyp =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Typed.unTypedTerm catchp)},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Typed.unTypedTerm finallyp)}]}))++-- | DSL accessor for the catchp field of hydra.scala.syntax.TryData+tryDataCatchp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm [Syntax.Case]+tryDataCatchp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+        Model.projectionFieldName = (Model.Name "catchp")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the expr field of hydra.scala.syntax.TryData+tryDataExpr :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm Syntax.Data+tryDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the finallyp field of hydra.scala.syntax.TryData+tryDataFinallyp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm (Maybe Syntax.Data)+tryDataFinallyp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+        Model.projectionFieldName = (Model.Name "finallyp")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the catchp field of hydra.scala.syntax.TryData+tryDataWithCatchp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm [Syntax.Case] -> Typed.TypedTerm Syntax.TryData+tryDataWithCatchp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+              Model.projectionFieldName = (Model.Name "finallyp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the expr field of hydra.scala.syntax.TryData+tryDataWithExpr :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.TryData+tryDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+              Model.projectionFieldName = (Model.Name "catchp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+              Model.projectionFieldName = (Model.Name "finallyp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the finallyp field of hydra.scala.syntax.TryData+tryDataWithFinallyp :: Typed.TypedTerm Syntax.TryData -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryData+tryDataWithFinallyp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryData"),+              Model.projectionFieldName = (Model.Name "catchp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.TryWithHandlerData+tryWithHandlerData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryWithHandlerData+tryWithHandlerData expr catchp finallyp =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Typed.unTypedTerm catchp)},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Typed.unTypedTerm finallyp)}]}))++-- | DSL accessor for the catchp field of hydra.scala.syntax.TryWithHandlerData+tryWithHandlerDataCatchp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data+tryWithHandlerDataCatchp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+        Model.projectionFieldName = (Model.Name "catchp")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the expr field of hydra.scala.syntax.TryWithHandlerData+tryWithHandlerDataExpr :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data+tryWithHandlerDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the finallyp field of hydra.scala.syntax.TryWithHandlerData+tryWithHandlerDataFinallyp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm (Maybe Syntax.Data)+tryWithHandlerDataFinallyp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+        Model.projectionFieldName = (Model.Name "finallyp")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the catchp field of hydra.scala.syntax.TryWithHandlerData+tryWithHandlerDataWithCatchp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.TryWithHandlerData+tryWithHandlerDataWithCatchp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+              Model.projectionFieldName = (Model.Name "finallyp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the expr field of hydra.scala.syntax.TryWithHandlerData+tryWithHandlerDataWithExpr :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.TryWithHandlerData+tryWithHandlerDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+              Model.projectionFieldName = (Model.Name "catchp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+              Model.projectionFieldName = (Model.Name "finallyp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the finallyp field of hydra.scala.syntax.TryWithHandlerData+tryWithHandlerDataWithFinallyp :: Typed.TypedTerm Syntax.TryWithHandlerData -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.TryWithHandlerData+tryWithHandlerDataWithFinallyp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "catchp"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TryWithHandlerData"),+              Model.projectionFieldName = (Model.Name "catchp")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "finallyp"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.TupleData+tupleData :: Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.TupleData+tupleData args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TupleData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.TupleData+tupleDataArgs :: Typed.TypedTerm Syntax.TupleData -> Typed.TypedTerm [Syntax.Data]+tupleDataArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TupleData"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.TupleData+tupleDataWithArgs :: Typed.TypedTerm Syntax.TupleData -> Typed.TypedTerm [Syntax.Data] -> Typed.TypedTerm Syntax.TupleData+tupleDataWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TupleData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.TuplePat+tuplePat :: Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.TuplePat+tuplePat args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TuplePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.TuplePat+tuplePatArgs :: Typed.TypedTerm Syntax.TuplePat -> Typed.TypedTerm [Syntax.Pat]+tuplePatArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TuplePat"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.TuplePat+tuplePatWithArgs :: Typed.TypedTerm Syntax.TuplePat -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.TuplePat+tuplePatWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TuplePat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.TupleType+tupleType :: Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.TupleType+tupleType args =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TupleType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm args)}]}))++-- | DSL accessor for the args field of hydra.scala.syntax.TupleType+tupleTypeArgs :: Typed.TypedTerm Syntax.TupleType -> Typed.TypedTerm [Syntax.Type]+tupleTypeArgs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TupleType"),+        Model.projectionFieldName = (Model.Name "args")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the args field of hydra.scala.syntax.TupleType+tupleTypeWithArgs :: Typed.TypedTerm Syntax.TupleType -> Typed.TypedTerm [Syntax.Type] -> Typed.TypedTerm Syntax.TupleType+tupleTypeWithArgs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TupleType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "args"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the and variant of hydra.scala.syntax.Type+typeAnd :: Typed.TypedTerm Syntax.AndType -> Typed.TypedTerm Syntax.Type+typeAnd x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "and"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the annotate variant of hydra.scala.syntax.Type+typeAnnotate :: Typed.TypedTerm Syntax.AnnotateType -> Typed.TypedTerm Syntax.Type+typeAnnotate x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "annotate"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the anonymousName variant of hydra.scala.syntax.Type+typeAnonymousName :: Typed.TypedTerm Syntax.AnonymousNameType -> Typed.TypedTerm Syntax.Type+typeAnonymousName x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "anonymousName"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the apply variant of hydra.scala.syntax.Type+typeApply :: Typed.TypedTerm Syntax.ApplyType -> Typed.TypedTerm Syntax.Type+typeApply x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "apply"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the applyInfix variant of hydra.scala.syntax.Type+typeApplyInfix :: Typed.TypedTerm Syntax.ApplyInfixType -> Typed.TypedTerm Syntax.Type+typeApplyInfix x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "applyInfix"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.TypeBounds+typeBounds :: Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.TypeBounds+typeBounds lo hi =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeBounds"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lo"),+          Model.fieldTerm = (Typed.unTypedTerm lo)},+        Model.Field {+          Model.fieldName = (Model.Name "hi"),+          Model.fieldTerm = (Typed.unTypedTerm hi)}]}))++-- | DSL accessor for the hi field of hydra.scala.syntax.TypeBounds+typeBoundsHi :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type)+typeBoundsHi x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeBounds"),+        Model.projectionFieldName = (Model.Name "hi")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the lo field of hydra.scala.syntax.TypeBounds+typeBoundsLo :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type)+typeBoundsLo x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeBounds"),+        Model.projectionFieldName = (Model.Name "lo")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the hi field of hydra.scala.syntax.TypeBounds+typeBoundsWithHi :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.TypeBounds+typeBoundsWithHi original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeBounds"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lo"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeBounds"),+              Model.projectionFieldName = (Model.Name "lo")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "hi"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the lo field of hydra.scala.syntax.TypeBounds+typeBoundsWithLo :: Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.TypeBounds+typeBoundsWithLo original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeBounds"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lo"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "hi"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeBounds"),+              Model.projectionFieldName = (Model.Name "hi")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the byName variant of hydra.scala.syntax.Type+typeByName :: Typed.TypedTerm Syntax.ByNameType -> Typed.TypedTerm Syntax.Type+typeByName x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "byName"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.TypeCase+typeCase :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeCase+typeCase pat body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeCase"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm pat)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.TypeCase+typeCaseBody :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type+typeCaseBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeCase"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the pat field of hydra.scala.syntax.TypeCase+typeCasePat :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type+typeCasePat x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeCase"),+        Model.projectionFieldName = (Model.Name "pat")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.TypeCase+typeCaseWithBody :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeCase+typeCaseWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeCase"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeCase"),+              Model.projectionFieldName = (Model.Name "pat")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the pat field of hydra.scala.syntax.TypeCase+typeCaseWithPat :: Typed.TypedTerm Syntax.TypeCase -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeCase+typeCaseWithPat original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeCase"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeCase"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the contextFunction variant of hydra.scala.syntax.Type+typeContextFunction :: Typed.TypedTerm Syntax.ContextFunctionType -> Typed.TypedTerm Syntax.Type+typeContextFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "contextFunction"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.TypeDecl+typeDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.TypeDecl+typeDecl mods name tparams bounds =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "bounds"),+          Model.fieldTerm = (Typed.unTypedTerm bounds)}]}))++-- | DSL accessor for the bounds field of hydra.scala.syntax.TypeDecl+typeDeclBounds :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.TypeBounds+typeDeclBounds x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+        Model.projectionFieldName = (Model.Name "bounds")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.TypeDecl+typeDeclMods :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.Mod]+typeDeclMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.TypeDecl+typeDeclName :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.NameType+typeDeclName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.TypeDecl+typeDeclTparams :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.ParamType]+typeDeclTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the bounds field of hydra.scala.syntax.TypeDecl+typeDeclWithBounds :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.TypeBounds -> Typed.TypedTerm Syntax.TypeDecl+typeDeclWithBounds original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "bounds"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.TypeDecl+typeDeclWithMods :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.TypeDecl+typeDeclWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "bounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "bounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.TypeDecl+typeDeclWithName :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeDecl+typeDeclWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "bounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "bounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.TypeDecl+typeDeclWithTparams :: Typed.TypedTerm Syntax.TypeDecl -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TypeDecl+typeDeclWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "bounds"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDecl"),+              Model.projectionFieldName = (Model.Name "bounds")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.TypeDefn+typeDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeDefn+typeDefn mods name tparams body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm tparams)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.TypeDefn+typeDefnBody :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.Type+typeDefnBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.TypeDefn+typeDefnMods :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.Mod]+typeDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the name field of hydra.scala.syntax.TypeDefn+typeDefnName :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.NameType+typeDefnName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the tparams field of hydra.scala.syntax.TypeDefn+typeDefnTparams :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.ParamType]+typeDefnTparams x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+        Model.projectionFieldName = (Model.Name "tparams")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.TypeDefn+typeDefnWithBody :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypeDefn+typeDefnWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.TypeDefn+typeDefnWithMods :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.TypeDefn+typeDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the name field of hydra.scala.syntax.TypeDefn+typeDefnWithName :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeDefn+typeDefnWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "tparams")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the tparams field of hydra.scala.syntax.TypeDefn+typeDefnWithTparams :: Typed.TypedTerm Syntax.TypeDefn -> Typed.TypedTerm [Syntax.ParamType] -> Typed.TypedTerm Syntax.TypeDefn+typeDefnWithTparams original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "tparams"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeDefn"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL injection for the existential variant of hydra.scala.syntax.Type+typeExistential :: Typed.TypedTerm Syntax.ExistentialType -> Typed.TypedTerm Syntax.Type+typeExistential x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "existential"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the function variant of hydra.scala.syntax.Type+typeFunction :: Typed.TypedTerm Syntax.FunctionType -> Typed.TypedTerm Syntax.Type+typeFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "function"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the implicitFunction variant of hydra.scala.syntax.Type+typeImplicitFunction :: Typed.TypedTerm Syntax.ImplicitFunctionType -> Typed.TypedTerm Syntax.Type+typeImplicitFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "implicitFunction"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the lambda variant of hydra.scala.syntax.Type+typeLambda :: Typed.TypedTerm Syntax.LambdaType -> Typed.TypedTerm Syntax.Type+typeLambda x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "lambda"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the match variant of hydra.scala.syntax.Type+typeMatch :: Typed.TypedTerm Syntax.MatchType -> Typed.TypedTerm Syntax.Type+typeMatch x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "match"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.TypeMember+typeMember :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeMember+typeMember name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeMember"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.TypeMember+typeMemberName :: Typed.TypedTerm Syntax.TypeMember -> Typed.TypedTerm Syntax.NameType+typeMemberName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypeMember"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.TypeMember+typeMemberWithName :: Typed.TypedTerm Syntax.TypeMember -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.TypeMember+typeMemberWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypeMember"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL injection for the method variant of hydra.scala.syntax.Type+typeMethod :: Typed.TypedTerm Syntax.MethodType -> Typed.TypedTerm Syntax.Type+typeMethod x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "method"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the or variant of hydra.scala.syntax.Type+typeOr :: Typed.TypedTerm Syntax.OrType -> Typed.TypedTerm Syntax.Type+typeOr x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "or"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the placeholder variant of hydra.scala.syntax.Type+typePlaceholder :: Typed.TypedTerm Syntax.PlaceholderType -> Typed.TypedTerm Syntax.Type+typePlaceholder x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "placeholder"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the polyFunction variant of hydra.scala.syntax.Type+typePolyFunction :: Typed.TypedTerm Syntax.PolyFunctionType -> Typed.TypedTerm Syntax.Type+typePolyFunction x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "polyFunction"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the ref variant of hydra.scala.syntax.Type+typeRef :: Typed.TypedTerm Syntax.RefType -> Typed.TypedTerm Syntax.Type+typeRef x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "ref"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the refine variant of hydra.scala.syntax.Type+typeRefine :: Typed.TypedTerm Syntax.RefineType -> Typed.TypedTerm Syntax.Type+typeRefine x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "refine"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the repeated variant of hydra.scala.syntax.Type+typeRepeated :: Typed.TypedTerm Syntax.RepeatedType -> Typed.TypedTerm Syntax.Type+typeRepeated x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "repeated"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the tuple variant of hydra.scala.syntax.Type+typeTuple :: Typed.TypedTerm Syntax.TupleType -> Typed.TypedTerm Syntax.Type+typeTuple x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "tuple"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the typedParam variant of hydra.scala.syntax.Type+typeTypedParam :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Type+typeTypedParam x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "typedParam"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the var variant of hydra.scala.syntax.Type+typeVar :: Typed.TypedTerm Syntax.VarType -> Typed.TypedTerm Syntax.Type+typeVar x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "var"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL injection for the with variant of hydra.scala.syntax.Type+typeWith :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type+typeWith x =+    Typed.TypedTerm (Model.TermInject (Model.Injection {+      Model.injectionTypeName = (Model.Name "hydra.scala.syntax.Type"),+      Model.injectionField = Model.Field {+        Model.fieldName = (Model.Name "with"),+        Model.fieldTerm = (Typed.unTypedTerm x)}}))++-- | DSL constructor for hydra.scala.syntax.TypedParamType+typedParamType :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedParamType+typedParamType name typ =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypedParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)},+        Model.Field {+          Model.fieldName = (Model.Name "typ"),+          Model.fieldTerm = (Typed.unTypedTerm typ)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.TypedParamType+typedParamTypeName :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Name+typedParamTypeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedParamType"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the typ field of hydra.scala.syntax.TypedParamType+typedParamTypeTyp :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Type+typedParamTypeTyp x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedParamType"),+        Model.projectionFieldName = (Model.Name "typ")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.TypedParamType+typedParamTypeWithName :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.TypedParamType+typedParamTypeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypedParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "typ"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedParamType"),+              Model.projectionFieldName = (Model.Name "typ")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the typ field of hydra.scala.syntax.TypedParamType+typedParamTypeWithTyp :: Typed.TypedTerm Syntax.TypedParamType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedParamType+typedParamTypeWithTyp original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypedParamType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedParamType"),+              Model.projectionFieldName = (Model.Name "name")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "typ"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.TypedPat+typedPat :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedPat+typedPat lhs rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypedPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.TypedPat+typedPatLhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Pat+typedPatLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedPat"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.TypedPat+typedPatRhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Type+typedPatRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedPat"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.TypedPat+typedPatWithLhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.TypedPat+typedPatWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypedPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedPat"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.TypedPat+typedPatWithRhs :: Typed.TypedTerm Syntax.TypedPat -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.TypedPat+typedPatWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.TypedPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.TypedPat"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL accessor for the body of hydra.scala.syntax.AnonymousData+unAnonymousData :: Typed.TypedTerm Syntax.AnonymousData -> Typed.TypedTerm ()+unAnonymousData x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.scala.syntax.AnonymousData")),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.scala.syntax.AnonymousNameType+unAnonymousNameType :: Typed.TypedTerm Syntax.AnonymousNameType -> Typed.TypedTerm ()+unAnonymousNameType x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.scala.syntax.AnonymousNameType")),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.scala.syntax.PredefString+unPredefString :: Typed.TypedTerm Syntax.PredefString -> Typed.TypedTerm String+unPredefString x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.scala.syntax.PredefString")),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.scala.syntax.Self+unSelf :: Typed.TypedTerm Syntax.Self -> Typed.TypedTerm ()+unSelf x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.scala.syntax.Self")),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the body of hydra.scala.syntax.ThisData+unThisData :: Typed.TypedTerm Syntax.ThisData -> Typed.TypedTerm ()+unThisData x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermUnwrap (Model.Name "hydra.scala.syntax.ThisData")),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL constructor for hydra.scala.syntax.UnimportImportee+unimportImportee :: Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.UnimportImportee+unimportImportee name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.UnimportImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.UnimportImportee+unimportImporteeName :: Typed.TypedTerm Syntax.UnimportImportee -> Typed.TypedTerm Syntax.Name+unimportImporteeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.UnimportImportee"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.UnimportImportee+unimportImporteeWithName :: Typed.TypedTerm Syntax.UnimportImportee -> Typed.TypedTerm Syntax.Name -> Typed.TypedTerm Syntax.UnimportImportee+unimportImporteeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.UnimportImportee"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ValDecl+valDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ValDecl+valDecl mods pats decltpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm pats)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)}]}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.ValDecl+valDeclDecltpe :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm Syntax.Type+valDeclDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.ValDecl+valDeclMods :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Mod]+valDeclMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the pats field of hydra.scala.syntax.ValDecl+valDeclPats :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Pat]+valDeclPats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+        Model.projectionFieldName = (Model.Name "pats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.ValDecl+valDeclWithDecltpe :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.ValDecl+valDeclWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.ValDecl+valDeclWithMods :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ValDecl+valDeclWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the pats field of hydra.scala.syntax.ValDecl+valDeclWithPats :: Typed.TypedTerm Syntax.ValDecl -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ValDecl+valDeclWithPats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.ValDefn+valDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValDefn+valDefn mods pats decltpe rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm pats)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.ValDefn+valDefnDecltpe :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm (Maybe Syntax.Type)+valDefnDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.ValDefn+valDefnMods :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Mod]+valDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the pats field of hydra.scala.syntax.ValDefn+valDefnPats :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Pat]+valDefnPats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+        Model.projectionFieldName = (Model.Name "pats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.ValDefn+valDefnRhs :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm Syntax.Data+valDefnRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.ValDefn+valDefnWithDecltpe :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm (Maybe Syntax.Type) -> Typed.TypedTerm Syntax.ValDefn+valDefnWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.ValDefn+valDefnWithMods :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.ValDefn+valDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the pats field of hydra.scala.syntax.ValDefn+valDefnWithPats :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.ValDefn+valDefnWithPats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.ValDefn+valDefnWithRhs :: Typed.TypedTerm Syntax.ValDefn -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValDefn+valDefnWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.ValEnumerator+valEnumerator :: Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValEnumerator+valEnumerator pat rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm pat)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the pat field of hydra.scala.syntax.ValEnumerator+valEnumeratorPat :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Pat+valEnumeratorPat x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValEnumerator"),+        Model.projectionFieldName = (Model.Name "pat")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.ValEnumerator+valEnumeratorRhs :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Data+valEnumeratorRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValEnumerator"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the pat field of hydra.scala.syntax.ValEnumerator+valEnumeratorWithPat :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Pat -> Typed.TypedTerm Syntax.ValEnumerator+valEnumeratorWithPat original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValEnumerator"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.ValEnumerator+valEnumeratorWithRhs :: Typed.TypedTerm Syntax.ValEnumerator -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.ValEnumerator+valEnumeratorWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.ValEnumerator"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "pat"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.ValEnumerator"),+              Model.projectionFieldName = (Model.Name "pat")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.VarDecl+varDecl :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.VarDecl+varDecl mods pats decltpe =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm pats)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)}]}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.VarDecl+varDeclDecltpe :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm Syntax.Type+varDeclDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.VarDecl+varDeclMods :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Mod]+varDeclMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the pats field of hydra.scala.syntax.VarDecl+varDeclPats :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Pat]+varDeclPats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+        Model.projectionFieldName = (Model.Name "pats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.VarDecl+varDeclWithDecltpe :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.VarDecl+varDeclWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.VarDecl+varDeclWithMods :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.VarDecl+varDeclWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the pats field of hydra.scala.syntax.VarDecl+varDeclWithPats :: Typed.TypedTerm Syntax.VarDecl -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.VarDecl+varDeclWithPats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDecl"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.VarDefn+varDefn :: Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.VarDefn+varDefn mods pats decltpe rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm mods)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm pats)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm decltpe)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the decltpe field of hydra.scala.syntax.VarDefn+varDefnDecltpe :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm Syntax.Type+varDefnDecltpe x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+        Model.projectionFieldName = (Model.Name "decltpe")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the mods field of hydra.scala.syntax.VarDefn+varDefnMods :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Mod]+varDefnMods x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+        Model.projectionFieldName = (Model.Name "mods")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the pats field of hydra.scala.syntax.VarDefn+varDefnPats :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Pat]+varDefnPats x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+        Model.projectionFieldName = (Model.Name "pats")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.VarDefn+varDefnRhs :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm (Maybe Syntax.Data)+varDefnRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the decltpe field of hydra.scala.syntax.VarDefn+varDefnWithDecltpe :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.VarDefn+varDefnWithDecltpe original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the mods field of hydra.scala.syntax.VarDefn+varDefnWithMods :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Mod] -> Typed.TypedTerm Syntax.VarDefn+varDefnWithMods original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the pats field of hydra.scala.syntax.VarDefn+varDefnWithPats :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm [Syntax.Pat] -> Typed.TypedTerm Syntax.VarDefn+varDefnWithPats original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.VarDefn+varDefnWithRhs :: Typed.TypedTerm Syntax.VarDefn -> Typed.TypedTerm (Maybe Syntax.Data) -> Typed.TypedTerm Syntax.VarDefn+varDefnWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "mods"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "mods")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "pats"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "pats")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "decltpe"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarDefn"),+              Model.projectionFieldName = (Model.Name "decltpe")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.VarPat+varPat :: Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.VarPat+varPat name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.VarPat+varPatName :: Typed.TypedTerm Syntax.VarPat -> Typed.TypedTerm Syntax.NameData+varPatName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarPat"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.VarPat+varPatWithName :: Typed.TypedTerm Syntax.VarPat -> Typed.TypedTerm Syntax.NameData -> Typed.TypedTerm Syntax.VarPat+varPatWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarPat"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.VarType+varType :: Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.VarType+varType name =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm name)}]}))++-- | DSL accessor for the name field of hydra.scala.syntax.VarType+varTypeName :: Typed.TypedTerm Syntax.VarType -> Typed.TypedTerm Syntax.NameType+varTypeName x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.VarType"),+        Model.projectionFieldName = (Model.Name "name")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the name field of hydra.scala.syntax.VarType+varTypeWithName :: Typed.TypedTerm Syntax.VarType -> Typed.TypedTerm Syntax.NameType -> Typed.TypedTerm Syntax.VarType+varTypeWithName original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.VarType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "name"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL constructor for hydra.scala.syntax.WhileData+whileData :: Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.WhileData+whileData expr body =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.WhileData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm expr)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm body)}]}))++-- | DSL accessor for the body field of hydra.scala.syntax.WhileData+whileDataBody :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data+whileDataBody x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WhileData"),+        Model.projectionFieldName = (Model.Name "body")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the expr field of hydra.scala.syntax.WhileData+whileDataExpr :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data+whileDataExpr x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WhileData"),+        Model.projectionFieldName = (Model.Name "expr")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the body field of hydra.scala.syntax.WhileData+whileDataWithBody :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.WhileData+whileDataWithBody original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.WhileData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WhileData"),+              Model.projectionFieldName = (Model.Name "expr")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))++-- | DSL updater for the expr field of hydra.scala.syntax.WhileData+whileDataWithExpr :: Typed.TypedTerm Syntax.WhileData -> Typed.TypedTerm Syntax.Data -> Typed.TypedTerm Syntax.WhileData+whileDataWithExpr original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.WhileData"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "expr"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "body"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WhileData"),+              Model.projectionFieldName = (Model.Name "body")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL constructor for hydra.scala.syntax.WithType+withType :: Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.WithType+withType lhs rhs =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.WithType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm lhs)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm rhs)}]}))++-- | DSL accessor for the lhs field of hydra.scala.syntax.WithType+withTypeLhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type+withTypeLhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WithType"),+        Model.projectionFieldName = (Model.Name "lhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL accessor for the rhs field of hydra.scala.syntax.WithType+withTypeRhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type+withTypeRhs x =+    Typed.TypedTerm (Model.TermApplication (Model.Application {+      Model.applicationFunction = (Model.TermProject (Model.Projection {+        Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WithType"),+        Model.projectionFieldName = (Model.Name "rhs")})),+      Model.applicationArgument = (Typed.unTypedTerm x)}))++-- | DSL updater for the lhs field of hydra.scala.syntax.WithType+withTypeWithLhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.WithType+withTypeWithLhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.WithType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WithType"),+              Model.projectionFieldName = (Model.Name "rhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))++-- | DSL updater for the rhs field of hydra.scala.syntax.WithType+withTypeWithRhs :: Typed.TypedTerm Syntax.WithType -> Typed.TypedTerm Syntax.Type -> Typed.TypedTerm Syntax.WithType+withTypeWithRhs original newVal =+    Typed.TypedTerm (Model.TermRecord (Model.Record {+      Model.recordTypeName = (Model.Name "hydra.scala.syntax.WithType"),+      Model.recordFields = [+        Model.Field {+          Model.fieldName = (Model.Name "lhs"),+          Model.fieldTerm = (Model.TermApplication (Model.Application {+            Model.applicationFunction = (Model.TermProject (Model.Projection {+              Model.projectionTypeName = (Model.Name "hydra.scala.syntax.WithType"),+              Model.projectionFieldName = (Model.Name "lhs")})),+            Model.applicationArgument = (Typed.unTypedTerm original)}))},+        Model.Field {+          Model.fieldName = (Model.Name "rhs"),+          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))
src/main/haskell/Hydra/Scala/Language.hs view
@@ -4,37 +4,37 @@  module Hydra.Scala.Language where -import qualified Hydra.Ast as Ast-import qualified Hydra.Coders as Coders-import qualified Hydra.Core as Core-import qualified Hydra.Docs as Docs-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.File as ErrorFile-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Error.System as ErrorSystem-import qualified Hydra.Errors as Errors-import qualified Hydra.File as File-import qualified Hydra.Graph as Graph-import qualified Hydra.Json.Model as Model-import qualified Hydra.Lexical as Lexical-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational-import qualified Hydra.System as System-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Time as Time-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Docs as Docs+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.File as ErrorFile+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Error.System as ErrorSystem+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.File as File+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Lexical as Lexical+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Sets as Sets+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.System as System+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Time as Time+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -77,19 +77,19 @@           Variants.LiteralVariantString]     floatTypes =         Sets.fromList [-          Core.FloatTypeFloat32,-          Core.FloatTypeFloat64]+          Model.FloatTypeFloat32,+          Model.FloatTypeFloat64]     integerTypes =         Sets.fromList [-          Core.IntegerTypeBigint,-          Core.IntegerTypeInt8,-          Core.IntegerTypeInt16,-          Core.IntegerTypeInt32,-          Core.IntegerTypeInt64,-          Core.IntegerTypeUint8,-          Core.IntegerTypeUint16,-          Core.IntegerTypeUint32,-          Core.IntegerTypeUint64]+          Model.IntegerTypeBigint,+          Model.IntegerTypeInt8,+          Model.IntegerTypeInt16,+          Model.IntegerTypeInt32,+          Model.IntegerTypeInt64,+          Model.IntegerTypeUint8,+          Model.IntegerTypeUint16,+          Model.IntegerTypeUint32,+          Model.IntegerTypeUint64]     termVariants =         Sets.fromList [           Variants.TermVariantApplication,
src/main/haskell/Hydra/Scala/Serde.hs view
@@ -4,45 +4,45 @@  module Hydra.Scala.Serde where -import qualified Hydra.Ast as Ast-import qualified Hydra.Coders as Coders-import qualified Hydra.Core as Core-import qualified Hydra.Docs as Docs-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.File as ErrorFile-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Error.System as ErrorSystem-import qualified Hydra.Errors as Errors-import qualified Hydra.File as File-import qualified Hydra.Graph as Graph-import qualified Hydra.Json.Model as Model+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Docs as Docs+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.File as ErrorFile+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Error.System as ErrorSystem+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.File as File+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Overlay.Haskell.Lib.Equality as Equality+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Literals as Literals+import qualified Hydra.Core.Overlay.Haskell.Lib.Logic as Logic+import qualified Hydra.Core.Overlay.Haskell.Lib.Math as Math+import qualified Hydra.Core.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Core.Overlay.Haskell.Lib.Ordering as Ordering+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Serialization as Serialization+import qualified Hydra.Core.System as System+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Time as Time+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import qualified Hydra.Jvm.Serde as Serde-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Literals as Literals-import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic-import qualified Hydra.Overlay.Haskell.Lib.Math as Math-import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals-import qualified Hydra.Overlay.Haskell.Lib.Ordering as Ordering-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings-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.Scala.Syntax as Syntax-import qualified Hydra.Serialization as Serialization-import qualified Hydra.System as System-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Time as Time-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void@@ -218,12 +218,15 @@           enumCases]))       Syntax.DefnEnumCase v0 ->         let name = Syntax.enumCaseDefnName v0+            tparams = Syntax.enumCaseDefnTparams v0             ctor = Syntax.enumCaseDefnCtor v0             inits = Syntax.enumCaseDefnInits v0             paramss = Syntax.primaryCtorParamss ctor             allParams = Lists.concat paramss+            tparamsExpr =+                    Logic.ifElse (Lists.isEmpty tparams) (Serialization.cst "") (Serialization.bracketList Serialization.inlineStyle (Lists.map typeParamToExpr tparams))             params =-                    Logic.ifElse (Lists.isEmpty allParams) (Serialization.cst "") (Serialization.parenListAdaptive (Lists.map dataParamToExpr allParams))+                    Logic.ifElse (Lists.isEmpty paramss) (Serialization.cst "") (Serialization.parenListAdaptive (Lists.map dataParamToExpr allParams))             extendsClause =                     Logic.ifElse (Lists.isEmpty inits) (Serialization.cst "") (Serialization.spaceSep [                       Serialization.cst "extends",@@ -232,6 +235,7 @@           Serialization.cst "case",           (Serialization.noSep [             dataNameToExpr name,+            tparamsExpr,             params]),           extendsClause]) @@ -343,9 +347,9 @@       Syntax.PatExtract v0 ->         let fun = Syntax.extractPatFun v0             args = Syntax.extractPatArgs v0-        in (Logic.ifElse (Lists.isEmpty args) (termToExpr fun) (Serialization.noSep [+        in (Logic.ifElse (Syntax.extractPatIsCall v0) (Serialization.noSep [           termToExpr fun,-          (Serialization.parenListAdaptive (Lists.map patToExpr args))]))+          (Serialization.parenListAdaptive (Lists.map patToExpr args))]) (termToExpr fun))       Syntax.PatVar v0 -> dataNameToExpr (Syntax.varPatName v0)       Syntax.PatWildcard -> Serialization.cst "_" 
src/main/haskell/Hydra/Scala/Syntax.hs view
@@ -4,2126 +4,2129 @@  module Hydra.Scala.Syntax where -import qualified Hydra.Core as Core-import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)-import qualified Data.Scientific as Sci-import Data.Void-import qualified Data.Int as I---- | A wrapper for strings used in scala.Predef contexts.-newtype PredefString =-  PredefString {-    unPredefString :: String}-  deriving (Eq, Ord, Read, Show)--_PredefString = Core.Name "hydra.scala.syntax.PredefString"---- | A Scala 2 symbol literal (corresponds to scala.Symbol).-data ScalaSymbol =-  ScalaSymbol {-    scalaSymbolName :: String}-  deriving (Eq, Ord, Read, Show)--_ScalaSymbol = Core.Name "hydra.scala.syntax.ScalaSymbol"--_ScalaSymbol_name = Core.Name "name"---- | The root of the Scalameta tree hierarchy. Each arm names a major AST category.-data Tree =-  TreeRef Ref |-  TreeStat Stat |-  TreeType Type |-  TreeBounds TypeBounds |-  TreePat Pat |-  TreeMember Member |-  TreeCtor Ctor |-  TreeTemplate Template |-  TreeMod Mod |-  TreeEnumerator Enumerator |-  TreeImporter Importer |-  TreeImportee Importee |-  TreeCaseTree CaseTree |-  TreeSource Source-  deriving (Eq, Ord, Read, Show)--_Tree = Core.Name "hydra.scala.syntax.Tree"--_Tree_ref = Core.Name "ref"--_Tree_stat = Core.Name "stat"--_Tree_type = Core.Name "type"--_Tree_bounds = Core.Name "bounds"--_Tree_pat = Core.Name "pat"--_Tree_member = Core.Name "member"--_Tree_ctor = Core.Name "ctor"--_Tree_template = Core.Name "template"--_Tree_mod = Core.Name "mod"--_Tree_enumerator = Core.Name "enumerator"--_Tree_importer = Core.Name "importer"--_Tree_importee = Core.Name "importee"--_Tree_caseTree = Core.Name "caseTree"--_Tree_source = Core.Name "source"--data Ref =-  RefName Name |-  RefInit Init-  deriving (Eq, Ord, Read, Show)--_Ref = Core.Name "hydra.scala.syntax.Ref"--_Ref_name = Core.Name "name"--_Ref_init = Core.Name "init"--data Stat =-  StatTerm Data |-  StatDecl Decl |-  StatDefn Defn |-  StatImportExport ImportExportStat-  deriving (Eq, Ord, Read, Show)--_Stat = Core.Name "hydra.scala.syntax.Stat"--_Stat_term = Core.Name "term"--_Stat_decl = Core.Name "decl"--_Stat_defn = Core.Name "defn"--_Stat_importExport = Core.Name "importExport"--data Name =-  NameValue String |-  NameAnonymous |-  NameIndeterminate PredefString-  deriving (Eq, Ord, Read, Show)--_Name = Core.Name "hydra.scala.syntax.Name"--_Name_value = Core.Name "value"--_Name_anonymous = Core.Name "anonymous"--_Name_indeterminate = Core.Name "indeterminate"--data Lit =-  LitNull |-  LitInt Int |-  LitDouble Double |-  LitFloat Float |-  LitByte I.Int8 |-  LitShort I.Int16 |-  LitChar Int |-  LitLong I.Int64 |-  LitBoolean Bool |-  LitUnit |-  LitString String |-  LitBytes [Int] |-  LitSymbol ScalaSymbol-  deriving (Eq, Ord, Read, Show)--_Lit = Core.Name "hydra.scala.syntax.Lit"--_Lit_null = Core.Name "null"--_Lit_int = Core.Name "int"--_Lit_double = Core.Name "double"--_Lit_float = Core.Name "float"--_Lit_byte = Core.Name "byte"--_Lit_short = Core.Name "short"--_Lit_char = Core.Name "char"--_Lit_long = Core.Name "long"--_Lit_boolean = Core.Name "boolean"--_Lit_unit = Core.Name "unit"--_Lit_string = Core.Name "string"--_Lit_bytes = Core.Name "bytes"--_Lit_symbol = Core.Name "symbol"--data Data =-  DataLit Lit |-  DataRef RefData |-  DataInterpolate InterpolateData |-  DataApply ApplyData |-  DataApplyUsing ApplyUsingData |-  DataApplyType ApplyTypeData |-  DataAssign AssignData |-  DataReturn ReturnData |-  DataThrow ThrowData |-  DataAscribe AscribeData |-  DataAnnotate AnnotateData |-  DataTuple TupleData |-  DataBlock BlockData |-  DataEndMarker EndMarkerData |-  DataIf IfData |-  DataMatch MatchData |-  DataTry TryData |-  DataTryWithHandler TryWithHandlerData |-  DataFunction FunctionData |-  DataContextFunction ContextFunctionData |-  DataPolyFunction PolyFunctionData |-  DataPartialFunction PartialFunctionData |-  DataWhile WhileData |-  DataDo DoData |-  DataFor ForData |-  DataForYield ForYieldData |-  DataNew NewData |-  DataNewAnonymous NewAnonymousData |-  DataPlaceholder |-  DataEta EtaData |-  DataRepeated RepeatedData |-  DataParam ParamData-  deriving (Eq, Ord, Read, Show)--_Data = Core.Name "hydra.scala.syntax.Data"--_Data_lit = Core.Name "lit"--_Data_ref = Core.Name "ref"--_Data_interpolate = Core.Name "interpolate"--_Data_apply = Core.Name "apply"--_Data_applyUsing = Core.Name "applyUsing"--_Data_applyType = Core.Name "applyType"--_Data_assign = Core.Name "assign"--_Data_return = Core.Name "return"--_Data_throw = Core.Name "throw"--_Data_ascribe = Core.Name "ascribe"--_Data_annotate = Core.Name "annotate"--_Data_tuple = Core.Name "tuple"--_Data_block = Core.Name "block"--_Data_endMarker = Core.Name "endMarker"--_Data_if = Core.Name "if"--_Data_match = Core.Name "match"--_Data_try = Core.Name "try"--_Data_tryWithHandler = Core.Name "tryWithHandler"--_Data_function = Core.Name "function"--_Data_contextFunction = Core.Name "contextFunction"--_Data_polyFunction = Core.Name "polyFunction"--_Data_partialFunction = Core.Name "partialFunction"--_Data_while = Core.Name "while"--_Data_do = Core.Name "do"--_Data_for = Core.Name "for"--_Data_forYield = Core.Name "forYield"--_Data_new = Core.Name "new"--_Data_newAnonymous = Core.Name "newAnonymous"--_Data_placeholder = Core.Name "placeholder"--_Data_eta = Core.Name "eta"--_Data_repeated = Core.Name "repeated"--_Data_param = Core.Name "param"--data RefData =-  RefDataThis ThisData |-  RefDataSuper SuperData |-  RefDataName NameData |-  RefDataAnonymous AnonymousData |-  RefDataSelect SelectData |-  RefDataApplyUnary ApplyUnaryData-  deriving (Eq, Ord, Read, Show)--_RefData = Core.Name "hydra.scala.syntax.RefData"--_RefData_this = Core.Name "this"--_RefData_super = Core.Name "super"--_RefData_name = Core.Name "name"--_RefData_anonymous = Core.Name "anonymous"--_RefData_select = Core.Name "select"--_RefData_applyUnary = Core.Name "applyUnary"--newtype ThisData =-  ThisData {-    unThisData :: ()}-  deriving (Eq, Ord, Read, Show)--_ThisData = Core.Name "hydra.scala.syntax.ThisData"--data SuperData =-  SuperData {-    superDataThisp :: Name,-    superDataSuperp :: Name}-  deriving (Eq, Ord, Read, Show)--_SuperData = Core.Name "hydra.scala.syntax.SuperData"--_SuperData_thisp = Core.Name "thisp"--_SuperData_superp = Core.Name "superp"--data NameData =-  NameData {-    nameDataValue :: PredefString}-  deriving (Eq, Ord, Read, Show)--_NameData = Core.Name "hydra.scala.syntax.NameData"--_NameData_value = Core.Name "value"--newtype AnonymousData =-  AnonymousData {-    unAnonymousData :: ()}-  deriving (Eq, Ord, Read, Show)--_AnonymousData = Core.Name "hydra.scala.syntax.AnonymousData"--data SelectData =-  SelectData {-    selectDataQual :: Data,-    selectDataName :: NameData}-  deriving (Eq, Ord, Read, Show)--_SelectData = Core.Name "hydra.scala.syntax.SelectData"--_SelectData_qual = Core.Name "qual"--_SelectData_name = Core.Name "name"--data InterpolateData =-  InterpolateData {-    interpolateDataPrefix :: NameData,-    interpolateDataParts :: [Lit],-    interpolateDataArgs :: [Data]}-  deriving (Eq, Ord, Read, Show)--_InterpolateData = Core.Name "hydra.scala.syntax.InterpolateData"--_InterpolateData_prefix = Core.Name "prefix"--_InterpolateData_parts = Core.Name "parts"--_InterpolateData_args = Core.Name "args"--data ApplyData =-  ApplyData {-    applyDataFun :: Data,-    applyDataArgs :: [Data]}-  deriving (Eq, Ord, Read, Show)--_ApplyData = Core.Name "hydra.scala.syntax.ApplyData"--_ApplyData_fun = Core.Name "fun"--_ApplyData_args = Core.Name "args"--data ApplyUsingData =-  ApplyUsingData {-    applyUsingDataFun :: Data,-    applyUsingDataTargs :: [Data]}-  deriving (Eq, Ord, Read, Show)--_ApplyUsingData = Core.Name "hydra.scala.syntax.ApplyUsingData"--_ApplyUsingData_fun = Core.Name "fun"--_ApplyUsingData_targs = Core.Name "targs"--data ApplyTypeData =-  ApplyTypeData {-    applyTypeDataLhs :: Data,-    applyTypeDataOp :: NameData,-    applyTypeDataTargs :: [Type],-    applyTypeDataArgs :: [Data]}-  deriving (Eq, Ord, Read, Show)--_ApplyTypeData = Core.Name "hydra.scala.syntax.ApplyTypeData"--_ApplyTypeData_lhs = Core.Name "lhs"--_ApplyTypeData_op = Core.Name "op"--_ApplyTypeData_targs = Core.Name "targs"--_ApplyTypeData_args = Core.Name "args"--data ApplyInfixData =-  ApplyInfixData {-    applyInfixDataLhs :: Data,-    applyInfixDataOp :: NameData,-    applyInfixDataTargs :: [Type],-    applyInfixDataArgs :: [Data]}-  deriving (Eq, Ord, Read, Show)--_ApplyInfixData = Core.Name "hydra.scala.syntax.ApplyInfixData"--_ApplyInfixData_lhs = Core.Name "lhs"--_ApplyInfixData_op = Core.Name "op"--_ApplyInfixData_targs = Core.Name "targs"--_ApplyInfixData_args = Core.Name "args"--data ApplyUnaryData =-  ApplyUnaryData {-    applyUnaryDataOp :: NameData,-    applyUnaryDataArg :: Data}-  deriving (Eq, Ord, Read, Show)--_ApplyUnaryData = Core.Name "hydra.scala.syntax.ApplyUnaryData"--_ApplyUnaryData_op = Core.Name "op"--_ApplyUnaryData_arg = Core.Name "arg"--data AssignData =-  AssignData {-    assignDataLhs :: Data,-    assignDataRhs :: Data}-  deriving (Eq, Ord, Read, Show)--_AssignData = Core.Name "hydra.scala.syntax.AssignData"--_AssignData_lhs = Core.Name "lhs"--_AssignData_rhs = Core.Name "rhs"--data ReturnData =-  ReturnData {-    returnDataExpr :: Data}-  deriving (Eq, Ord, Read, Show)--_ReturnData = Core.Name "hydra.scala.syntax.ReturnData"--_ReturnData_expr = Core.Name "expr"--data ThrowData =-  ThrowData {-    throwDataExpr :: Data}-  deriving (Eq, Ord, Read, Show)--_ThrowData = Core.Name "hydra.scala.syntax.ThrowData"--_ThrowData_expr = Core.Name "expr"--data AscribeData =-  AscribeData {-    ascribeDataExpr :: Data,-    ascribeDataTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_AscribeData = Core.Name "hydra.scala.syntax.AscribeData"--_AscribeData_expr = Core.Name "expr"--_AscribeData_tpe = Core.Name "tpe"--data AnnotateData =-  AnnotateData {-    annotateDataExpr :: Data,-    annotateDataAnnots :: [AnnotMod]}-  deriving (Eq, Ord, Read, Show)--_AnnotateData = Core.Name "hydra.scala.syntax.AnnotateData"--_AnnotateData_expr = Core.Name "expr"--_AnnotateData_annots = Core.Name "annots"--data TupleData =-  TupleData {-    tupleDataArgs :: [Data]}-  deriving (Eq, Ord, Read, Show)--_TupleData = Core.Name "hydra.scala.syntax.TupleData"--_TupleData_args = Core.Name "args"--data BlockData =-  BlockData {-    blockDataStats :: [Stat]}-  deriving (Eq, Ord, Read, Show)--_BlockData = Core.Name "hydra.scala.syntax.BlockData"--_BlockData_stats = Core.Name "stats"--data EndMarkerData =-  EndMarkerData {-    endMarkerDataName :: NameData}-  deriving (Eq, Ord, Read, Show)--_EndMarkerData = Core.Name "hydra.scala.syntax.EndMarkerData"--_EndMarkerData_name = Core.Name "name"--data IfData =-  IfData {-    ifDataCond :: Data,-    ifDataThenp :: Data,-    ifDataElsep :: Data}-  deriving (Eq, Ord, Read, Show)--_IfData = Core.Name "hydra.scala.syntax.IfData"--_IfData_cond = Core.Name "cond"--_IfData_thenp = Core.Name "thenp"--_IfData_elsep = Core.Name "elsep"--data MatchData =-  MatchData {-    matchDataExpr :: Data,-    matchDataCases :: [Case]}-  deriving (Eq, Ord, Read, Show)--_MatchData = Core.Name "hydra.scala.syntax.MatchData"--_MatchData_expr = Core.Name "expr"--_MatchData_cases = Core.Name "cases"--data TryData =-  TryData {-    tryDataExpr :: Data,-    tryDataCatchp :: [Case],-    tryDataFinallyp :: (Maybe Data)}-  deriving (Eq, Ord, Read, Show)--_TryData = Core.Name "hydra.scala.syntax.TryData"--_TryData_expr = Core.Name "expr"--_TryData_catchp = Core.Name "catchp"--_TryData_finallyp = Core.Name "finallyp"--data TryWithHandlerData =-  TryWithHandlerData {-    tryWithHandlerDataExpr :: Data,-    tryWithHandlerDataCatchp :: Data,-    tryWithHandlerDataFinallyp :: (Maybe Data)}-  deriving (Eq, Ord, Read, Show)--_TryWithHandlerData = Core.Name "hydra.scala.syntax.TryWithHandlerData"--_TryWithHandlerData_expr = Core.Name "expr"--_TryWithHandlerData_catchp = Core.Name "catchp"--_TryWithHandlerData_finallyp = Core.Name "finallyp"--data ContextFunctionData =-  ContextFunctionData {-    contextFunctionDataParams :: [ParamData],-    contextFunctionDataBody :: Data}-  deriving (Eq, Ord, Read, Show)--_ContextFunctionData = Core.Name "hydra.scala.syntax.ContextFunctionData"--_ContextFunctionData_params = Core.Name "params"--_ContextFunctionData_body = Core.Name "body"--data FunctionData =-  FunctionData {-    functionDataParams :: [ParamData],-    functionDataBody :: Data}-  deriving (Eq, Ord, Read, Show)--_FunctionData = Core.Name "hydra.scala.syntax.FunctionData"--_FunctionData_params = Core.Name "params"--_FunctionData_body = Core.Name "body"--data PolyFunctionData =-  PolyFunctionData {-    polyFunctionDataTparams :: [ParamType],-    polyFunctionDataBody :: Data}-  deriving (Eq, Ord, Read, Show)--_PolyFunctionData = Core.Name "hydra.scala.syntax.PolyFunctionData"--_PolyFunctionData_tparams = Core.Name "tparams"--_PolyFunctionData_body = Core.Name "body"--data PartialFunctionData =-  PartialFunctionData {-    partialFunctionDataCases :: [Case]}-  deriving (Eq, Ord, Read, Show)--_PartialFunctionData = Core.Name "hydra.scala.syntax.PartialFunctionData"--_PartialFunctionData_cases = Core.Name "cases"--data WhileData =-  WhileData {-    whileDataExpr :: Data,-    whileDataBody :: Data}-  deriving (Eq, Ord, Read, Show)--_WhileData = Core.Name "hydra.scala.syntax.WhileData"--_WhileData_expr = Core.Name "expr"--_WhileData_body = Core.Name "body"--data DoData =-  DoData {-    doDataBody :: Data,-    doDataExpr :: Data}-  deriving (Eq, Ord, Read, Show)--_DoData = Core.Name "hydra.scala.syntax.DoData"--_DoData_body = Core.Name "body"--_DoData_expr = Core.Name "expr"--data ForData =-  ForData {-    forDataEnums :: [Enumerator]}-  deriving (Eq, Ord, Read, Show)--_ForData = Core.Name "hydra.scala.syntax.ForData"--_ForData_enums = Core.Name "enums"--data ForYieldData =-  ForYieldData {-    forYieldDataEnums :: [Enumerator]}-  deriving (Eq, Ord, Read, Show)--_ForYieldData = Core.Name "hydra.scala.syntax.ForYieldData"--_ForYieldData_enums = Core.Name "enums"--data NewData =-  NewData {-    newDataInit :: Init}-  deriving (Eq, Ord, Read, Show)--_NewData = Core.Name "hydra.scala.syntax.NewData"--_NewData_init = Core.Name "init"--data NewAnonymousData =-  NewAnonymousData {-    newAnonymousDataTempl :: Template}-  deriving (Eq, Ord, Read, Show)--_NewAnonymousData = Core.Name "hydra.scala.syntax.NewAnonymousData"--_NewAnonymousData_templ = Core.Name "templ"--data EtaData =-  EtaData {-    etaDataExpr :: Data}-  deriving (Eq, Ord, Read, Show)--_EtaData = Core.Name "hydra.scala.syntax.EtaData"--_EtaData_expr = Core.Name "expr"--data RepeatedData =-  RepeatedData {-    repeatedDataExpr :: Data}-  deriving (Eq, Ord, Read, Show)--_RepeatedData = Core.Name "hydra.scala.syntax.RepeatedData"--_RepeatedData_expr = Core.Name "expr"--data ParamData =-  ParamData {-    paramDataMods :: [Mod],-    paramDataName :: Name,-    paramDataDecltpe :: (Maybe Type),-    paramDataDefault :: (Maybe Data)}-  deriving (Eq, Ord, Read, Show)--_ParamData = Core.Name "hydra.scala.syntax.ParamData"--_ParamData_mods = Core.Name "mods"--_ParamData_name = Core.Name "name"--_ParamData_decltpe = Core.Name "decltpe"--_ParamData_default = Core.Name "default"--data Type =-  TypeRef RefType |-  TypeAnonymousName AnonymousNameType |-  TypeApply ApplyType |-  TypeApplyInfix ApplyInfixType |-  TypeFunction FunctionType |-  TypeContextFunction ContextFunctionType |-  TypePolyFunction PolyFunctionType |-  TypeImplicitFunction ImplicitFunctionType |-  TypeTuple TupleType |-  TypeWith WithType |-  TypeAnd AndType |-  TypeOr OrType |-  TypeRefine RefineType |-  TypeExistential ExistentialType |-  TypeAnnotate AnnotateType |-  TypeLambda LambdaType |-  TypeMethod MethodType |-  TypePlaceholder PlaceholderType |-  TypeByName ByNameType |-  TypeRepeated RepeatedType |-  TypeVar VarType |-  TypeTypedParam TypedParamType |-  TypeMatch MatchType-  deriving (Eq, Ord, Read, Show)--_Type = Core.Name "hydra.scala.syntax.Type"--_Type_ref = Core.Name "ref"--_Type_anonymousName = Core.Name "anonymousName"--_Type_apply = Core.Name "apply"--_Type_applyInfix = Core.Name "applyInfix"--_Type_function = Core.Name "function"--_Type_contextFunction = Core.Name "contextFunction"--_Type_polyFunction = Core.Name "polyFunction"--_Type_implicitFunction = Core.Name "implicitFunction"--_Type_tuple = Core.Name "tuple"--_Type_with = Core.Name "with"--_Type_and = Core.Name "and"--_Type_or = Core.Name "or"--_Type_refine = Core.Name "refine"--_Type_existential = Core.Name "existential"--_Type_annotate = Core.Name "annotate"--_Type_lambda = Core.Name "lambda"--_Type_method = Core.Name "method"--_Type_placeholder = Core.Name "placeholder"--_Type_byName = Core.Name "byName"--_Type_repeated = Core.Name "repeated"--_Type_var = Core.Name "var"--_Type_typedParam = Core.Name "typedParam"--_Type_match = Core.Name "match"--data RefType =-  RefTypeName NameType |-  RefTypeSelect SelectType |-  RefTypeProject ProjectType |-  RefTypeSingleton SingletonType-  deriving (Eq, Ord, Read, Show)--_RefType = Core.Name "hydra.scala.syntax.RefType"--_RefType_name = Core.Name "name"--_RefType_select = Core.Name "select"--_RefType_project = Core.Name "project"--_RefType_singleton = Core.Name "singleton"--data NameType =-  NameType {-    nameTypeValue :: String}-  deriving (Eq, Ord, Read, Show)--_NameType = Core.Name "hydra.scala.syntax.NameType"--_NameType_value = Core.Name "value"--newtype AnonymousNameType =-  AnonymousNameType {-    unAnonymousNameType :: ()}-  deriving (Eq, Ord, Read, Show)--_AnonymousNameType = Core.Name "hydra.scala.syntax.AnonymousNameType"--data SelectType =-  SelectType {-    selectTypeQual :: RefData,-    selectTypeName :: NameType}-  deriving (Eq, Ord, Read, Show)--_SelectType = Core.Name "hydra.scala.syntax.SelectType"--_SelectType_qual = Core.Name "qual"--_SelectType_name = Core.Name "name"--data ProjectType =-  ProjectType {-    projectTypeQual :: Type,-    projectTypeName :: NameType}-  deriving (Eq, Ord, Read, Show)--_ProjectType = Core.Name "hydra.scala.syntax.ProjectType"--_ProjectType_qual = Core.Name "qual"--_ProjectType_name = Core.Name "name"--data SingletonType =-  SingletonType {-    singletonTypeRef :: RefData}-  deriving (Eq, Ord, Read, Show)--_SingletonType = Core.Name "hydra.scala.syntax.SingletonType"--_SingletonType_ref = Core.Name "ref"--data ApplyType =-  ApplyType {-    applyTypeTpe :: Type,-    applyTypeArgs :: [Type]}-  deriving (Eq, Ord, Read, Show)--_ApplyType = Core.Name "hydra.scala.syntax.ApplyType"--_ApplyType_tpe = Core.Name "tpe"--_ApplyType_args = Core.Name "args"--data ApplyInfixType =-  ApplyInfixType {-    applyInfixTypeLhs :: Type,-    applyInfixTypeOp :: NameType,-    applyInfixTypeRhs :: Type}-  deriving (Eq, Ord, Read, Show)--_ApplyInfixType = Core.Name "hydra.scala.syntax.ApplyInfixType"--_ApplyInfixType_lhs = Core.Name "lhs"--_ApplyInfixType_op = Core.Name "op"--_ApplyInfixType_rhs = Core.Name "rhs"--data FunctionType =-  FunctionType {-    functionTypeParams :: [Type],-    functionTypeRes :: Type}-  deriving (Eq, Ord, Read, Show)--_FunctionType = Core.Name "hydra.scala.syntax.FunctionType"--_FunctionType_params = Core.Name "params"--_FunctionType_res = Core.Name "res"--data PolyFunctionType =-  PolyFunctionType {-    polyFunctionTypeTparams :: [ParamType],-    polyFunctionTypeTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_PolyFunctionType = Core.Name "hydra.scala.syntax.PolyFunctionType"--_PolyFunctionType_tparams = Core.Name "tparams"--_PolyFunctionType_tpe = Core.Name "tpe"--data ContextFunctionType =-  ContextFunctionType {-    contextFunctionTypeParams :: [Type],-    contextFunctionTypeRes :: Type}-  deriving (Eq, Ord, Read, Show)--_ContextFunctionType = Core.Name "hydra.scala.syntax.ContextFunctionType"--_ContextFunctionType_params = Core.Name "params"--_ContextFunctionType_res = Core.Name "res"--data ImplicitFunctionType =-  ImplicitFunctionType {-    implicitFunctionTypeParams :: [Type],-    implicitFunctionTypeRes :: Type}-  deriving (Eq, Ord, Read, Show)--_ImplicitFunctionType = Core.Name "hydra.scala.syntax.ImplicitFunctionType"--_ImplicitFunctionType_params = Core.Name "params"--_ImplicitFunctionType_res = Core.Name "res"--data TupleType =-  TupleType {-    tupleTypeArgs :: [Type]}-  deriving (Eq, Ord, Read, Show)--_TupleType = Core.Name "hydra.scala.syntax.TupleType"--_TupleType_args = Core.Name "args"--data WithType =-  WithType {-    withTypeLhs :: Type,-    withTypeRhs :: Type}-  deriving (Eq, Ord, Read, Show)--_WithType = Core.Name "hydra.scala.syntax.WithType"--_WithType_lhs = Core.Name "lhs"--_WithType_rhs = Core.Name "rhs"--data AndType =-  AndType {-    andTypeLhs :: Type,-    andTypeRhs :: Type}-  deriving (Eq, Ord, Read, Show)--_AndType = Core.Name "hydra.scala.syntax.AndType"--_AndType_lhs = Core.Name "lhs"--_AndType_rhs = Core.Name "rhs"--data OrType =-  OrType {-    orTypeLhs :: Type,-    orTypeRhs :: Type}-  deriving (Eq, Ord, Read, Show)--_OrType = Core.Name "hydra.scala.syntax.OrType"--_OrType_lhs = Core.Name "lhs"--_OrType_rhs = Core.Name "rhs"--data RefineType =-  RefineType {-    refineTypeTpe :: (Maybe Type),-    refineTypeStats :: [Stat]}-  deriving (Eq, Ord, Read, Show)--_RefineType = Core.Name "hydra.scala.syntax.RefineType"--_RefineType_tpe = Core.Name "tpe"--_RefineType_stats = Core.Name "stats"--data ExistentialType =-  ExistentialType {-    existentialTypeTpe :: Type,-    existentialTypeStats :: [Stat]}-  deriving (Eq, Ord, Read, Show)--_ExistentialType = Core.Name "hydra.scala.syntax.ExistentialType"--_ExistentialType_tpe = Core.Name "tpe"--_ExistentialType_stats = Core.Name "stats"--data AnnotateType =-  AnnotateType {-    annotateTypeTpe :: Type,-    annotateTypeAnnots :: [AnnotMod]}-  deriving (Eq, Ord, Read, Show)--_AnnotateType = Core.Name "hydra.scala.syntax.AnnotateType"--_AnnotateType_tpe = Core.Name "tpe"--_AnnotateType_annots = Core.Name "annots"--data LambdaType =-  LambdaType {-    lambdaTypeTparams :: [ParamType],-    lambdaTypeTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_LambdaType = Core.Name "hydra.scala.syntax.LambdaType"--_LambdaType_tparams = Core.Name "tparams"--_LambdaType_tpe = Core.Name "tpe"--data MethodType =-  MethodType {-    methodTypeParamss :: [[ParamData]],-    methodTypeTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_MethodType = Core.Name "hydra.scala.syntax.MethodType"--_MethodType_paramss = Core.Name "paramss"--_MethodType_tpe = Core.Name "tpe"--data PlaceholderType =-  PlaceholderType {-    placeholderTypeBounds :: TypeBounds}-  deriving (Eq, Ord, Read, Show)--_PlaceholderType = Core.Name "hydra.scala.syntax.PlaceholderType"--_PlaceholderType_bounds = Core.Name "bounds"--data TypeBounds =-  TypeBounds {-    typeBoundsLo :: (Maybe Type),-    typeBoundsHi :: (Maybe Type)}-  deriving (Eq, Ord, Read, Show)--_TypeBounds = Core.Name "hydra.scala.syntax.TypeBounds"--_TypeBounds_lo = Core.Name "lo"--_TypeBounds_hi = Core.Name "hi"--data ByNameType =-  ByNameType {-    byNameTypeTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_ByNameType = Core.Name "hydra.scala.syntax.ByNameType"--_ByNameType_tpe = Core.Name "tpe"--data RepeatedType =-  RepeatedType {-    repeatedTypeTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_RepeatedType = Core.Name "hydra.scala.syntax.RepeatedType"--_RepeatedType_tpe = Core.Name "tpe"--data VarType =-  VarType {-    varTypeName :: NameType}-  deriving (Eq, Ord, Read, Show)--_VarType = Core.Name "hydra.scala.syntax.VarType"--_VarType_name = Core.Name "name"--data TypedParamType =-  TypedParamType {-    typedParamTypeName :: Name,-    typedParamTypeTyp :: Type}-  deriving (Eq, Ord, Read, Show)--_TypedParamType = Core.Name "hydra.scala.syntax.TypedParamType"--_TypedParamType_name = Core.Name "name"--_TypedParamType_typ = Core.Name "typ"--data ParamType =-  ParamType {-    paramTypeMods :: [Mod],-    paramTypeName :: Name,-    paramTypeTparams :: [ParamType],-    paramTypeTbounds :: [TypeBounds],-    paramTypeVbounds :: [Type],-    paramTypeCbounds :: [Type]}-  deriving (Eq, Ord, Read, Show)--_ParamType = Core.Name "hydra.scala.syntax.ParamType"--_ParamType_mods = Core.Name "mods"--_ParamType_name = Core.Name "name"--_ParamType_tparams = Core.Name "tparams"--_ParamType_tbounds = Core.Name "tbounds"--_ParamType_vbounds = Core.Name "vbounds"--_ParamType_cbounds = Core.Name "cbounds"--data MatchType =-  MatchType {-    matchTypeTpe :: Type,-    matchTypeCases :: [TypeCase]}-  deriving (Eq, Ord, Read, Show)--_MatchType = Core.Name "hydra.scala.syntax.MatchType"--_MatchType_tpe = Core.Name "tpe"--_MatchType_cases = Core.Name "cases"--data Pat =-  PatVar VarPat |-  PatWildcard |-  PatSeqWildcard |-  PatBind BindPat |-  PatAlternative AlternativePat |-  PatTuple TuplePat |-  PatRepeated RepeatedPat |-  PatExtract ExtractPat |-  PatExtractInfix ExtractInfixPat |-  PatInterpolate InterpolatePat |-  PatTyped TypedPat |-  PatGiven GivenPat-  deriving (Eq, Ord, Read, Show)--_Pat = Core.Name "hydra.scala.syntax.Pat"--_Pat_var = Core.Name "var"--_Pat_wildcard = Core.Name "wildcard"--_Pat_seqWildcard = Core.Name "seqWildcard"--_Pat_bind = Core.Name "bind"--_Pat_alternative = Core.Name "alternative"--_Pat_tuple = Core.Name "tuple"--_Pat_repeated = Core.Name "repeated"--_Pat_extract = Core.Name "extract"--_Pat_extractInfix = Core.Name "extractInfix"--_Pat_interpolate = Core.Name "interpolate"--_Pat_typed = Core.Name "typed"--_Pat_given = Core.Name "given"--data VarPat =-  VarPat {-    varPatName :: NameData}-  deriving (Eq, Ord, Read, Show)--_VarPat = Core.Name "hydra.scala.syntax.VarPat"--_VarPat_name = Core.Name "name"--data BindPat =-  BindPat {-    bindPatLhs :: Pat,-    bindPatRhs :: Pat}-  deriving (Eq, Ord, Read, Show)--_BindPat = Core.Name "hydra.scala.syntax.BindPat"--_BindPat_lhs = Core.Name "lhs"--_BindPat_rhs = Core.Name "rhs"--data AlternativePat =-  AlternativePat {-    alternativePatLhs :: Pat,-    alternativePatRhs :: Pat}-  deriving (Eq, Ord, Read, Show)--_AlternativePat = Core.Name "hydra.scala.syntax.AlternativePat"--_AlternativePat_lhs = Core.Name "lhs"--_AlternativePat_rhs = Core.Name "rhs"--data TuplePat =-  TuplePat {-    tuplePatArgs :: [Pat]}-  deriving (Eq, Ord, Read, Show)--_TuplePat = Core.Name "hydra.scala.syntax.TuplePat"--_TuplePat_args = Core.Name "args"--data RepeatedPat =-  RepeatedPat {-    repeatedPatName :: NameData}-  deriving (Eq, Ord, Read, Show)--_RepeatedPat = Core.Name "hydra.scala.syntax.RepeatedPat"--_RepeatedPat_name = Core.Name "name"--data ExtractPat =-  ExtractPat {-    extractPatFun :: Data,-    extractPatArgs :: [Pat]}-  deriving (Eq, Ord, Read, Show)--_ExtractPat = Core.Name "hydra.scala.syntax.ExtractPat"--_ExtractPat_fun = Core.Name "fun"--_ExtractPat_args = Core.Name "args"--data ExtractInfixPat =-  ExtractInfixPat {-    extractInfixPatLhs :: Pat,-    extractInfixPatOp :: NameData,-    extractInfixPatRhs :: [Pat]}-  deriving (Eq, Ord, Read, Show)--_ExtractInfixPat = Core.Name "hydra.scala.syntax.ExtractInfixPat"--_ExtractInfixPat_lhs = Core.Name "lhs"--_ExtractInfixPat_op = Core.Name "op"--_ExtractInfixPat_rhs = Core.Name "rhs"--data InterpolatePat =-  InterpolatePat {-    interpolatePatPrefix :: NameData,-    interpolatePatParts :: [Lit]}-  deriving (Eq, Ord, Read, Show)--_InterpolatePat = Core.Name "hydra.scala.syntax.InterpolatePat"--_InterpolatePat_prefix = Core.Name "prefix"--_InterpolatePat_parts = Core.Name "parts"--data TypedPat =-  TypedPat {-    typedPatLhs :: Pat,-    typedPatRhs :: Type}-  deriving (Eq, Ord, Read, Show)--_TypedPat = Core.Name "hydra.scala.syntax.TypedPat"--_TypedPat_lhs = Core.Name "lhs"--_TypedPat_rhs = Core.Name "rhs"--data GivenPat =-  GivenPat {-    givenPatTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_GivenPat = Core.Name "hydra.scala.syntax.GivenPat"--_GivenPat_tpe = Core.Name "tpe"--data Member =-  MemberTerm DataMember |-  MemberType TypeMember |-  MemberTermParam ParamData |-  MemberTypeParam ParamType |-  MemberSelf Self-  deriving (Eq, Ord, Read, Show)--_Member = Core.Name "hydra.scala.syntax.Member"--_Member_term = Core.Name "term"--_Member_type = Core.Name "type"--_Member_termParam = Core.Name "termParam"--_Member_typeParam = Core.Name "typeParam"--_Member_self = Core.Name "self"--data DataMember =-  DataMemberPkg Pkg |-  DataMemberObject ObjectPkg-  deriving (Eq, Ord, Read, Show)--_DataMember = Core.Name "hydra.scala.syntax.DataMember"--_DataMember_pkg = Core.Name "pkg"--_DataMember_object = Core.Name "object"--data TypeMember =-  TypeMember {-    typeMemberName :: NameType}-  deriving (Eq, Ord, Read, Show)--_TypeMember = Core.Name "hydra.scala.syntax.TypeMember"--_TypeMember_name = Core.Name "name"--data Decl =-  DeclVal ValDecl |-  DeclVar VarDecl |-  DeclDef DefDecl |-  DeclType TypeDecl |-  DeclGiven GivenDecl-  deriving (Eq, Ord, Read, Show)--_Decl = Core.Name "hydra.scala.syntax.Decl"--_Decl_val = Core.Name "val"--_Decl_var = Core.Name "var"--_Decl_def = Core.Name "def"--_Decl_type = Core.Name "type"--_Decl_given = Core.Name "given"--data ValDecl =-  ValDecl {-    valDeclMods :: [Mod],-    valDeclPats :: [Pat],-    valDeclDecltpe :: Type}-  deriving (Eq, Ord, Read, Show)--_ValDecl = Core.Name "hydra.scala.syntax.ValDecl"--_ValDecl_mods = Core.Name "mods"--_ValDecl_pats = Core.Name "pats"--_ValDecl_decltpe = Core.Name "decltpe"--data VarDecl =-  VarDecl {-    varDeclMods :: [Mod],-    varDeclPats :: [Pat],-    varDeclDecltpe :: Type}-  deriving (Eq, Ord, Read, Show)--_VarDecl = Core.Name "hydra.scala.syntax.VarDecl"--_VarDecl_mods = Core.Name "mods"--_VarDecl_pats = Core.Name "pats"--_VarDecl_decltpe = Core.Name "decltpe"--data DefDecl =-  DefDecl {-    defDeclMods :: [Mod],-    defDeclName :: NameData,-    defDeclTparams :: [ParamType],-    defDeclParamss :: [[ParamData]],-    defDeclDecltpe :: Type}-  deriving (Eq, Ord, Read, Show)--_DefDecl = Core.Name "hydra.scala.syntax.DefDecl"--_DefDecl_mods = Core.Name "mods"--_DefDecl_name = Core.Name "name"--_DefDecl_tparams = Core.Name "tparams"--_DefDecl_paramss = Core.Name "paramss"--_DefDecl_decltpe = Core.Name "decltpe"--data TypeDecl =-  TypeDecl {-    typeDeclMods :: [Mod],-    typeDeclName :: NameType,-    typeDeclTparams :: [ParamType],-    typeDeclBounds :: TypeBounds}-  deriving (Eq, Ord, Read, Show)--_TypeDecl = Core.Name "hydra.scala.syntax.TypeDecl"--_TypeDecl_mods = Core.Name "mods"--_TypeDecl_name = Core.Name "name"--_TypeDecl_tparams = Core.Name "tparams"--_TypeDecl_bounds = Core.Name "bounds"--data GivenDecl =-  GivenDecl {-    givenDeclMods :: [Mod],-    givenDeclName :: NameData,-    givenDeclTparams :: [ParamType],-    givenDeclSparams :: [[ParamData]],-    givenDeclDecltpe :: Type}-  deriving (Eq, Ord, Read, Show)--_GivenDecl = Core.Name "hydra.scala.syntax.GivenDecl"--_GivenDecl_mods = Core.Name "mods"--_GivenDecl_name = Core.Name "name"--_GivenDecl_tparams = Core.Name "tparams"--_GivenDecl_sparams = Core.Name "sparams"--_GivenDecl_decltpe = Core.Name "decltpe"--data Defn =-  DefnVal ValDefn |-  DefnVar VarDefn |-  DefnGiven GivenDefn |-  DefnEnum EnumDefn |-  DefnEnumCase EnumCaseDefn |-  DefnRepeatedEnumCase RepeatedEnumCaseDefn |-  DefnGivenAlias GivenAliasDefn |-  DefnExtensionGroup ExtensionGroupDefn |-  DefnDef DefDefn |-  DefnType TypeDefn |-  DefnClass ClassDefn |-  DefnTrait TraitDefn |-  DefnObject ObjectDefn-  deriving (Eq, Ord, Read, Show)--_Defn = Core.Name "hydra.scala.syntax.Defn"--_Defn_val = Core.Name "val"--_Defn_var = Core.Name "var"--_Defn_given = Core.Name "given"--_Defn_enum = Core.Name "enum"--_Defn_enumCase = Core.Name "enumCase"--_Defn_repeatedEnumCase = Core.Name "repeatedEnumCase"--_Defn_givenAlias = Core.Name "givenAlias"--_Defn_extensionGroup = Core.Name "extensionGroup"--_Defn_def = Core.Name "def"--_Defn_type = Core.Name "type"--_Defn_class = Core.Name "class"--_Defn_trait = Core.Name "trait"--_Defn_object = Core.Name "object"--data ValDefn =-  ValDefn {-    valDefnMods :: [Mod],-    valDefnPats :: [Pat],-    valDefnDecltpe :: (Maybe Type),-    valDefnRhs :: Data}-  deriving (Eq, Ord, Read, Show)--_ValDefn = Core.Name "hydra.scala.syntax.ValDefn"--_ValDefn_mods = Core.Name "mods"--_ValDefn_pats = Core.Name "pats"--_ValDefn_decltpe = Core.Name "decltpe"--_ValDefn_rhs = Core.Name "rhs"--data VarDefn =-  VarDefn {-    varDefnMods :: [Mod],-    varDefnPats :: [Pat],-    varDefnDecltpe :: Type,-    varDefnRhs :: (Maybe Data)}-  deriving (Eq, Ord, Read, Show)--_VarDefn = Core.Name "hydra.scala.syntax.VarDefn"--_VarDefn_mods = Core.Name "mods"--_VarDefn_pats = Core.Name "pats"--_VarDefn_decltpe = Core.Name "decltpe"--_VarDefn_rhs = Core.Name "rhs"--data GivenDefn =-  GivenDefn {-    givenDefnMods :: [Mod],-    givenDefnName :: Name,-    givenDefnTparams :: [[ParamType]],-    givenDefnSparams :: [[ParamData]],-    givenDefnTempl :: Template}-  deriving (Eq, Ord, Read, Show)--_GivenDefn = Core.Name "hydra.scala.syntax.GivenDefn"--_GivenDefn_mods = Core.Name "mods"--_GivenDefn_name = Core.Name "name"--_GivenDefn_tparams = Core.Name "tparams"--_GivenDefn_sparams = Core.Name "sparams"--_GivenDefn_templ = Core.Name "templ"--data EnumDefn =-  EnumDefn {-    enumDefnMods :: [Mod],-    enumDefnName :: NameType,-    enumDefnTparams :: [ParamType],-    enumDefnCtor :: PrimaryCtor,-    enumDefnTemplate :: Template}-  deriving (Eq, Ord, Read, Show)--_EnumDefn = Core.Name "hydra.scala.syntax.EnumDefn"--_EnumDefn_mods = Core.Name "mods"--_EnumDefn_name = Core.Name "name"--_EnumDefn_tparams = Core.Name "tparams"--_EnumDefn_ctor = Core.Name "ctor"--_EnumDefn_template = Core.Name "template"--data EnumCaseDefn =-  EnumCaseDefn {-    enumCaseDefnMods :: [Mod],-    enumCaseDefnName :: NameData,-    enumCaseDefnTparams :: [ParamType],-    enumCaseDefnCtor :: PrimaryCtor,-    enumCaseDefnInits :: [Init]}-  deriving (Eq, Ord, Read, Show)--_EnumCaseDefn = Core.Name "hydra.scala.syntax.EnumCaseDefn"--_EnumCaseDefn_mods = Core.Name "mods"--_EnumCaseDefn_name = Core.Name "name"--_EnumCaseDefn_tparams = Core.Name "tparams"--_EnumCaseDefn_ctor = Core.Name "ctor"--_EnumCaseDefn_inits = Core.Name "inits"--data RepeatedEnumCaseDefn =-  RepeatedEnumCaseDefn {-    repeatedEnumCaseDefnMods :: [Mod],-    repeatedEnumCaseDefnCases :: [NameData]}-  deriving (Eq, Ord, Read, Show)--_RepeatedEnumCaseDefn = Core.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"--_RepeatedEnumCaseDefn_mods = Core.Name "mods"--_RepeatedEnumCaseDefn_cases = Core.Name "cases"--data GivenAliasDefn =-  GivenAliasDefn {-    givenAliasDefnMods :: [Mod],-    givenAliasDefnName :: Name,-    givenAliasDefnTparams :: [[ParamType]],-    givenAliasDefnSparams :: [[ParamData]],-    givenAliasDefnDecltpe :: Type,-    givenAliasDefnBody :: Data}-  deriving (Eq, Ord, Read, Show)--_GivenAliasDefn = Core.Name "hydra.scala.syntax.GivenAliasDefn"--_GivenAliasDefn_mods = Core.Name "mods"--_GivenAliasDefn_name = Core.Name "name"--_GivenAliasDefn_tparams = Core.Name "tparams"--_GivenAliasDefn_sparams = Core.Name "sparams"--_GivenAliasDefn_decltpe = Core.Name "decltpe"--_GivenAliasDefn_body = Core.Name "body"--data ExtensionGroupDefn =-  ExtensionGroupDefn {-    extensionGroupDefnTparams :: [ParamType],-    extensionGroupDefnParmss :: [[ParamData]],-    extensionGroupDefnBody :: Stat}-  deriving (Eq, Ord, Read, Show)--_ExtensionGroupDefn = Core.Name "hydra.scala.syntax.ExtensionGroupDefn"--_ExtensionGroupDefn_tparams = Core.Name "tparams"--_ExtensionGroupDefn_parmss = Core.Name "parmss"--_ExtensionGroupDefn_body = Core.Name "body"--data DefDefn =-  DefDefn {-    defDefnMods :: [Mod],-    defDefnName :: NameData,-    defDefnTparams :: [ParamType],-    defDefnParamss :: [[ParamData]],-    defDefnDecltpe :: (Maybe Type),-    defDefnBody :: Data}-  deriving (Eq, Ord, Read, Show)--_DefDefn = Core.Name "hydra.scala.syntax.DefDefn"--_DefDefn_mods = Core.Name "mods"--_DefDefn_name = Core.Name "name"--_DefDefn_tparams = Core.Name "tparams"--_DefDefn_paramss = Core.Name "paramss"--_DefDefn_decltpe = Core.Name "decltpe"--_DefDefn_body = Core.Name "body"--data TypeDefn =-  TypeDefn {-    typeDefnMods :: [Mod],-    typeDefnName :: NameType,-    typeDefnTparams :: [ParamType],-    typeDefnBody :: Type}-  deriving (Eq, Ord, Read, Show)--_TypeDefn = Core.Name "hydra.scala.syntax.TypeDefn"--_TypeDefn_mods = Core.Name "mods"--_TypeDefn_name = Core.Name "name"--_TypeDefn_tparams = Core.Name "tparams"--_TypeDefn_body = Core.Name "body"--data ClassDefn =-  ClassDefn {-    classDefnMods :: [Mod],-    classDefnName :: NameType,-    classDefnTparams :: [ParamType],-    classDefnCtor :: PrimaryCtor,-    classDefnTemplate :: Template}-  deriving (Eq, Ord, Read, Show)--_ClassDefn = Core.Name "hydra.scala.syntax.ClassDefn"--_ClassDefn_mods = Core.Name "mods"--_ClassDefn_name = Core.Name "name"--_ClassDefn_tparams = Core.Name "tparams"--_ClassDefn_ctor = Core.Name "ctor"--_ClassDefn_template = Core.Name "template"--data TraitDefn =-  TraitDefn {-    traitDefnMods :: [Mod],-    traitDefnName :: NameType,-    traitDefnTparams :: [ParamType],-    traitDefnCtor :: PrimaryCtor,-    traitDefnTemplate :: Template}-  deriving (Eq, Ord, Read, Show)--_TraitDefn = Core.Name "hydra.scala.syntax.TraitDefn"--_TraitDefn_mods = Core.Name "mods"--_TraitDefn_name = Core.Name "name"--_TraitDefn_tparams = Core.Name "tparams"--_TraitDefn_ctor = Core.Name "ctor"--_TraitDefn_template = Core.Name "template"--data ObjectDefn =-  ObjectDefn {-    objectDefnName :: NameData}-  deriving (Eq, Ord, Read, Show)--_ObjectDefn = Core.Name "hydra.scala.syntax.ObjectDefn"--_ObjectDefn_name = Core.Name "name"--data Pkg =-  Pkg {-    pkgName :: NameData,-    pkgRef :: RefData,-    pkgStats :: [Stat]}-  deriving (Eq, Ord, Read, Show)--_Pkg = Core.Name "hydra.scala.syntax.Pkg"--_Pkg_name = Core.Name "name"--_Pkg_ref = Core.Name "ref"--_Pkg_stats = Core.Name "stats"--data ObjectPkg =-  ObjectPkg {-    objectPkgMods :: [Mod],-    objectPkgName :: NameData,-    objectPkgTemplate :: Template}-  deriving (Eq, Ord, Read, Show)--_ObjectPkg = Core.Name "hydra.scala.syntax.ObjectPkg"--_ObjectPkg_mods = Core.Name "mods"--_ObjectPkg_name = Core.Name "name"--_ObjectPkg_template = Core.Name "template"--data Ctor =-  CtorPrimary PrimaryCtor |-  CtorSecondary SecondaryCtor-  deriving (Eq, Ord, Read, Show)--_Ctor = Core.Name "hydra.scala.syntax.Ctor"--_Ctor_primary = Core.Name "primary"--_Ctor_secondary = Core.Name "secondary"--data PrimaryCtor =-  PrimaryCtor {-    primaryCtorMods :: [Mod],-    primaryCtorName :: Name,-    primaryCtorParamss :: [[ParamData]]}-  deriving (Eq, Ord, Read, Show)--_PrimaryCtor = Core.Name "hydra.scala.syntax.PrimaryCtor"--_PrimaryCtor_mods = Core.Name "mods"--_PrimaryCtor_name = Core.Name "name"--_PrimaryCtor_paramss = Core.Name "paramss"--data SecondaryCtor =-  SecondaryCtor {-    secondaryCtorMods :: [Mod],-    secondaryCtorName :: Name,-    secondaryCtorParamss :: [[ParamData]],-    secondaryCtorInit :: Init,-    secondaryCtorStats :: [Stat]}-  deriving (Eq, Ord, Read, Show)--_SecondaryCtor = Core.Name "hydra.scala.syntax.SecondaryCtor"--_SecondaryCtor_mods = Core.Name "mods"--_SecondaryCtor_name = Core.Name "name"--_SecondaryCtor_paramss = Core.Name "paramss"--_SecondaryCtor_init = Core.Name "init"--_SecondaryCtor_stats = Core.Name "stats"--data Init =-  Init {-    initTpe :: Type,-    initName :: Name,-    initArgss :: [[Data]]}-  deriving (Eq, Ord, Read, Show)--_Init = Core.Name "hydra.scala.syntax.Init"--_Init_tpe = Core.Name "tpe"--_Init_name = Core.Name "name"--_Init_argss = Core.Name "argss"--newtype Self =-  Self {-    unSelf :: ()}-  deriving (Eq, Ord, Read, Show)--_Self = Core.Name "hydra.scala.syntax.Self"--data Template =-  Template {-    templateEarly :: [Stat],-    templateInits :: [Init],-    templateSelf :: Self,-    templateStats :: [Stat]}-  deriving (Eq, Ord, Read, Show)--_Template = Core.Name "hydra.scala.syntax.Template"--_Template_early = Core.Name "early"--_Template_inits = Core.Name "inits"--_Template_self = Core.Name "self"--_Template_stats = Core.Name "stats"--data Mod =-  ModAnnot AnnotMod |-  ModPrivate PrivateMod |-  ModProtected ProtectedMod |-  ModImplicit |-  ModFinal |-  ModSealed |-  ModOpen |-  ModSuper |-  ModOverride |-  ModCase |-  ModAbstract |-  ModCovariant |-  ModContravariant |-  ModLazy |-  ModValParam |-  ModVarParam |-  ModInfix |-  ModInline |-  ModUsing |-  ModOpaque |-  ModTransparent-  deriving (Eq, Ord, Read, Show)--_Mod = Core.Name "hydra.scala.syntax.Mod"--_Mod_annot = Core.Name "annot"--_Mod_private = Core.Name "private"--_Mod_protected = Core.Name "protected"--_Mod_implicit = Core.Name "implicit"--_Mod_final = Core.Name "final"--_Mod_sealed = Core.Name "sealed"--_Mod_open = Core.Name "open"--_Mod_super = Core.Name "super"--_Mod_override = Core.Name "override"--_Mod_case = Core.Name "case"--_Mod_abstract = Core.Name "abstract"--_Mod_covariant = Core.Name "covariant"--_Mod_contravariant = Core.Name "contravariant"--_Mod_lazy = Core.Name "lazy"--_Mod_valParam = Core.Name "valParam"--_Mod_varParam = Core.Name "varParam"--_Mod_infix = Core.Name "infix"--_Mod_inline = Core.Name "inline"--_Mod_using = Core.Name "using"--_Mod_opaque = Core.Name "opaque"--_Mod_transparent = Core.Name "transparent"--data AnnotMod =-  AnnotMod {-    annotModInit :: Init}-  deriving (Eq, Ord, Read, Show)--_AnnotMod = Core.Name "hydra.scala.syntax.AnnotMod"--_AnnotMod_init = Core.Name "init"--data PrivateMod =-  PrivateMod {-    privateModWithin :: Ref}-  deriving (Eq, Ord, Read, Show)--_PrivateMod = Core.Name "hydra.scala.syntax.PrivateMod"--_PrivateMod_within = Core.Name "within"--data ProtectedMod =-  ProtectedMod {-    protectedModWithin :: Ref}-  deriving (Eq, Ord, Read, Show)--_ProtectedMod = Core.Name "hydra.scala.syntax.ProtectedMod"--_ProtectedMod_within = Core.Name "within"--data Enumerator =-  EnumeratorGenerator GeneratorEnumerator |-  EnumeratorCaseGenerator CaseGeneratorEnumerator |-  EnumeratorVal ValEnumerator |-  EnumeratorGuard GuardEnumerator-  deriving (Eq, Ord, Read, Show)--_Enumerator = Core.Name "hydra.scala.syntax.Enumerator"--_Enumerator_generator = Core.Name "generator"--_Enumerator_caseGenerator = Core.Name "caseGenerator"--_Enumerator_val = Core.Name "val"--_Enumerator_guard = Core.Name "guard"--data GeneratorEnumerator =-  GeneratorEnumerator {-    generatorEnumeratorPat :: Pat,-    generatorEnumeratorRhs :: Data}-  deriving (Eq, Ord, Read, Show)--_GeneratorEnumerator = Core.Name "hydra.scala.syntax.GeneratorEnumerator"--_GeneratorEnumerator_pat = Core.Name "pat"--_GeneratorEnumerator_rhs = Core.Name "rhs"--data CaseGeneratorEnumerator =-  CaseGeneratorEnumerator {-    caseGeneratorEnumeratorPat :: Pat,-    caseGeneratorEnumeratorRhs :: Data}-  deriving (Eq, Ord, Read, Show)--_CaseGeneratorEnumerator = Core.Name "hydra.scala.syntax.CaseGeneratorEnumerator"--_CaseGeneratorEnumerator_pat = Core.Name "pat"--_CaseGeneratorEnumerator_rhs = Core.Name "rhs"--data ValEnumerator =-  ValEnumerator {-    valEnumeratorPat :: Pat,-    valEnumeratorRhs :: Data}-  deriving (Eq, Ord, Read, Show)--_ValEnumerator = Core.Name "hydra.scala.syntax.ValEnumerator"--_ValEnumerator_pat = Core.Name "pat"--_ValEnumerator_rhs = Core.Name "rhs"--data GuardEnumerator =-  GuardEnumerator {-    guardEnumeratorCond :: Data}-  deriving (Eq, Ord, Read, Show)--_GuardEnumerator = Core.Name "hydra.scala.syntax.GuardEnumerator"--_GuardEnumerator_cond = Core.Name "cond"--data ImportExportStat =-  ImportExportStatImport Import |-  ImportExportStatExport Export-  deriving (Eq, Ord, Read, Show)--_ImportExportStat = Core.Name "hydra.scala.syntax.ImportExportStat"--_ImportExportStat_import = Core.Name "import"--_ImportExportStat_export = Core.Name "export"--data Import =-  Import {-    importImporters :: [Importer]}-  deriving (Eq, Ord, Read, Show)--_Import = Core.Name "hydra.scala.syntax.Import"--_Import_importers = Core.Name "importers"--data Export =-  Export {-    exportImporters :: [Importer]}-  deriving (Eq, Ord, Read, Show)--_Export = Core.Name "hydra.scala.syntax.Export"--_Export_importers = Core.Name "importers"--data Importer =-  Importer {-    importerRef :: RefData,-    importerImportees :: [Importee]}-  deriving (Eq, Ord, Read, Show)--_Importer = Core.Name "hydra.scala.syntax.Importer"--_Importer_ref = Core.Name "ref"--_Importer_importees = Core.Name "importees"--data Importee =-  ImporteeWildcard |-  ImporteeGiven GivenImportee |-  ImporteeGivenAll |-  ImporteeName NameImportee |-  ImporteeRename RenameImportee |-  ImporteeUnimport UnimportImportee-  deriving (Eq, Ord, Read, Show)--_Importee = Core.Name "hydra.scala.syntax.Importee"--_Importee_wildcard = Core.Name "wildcard"--_Importee_given = Core.Name "given"--_Importee_givenAll = Core.Name "givenAll"--_Importee_name = Core.Name "name"--_Importee_rename = Core.Name "rename"--_Importee_unimport = Core.Name "unimport"--data GivenImportee =-  GivenImportee {-    givenImporteeTpe :: Type}-  deriving (Eq, Ord, Read, Show)--_GivenImportee = Core.Name "hydra.scala.syntax.GivenImportee"--_GivenImportee_tpe = Core.Name "tpe"--data NameImportee =-  NameImportee {-    nameImporteeName :: Name}-  deriving (Eq, Ord, Read, Show)--_NameImportee = Core.Name "hydra.scala.syntax.NameImportee"--_NameImportee_name = Core.Name "name"--data RenameImportee =-  RenameImportee {-    renameImporteeName :: Name,-    renameImporteeRename :: Name}-  deriving (Eq, Ord, Read, Show)--_RenameImportee = Core.Name "hydra.scala.syntax.RenameImportee"--_RenameImportee_name = Core.Name "name"--_RenameImportee_rename = Core.Name "rename"--data UnimportImportee =-  UnimportImportee {-    unimportImporteeName :: Name}-  deriving (Eq, Ord, Read, Show)--_UnimportImportee = Core.Name "hydra.scala.syntax.UnimportImportee"--_UnimportImportee_name = Core.Name "name"--data CaseTree =-  CaseTreeCase Case |-  CaseTreeTypeCase TypeCase-  deriving (Eq, Ord, Read, Show)--_CaseTree = Core.Name "hydra.scala.syntax.CaseTree"--_CaseTree_case = Core.Name "case"--_CaseTree_typeCase = Core.Name "typeCase"--data Case =-  Case {-    casePat :: Pat,-    caseCond :: (Maybe Data),-    caseBody :: Data}-  deriving (Eq, Ord, Read, Show)--_Case = Core.Name "hydra.scala.syntax.Case"--_Case_pat = Core.Name "pat"--_Case_cond = Core.Name "cond"--_Case_body = Core.Name "body"--data TypeCase =-  TypeCase {-    typeCasePat :: Type,-    typeCaseBody :: Type}-  deriving (Eq, Ord, Read, Show)--_TypeCase = Core.Name "hydra.scala.syntax.TypeCase"--_TypeCase_pat = Core.Name "pat"--_TypeCase_body = Core.Name "body"--data Source =-  Source {-    sourceStats :: [Stat]}-  deriving (Eq, Ord, Read, Show)--_Source = Core.Name "hydra.scala.syntax.Source"--_Source_stats = Core.Name "stats"+import qualified Hydra.Core.Model as Model+import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)+import qualified Data.Scientific as Sci+import Data.Void+import qualified Data.Int as I++-- | A wrapper for strings used in scala.Predef contexts.+newtype PredefString =+  PredefString {+    unPredefString :: String}+  deriving (Eq, Ord, Read, Show)++_PredefString = Model.Name "hydra.scala.syntax.PredefString"++-- | A Scala 2 symbol literal (corresponds to scala.Symbol).+data ScalaSymbol =+  ScalaSymbol {+    scalaSymbolName :: String}+  deriving (Eq, Ord, Read, Show)++_ScalaSymbol = Model.Name "hydra.scala.syntax.ScalaSymbol"++_ScalaSymbol_name = Model.Name "name"++-- | The root of the Scalameta tree hierarchy. Each arm names a major AST category.+data Tree =+  TreeRef Ref |+  TreeStat Stat |+  TreeType Type |+  TreeBounds TypeBounds |+  TreePat Pat |+  TreeMember Member |+  TreeCtor Ctor |+  TreeTemplate Template |+  TreeMod Mod |+  TreeEnumerator Enumerator |+  TreeImporter Importer |+  TreeImportee Importee |+  TreeCaseTree CaseTree |+  TreeSource Source+  deriving (Eq, Ord, Read, Show)++_Tree = Model.Name "hydra.scala.syntax.Tree"++_Tree_ref = Model.Name "ref"++_Tree_stat = Model.Name "stat"++_Tree_type = Model.Name "type"++_Tree_bounds = Model.Name "bounds"++_Tree_pat = Model.Name "pat"++_Tree_member = Model.Name "member"++_Tree_ctor = Model.Name "ctor"++_Tree_template = Model.Name "template"++_Tree_mod = Model.Name "mod"++_Tree_enumerator = Model.Name "enumerator"++_Tree_importer = Model.Name "importer"++_Tree_importee = Model.Name "importee"++_Tree_caseTree = Model.Name "caseTree"++_Tree_source = Model.Name "source"++data Ref =+  RefName Name |+  RefInit Init+  deriving (Eq, Ord, Read, Show)++_Ref = Model.Name "hydra.scala.syntax.Ref"++_Ref_name = Model.Name "name"++_Ref_init = Model.Name "init"++data Stat =+  StatTerm Data |+  StatDecl Decl |+  StatDefn Defn |+  StatImportExport ImportExportStat+  deriving (Eq, Ord, Read, Show)++_Stat = Model.Name "hydra.scala.syntax.Stat"++_Stat_term = Model.Name "term"++_Stat_decl = Model.Name "decl"++_Stat_defn = Model.Name "defn"++_Stat_importExport = Model.Name "importExport"++data Name =+  NameValue String |+  NameAnonymous |+  NameIndeterminate PredefString+  deriving (Eq, Ord, Read, Show)++_Name = Model.Name "hydra.scala.syntax.Name"++_Name_value = Model.Name "value"++_Name_anonymous = Model.Name "anonymous"++_Name_indeterminate = Model.Name "indeterminate"++data Lit =+  LitNull |+  LitInt Int |+  LitDouble Double |+  LitFloat Float |+  LitByte I.Int8 |+  LitShort I.Int16 |+  LitChar Int |+  LitLong I.Int64 |+  LitBoolean Bool |+  LitUnit |+  LitString String |+  LitBytes [Int] |+  LitSymbol ScalaSymbol+  deriving (Eq, Ord, Read, Show)++_Lit = Model.Name "hydra.scala.syntax.Lit"++_Lit_null = Model.Name "null"++_Lit_int = Model.Name "int"++_Lit_double = Model.Name "double"++_Lit_float = Model.Name "float"++_Lit_byte = Model.Name "byte"++_Lit_short = Model.Name "short"++_Lit_char = Model.Name "char"++_Lit_long = Model.Name "long"++_Lit_boolean = Model.Name "boolean"++_Lit_unit = Model.Name "unit"++_Lit_string = Model.Name "string"++_Lit_bytes = Model.Name "bytes"++_Lit_symbol = Model.Name "symbol"++data Data =+  DataLit Lit |+  DataRef RefData |+  DataInterpolate InterpolateData |+  DataApply ApplyData |+  DataApplyUsing ApplyUsingData |+  DataApplyType ApplyTypeData |+  DataAssign AssignData |+  DataReturn ReturnData |+  DataThrow ThrowData |+  DataAscribe AscribeData |+  DataAnnotate AnnotateData |+  DataTuple TupleData |+  DataBlock BlockData |+  DataEndMarker EndMarkerData |+  DataIf IfData |+  DataMatch MatchData |+  DataTry TryData |+  DataTryWithHandler TryWithHandlerData |+  DataFunction FunctionData |+  DataContextFunction ContextFunctionData |+  DataPolyFunction PolyFunctionData |+  DataPartialFunction PartialFunctionData |+  DataWhile WhileData |+  DataDo DoData |+  DataFor ForData |+  DataForYield ForYieldData |+  DataNew NewData |+  DataNewAnonymous NewAnonymousData |+  DataPlaceholder |+  DataEta EtaData |+  DataRepeated RepeatedData |+  DataParam ParamData+  deriving (Eq, Ord, Read, Show)++_Data = Model.Name "hydra.scala.syntax.Data"++_Data_lit = Model.Name "lit"++_Data_ref = Model.Name "ref"++_Data_interpolate = Model.Name "interpolate"++_Data_apply = Model.Name "apply"++_Data_applyUsing = Model.Name "applyUsing"++_Data_applyType = Model.Name "applyType"++_Data_assign = Model.Name "assign"++_Data_return = Model.Name "return"++_Data_throw = Model.Name "throw"++_Data_ascribe = Model.Name "ascribe"++_Data_annotate = Model.Name "annotate"++_Data_tuple = Model.Name "tuple"++_Data_block = Model.Name "block"++_Data_endMarker = Model.Name "endMarker"++_Data_if = Model.Name "if"++_Data_match = Model.Name "match"++_Data_try = Model.Name "try"++_Data_tryWithHandler = Model.Name "tryWithHandler"++_Data_function = Model.Name "function"++_Data_contextFunction = Model.Name "contextFunction"++_Data_polyFunction = Model.Name "polyFunction"++_Data_partialFunction = Model.Name "partialFunction"++_Data_while = Model.Name "while"++_Data_do = Model.Name "do"++_Data_for = Model.Name "for"++_Data_forYield = Model.Name "forYield"++_Data_new = Model.Name "new"++_Data_newAnonymous = Model.Name "newAnonymous"++_Data_placeholder = Model.Name "placeholder"++_Data_eta = Model.Name "eta"++_Data_repeated = Model.Name "repeated"++_Data_param = Model.Name "param"++data RefData =+  RefDataThis ThisData |+  RefDataSuper SuperData |+  RefDataName NameData |+  RefDataAnonymous AnonymousData |+  RefDataSelect SelectData |+  RefDataApplyUnary ApplyUnaryData+  deriving (Eq, Ord, Read, Show)++_RefData = Model.Name "hydra.scala.syntax.RefData"++_RefData_this = Model.Name "this"++_RefData_super = Model.Name "super"++_RefData_name = Model.Name "name"++_RefData_anonymous = Model.Name "anonymous"++_RefData_select = Model.Name "select"++_RefData_applyUnary = Model.Name "applyUnary"++newtype ThisData =+  ThisData {+    unThisData :: ()}+  deriving (Eq, Ord, Read, Show)++_ThisData = Model.Name "hydra.scala.syntax.ThisData"++data SuperData =+  SuperData {+    superDataThisp :: Name,+    superDataSuperp :: Name}+  deriving (Eq, Ord, Read, Show)++_SuperData = Model.Name "hydra.scala.syntax.SuperData"++_SuperData_thisp = Model.Name "thisp"++_SuperData_superp = Model.Name "superp"++data NameData =+  NameData {+    nameDataValue :: PredefString}+  deriving (Eq, Ord, Read, Show)++_NameData = Model.Name "hydra.scala.syntax.NameData"++_NameData_value = Model.Name "value"++newtype AnonymousData =+  AnonymousData {+    unAnonymousData :: ()}+  deriving (Eq, Ord, Read, Show)++_AnonymousData = Model.Name "hydra.scala.syntax.AnonymousData"++data SelectData =+  SelectData {+    selectDataQual :: Data,+    selectDataName :: NameData}+  deriving (Eq, Ord, Read, Show)++_SelectData = Model.Name "hydra.scala.syntax.SelectData"++_SelectData_qual = Model.Name "qual"++_SelectData_name = Model.Name "name"++data InterpolateData =+  InterpolateData {+    interpolateDataPrefix :: NameData,+    interpolateDataParts :: [Lit],+    interpolateDataArgs :: [Data]}+  deriving (Eq, Ord, Read, Show)++_InterpolateData = Model.Name "hydra.scala.syntax.InterpolateData"++_InterpolateData_prefix = Model.Name "prefix"++_InterpolateData_parts = Model.Name "parts"++_InterpolateData_args = Model.Name "args"++data ApplyData =+  ApplyData {+    applyDataFun :: Data,+    applyDataArgs :: [Data]}+  deriving (Eq, Ord, Read, Show)++_ApplyData = Model.Name "hydra.scala.syntax.ApplyData"++_ApplyData_fun = Model.Name "fun"++_ApplyData_args = Model.Name "args"++data ApplyUsingData =+  ApplyUsingData {+    applyUsingDataFun :: Data,+    applyUsingDataTargs :: [Data]}+  deriving (Eq, Ord, Read, Show)++_ApplyUsingData = Model.Name "hydra.scala.syntax.ApplyUsingData"++_ApplyUsingData_fun = Model.Name "fun"++_ApplyUsingData_targs = Model.Name "targs"++data ApplyTypeData =+  ApplyTypeData {+    applyTypeDataLhs :: Data,+    applyTypeDataOp :: NameData,+    applyTypeDataTargs :: [Type],+    applyTypeDataArgs :: [Data]}+  deriving (Eq, Ord, Read, Show)++_ApplyTypeData = Model.Name "hydra.scala.syntax.ApplyTypeData"++_ApplyTypeData_lhs = Model.Name "lhs"++_ApplyTypeData_op = Model.Name "op"++_ApplyTypeData_targs = Model.Name "targs"++_ApplyTypeData_args = Model.Name "args"++data ApplyInfixData =+  ApplyInfixData {+    applyInfixDataLhs :: Data,+    applyInfixDataOp :: NameData,+    applyInfixDataTargs :: [Type],+    applyInfixDataArgs :: [Data]}+  deriving (Eq, Ord, Read, Show)++_ApplyInfixData = Model.Name "hydra.scala.syntax.ApplyInfixData"++_ApplyInfixData_lhs = Model.Name "lhs"++_ApplyInfixData_op = Model.Name "op"++_ApplyInfixData_targs = Model.Name "targs"++_ApplyInfixData_args = Model.Name "args"++data ApplyUnaryData =+  ApplyUnaryData {+    applyUnaryDataOp :: NameData,+    applyUnaryDataArg :: Data}+  deriving (Eq, Ord, Read, Show)++_ApplyUnaryData = Model.Name "hydra.scala.syntax.ApplyUnaryData"++_ApplyUnaryData_op = Model.Name "op"++_ApplyUnaryData_arg = Model.Name "arg"++data AssignData =+  AssignData {+    assignDataLhs :: Data,+    assignDataRhs :: Data}+  deriving (Eq, Ord, Read, Show)++_AssignData = Model.Name "hydra.scala.syntax.AssignData"++_AssignData_lhs = Model.Name "lhs"++_AssignData_rhs = Model.Name "rhs"++data ReturnData =+  ReturnData {+    returnDataExpr :: Data}+  deriving (Eq, Ord, Read, Show)++_ReturnData = Model.Name "hydra.scala.syntax.ReturnData"++_ReturnData_expr = Model.Name "expr"++data ThrowData =+  ThrowData {+    throwDataExpr :: Data}+  deriving (Eq, Ord, Read, Show)++_ThrowData = Model.Name "hydra.scala.syntax.ThrowData"++_ThrowData_expr = Model.Name "expr"++data AscribeData =+  AscribeData {+    ascribeDataExpr :: Data,+    ascribeDataTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_AscribeData = Model.Name "hydra.scala.syntax.AscribeData"++_AscribeData_expr = Model.Name "expr"++_AscribeData_tpe = Model.Name "tpe"++data AnnotateData =+  AnnotateData {+    annotateDataExpr :: Data,+    annotateDataAnnots :: [AnnotMod]}+  deriving (Eq, Ord, Read, Show)++_AnnotateData = Model.Name "hydra.scala.syntax.AnnotateData"++_AnnotateData_expr = Model.Name "expr"++_AnnotateData_annots = Model.Name "annots"++data TupleData =+  TupleData {+    tupleDataArgs :: [Data]}+  deriving (Eq, Ord, Read, Show)++_TupleData = Model.Name "hydra.scala.syntax.TupleData"++_TupleData_args = Model.Name "args"++data BlockData =+  BlockData {+    blockDataStats :: [Stat]}+  deriving (Eq, Ord, Read, Show)++_BlockData = Model.Name "hydra.scala.syntax.BlockData"++_BlockData_stats = Model.Name "stats"++data EndMarkerData =+  EndMarkerData {+    endMarkerDataName :: NameData}+  deriving (Eq, Ord, Read, Show)++_EndMarkerData = Model.Name "hydra.scala.syntax.EndMarkerData"++_EndMarkerData_name = Model.Name "name"++data IfData =+  IfData {+    ifDataCond :: Data,+    ifDataThenp :: Data,+    ifDataElsep :: Data}+  deriving (Eq, Ord, Read, Show)++_IfData = Model.Name "hydra.scala.syntax.IfData"++_IfData_cond = Model.Name "cond"++_IfData_thenp = Model.Name "thenp"++_IfData_elsep = Model.Name "elsep"++data MatchData =+  MatchData {+    matchDataExpr :: Data,+    matchDataCases :: [Case]}+  deriving (Eq, Ord, Read, Show)++_MatchData = Model.Name "hydra.scala.syntax.MatchData"++_MatchData_expr = Model.Name "expr"++_MatchData_cases = Model.Name "cases"++data TryData =+  TryData {+    tryDataExpr :: Data,+    tryDataCatchp :: [Case],+    tryDataFinallyp :: (Maybe Data)}+  deriving (Eq, Ord, Read, Show)++_TryData = Model.Name "hydra.scala.syntax.TryData"++_TryData_expr = Model.Name "expr"++_TryData_catchp = Model.Name "catchp"++_TryData_finallyp = Model.Name "finallyp"++data TryWithHandlerData =+  TryWithHandlerData {+    tryWithHandlerDataExpr :: Data,+    tryWithHandlerDataCatchp :: Data,+    tryWithHandlerDataFinallyp :: (Maybe Data)}+  deriving (Eq, Ord, Read, Show)++_TryWithHandlerData = Model.Name "hydra.scala.syntax.TryWithHandlerData"++_TryWithHandlerData_expr = Model.Name "expr"++_TryWithHandlerData_catchp = Model.Name "catchp"++_TryWithHandlerData_finallyp = Model.Name "finallyp"++data ContextFunctionData =+  ContextFunctionData {+    contextFunctionDataParams :: [ParamData],+    contextFunctionDataBody :: Data}+  deriving (Eq, Ord, Read, Show)++_ContextFunctionData = Model.Name "hydra.scala.syntax.ContextFunctionData"++_ContextFunctionData_params = Model.Name "params"++_ContextFunctionData_body = Model.Name "body"++data FunctionData =+  FunctionData {+    functionDataParams :: [ParamData],+    functionDataBody :: Data}+  deriving (Eq, Ord, Read, Show)++_FunctionData = Model.Name "hydra.scala.syntax.FunctionData"++_FunctionData_params = Model.Name "params"++_FunctionData_body = Model.Name "body"++data PolyFunctionData =+  PolyFunctionData {+    polyFunctionDataTparams :: [ParamType],+    polyFunctionDataBody :: Data}+  deriving (Eq, Ord, Read, Show)++_PolyFunctionData = Model.Name "hydra.scala.syntax.PolyFunctionData"++_PolyFunctionData_tparams = Model.Name "tparams"++_PolyFunctionData_body = Model.Name "body"++data PartialFunctionData =+  PartialFunctionData {+    partialFunctionDataCases :: [Case]}+  deriving (Eq, Ord, Read, Show)++_PartialFunctionData = Model.Name "hydra.scala.syntax.PartialFunctionData"++_PartialFunctionData_cases = Model.Name "cases"++data WhileData =+  WhileData {+    whileDataExpr :: Data,+    whileDataBody :: Data}+  deriving (Eq, Ord, Read, Show)++_WhileData = Model.Name "hydra.scala.syntax.WhileData"++_WhileData_expr = Model.Name "expr"++_WhileData_body = Model.Name "body"++data DoData =+  DoData {+    doDataBody :: Data,+    doDataExpr :: Data}+  deriving (Eq, Ord, Read, Show)++_DoData = Model.Name "hydra.scala.syntax.DoData"++_DoData_body = Model.Name "body"++_DoData_expr = Model.Name "expr"++data ForData =+  ForData {+    forDataEnums :: [Enumerator]}+  deriving (Eq, Ord, Read, Show)++_ForData = Model.Name "hydra.scala.syntax.ForData"++_ForData_enums = Model.Name "enums"++data ForYieldData =+  ForYieldData {+    forYieldDataEnums :: [Enumerator]}+  deriving (Eq, Ord, Read, Show)++_ForYieldData = Model.Name "hydra.scala.syntax.ForYieldData"++_ForYieldData_enums = Model.Name "enums"++data NewData =+  NewData {+    newDataInit :: Init}+  deriving (Eq, Ord, Read, Show)++_NewData = Model.Name "hydra.scala.syntax.NewData"++_NewData_init = Model.Name "init"++data NewAnonymousData =+  NewAnonymousData {+    newAnonymousDataTempl :: Template}+  deriving (Eq, Ord, Read, Show)++_NewAnonymousData = Model.Name "hydra.scala.syntax.NewAnonymousData"++_NewAnonymousData_templ = Model.Name "templ"++data EtaData =+  EtaData {+    etaDataExpr :: Data}+  deriving (Eq, Ord, Read, Show)++_EtaData = Model.Name "hydra.scala.syntax.EtaData"++_EtaData_expr = Model.Name "expr"++data RepeatedData =+  RepeatedData {+    repeatedDataExpr :: Data}+  deriving (Eq, Ord, Read, Show)++_RepeatedData = Model.Name "hydra.scala.syntax.RepeatedData"++_RepeatedData_expr = Model.Name "expr"++data ParamData =+  ParamData {+    paramDataMods :: [Mod],+    paramDataName :: Name,+    paramDataDecltpe :: (Maybe Type),+    paramDataDefault :: (Maybe Data)}+  deriving (Eq, Ord, Read, Show)++_ParamData = Model.Name "hydra.scala.syntax.ParamData"++_ParamData_mods = Model.Name "mods"++_ParamData_name = Model.Name "name"++_ParamData_decltpe = Model.Name "decltpe"++_ParamData_default = Model.Name "default"++data Type =+  TypeRef RefType |+  TypeAnonymousName AnonymousNameType |+  TypeApply ApplyType |+  TypeApplyInfix ApplyInfixType |+  TypeFunction FunctionType |+  TypeContextFunction ContextFunctionType |+  TypePolyFunction PolyFunctionType |+  TypeImplicitFunction ImplicitFunctionType |+  TypeTuple TupleType |+  TypeWith WithType |+  TypeAnd AndType |+  TypeOr OrType |+  TypeRefine RefineType |+  TypeExistential ExistentialType |+  TypeAnnotate AnnotateType |+  TypeLambda LambdaType |+  TypeMethod MethodType |+  TypePlaceholder PlaceholderType |+  TypeByName ByNameType |+  TypeRepeated RepeatedType |+  TypeVar VarType |+  TypeTypedParam TypedParamType |+  TypeMatch MatchType+  deriving (Eq, Ord, Read, Show)++_Type = Model.Name "hydra.scala.syntax.Type"++_Type_ref = Model.Name "ref"++_Type_anonymousName = Model.Name "anonymousName"++_Type_apply = Model.Name "apply"++_Type_applyInfix = Model.Name "applyInfix"++_Type_function = Model.Name "function"++_Type_contextFunction = Model.Name "contextFunction"++_Type_polyFunction = Model.Name "polyFunction"++_Type_implicitFunction = Model.Name "implicitFunction"++_Type_tuple = Model.Name "tuple"++_Type_with = Model.Name "with"++_Type_and = Model.Name "and"++_Type_or = Model.Name "or"++_Type_refine = Model.Name "refine"++_Type_existential = Model.Name "existential"++_Type_annotate = Model.Name "annotate"++_Type_lambda = Model.Name "lambda"++_Type_method = Model.Name "method"++_Type_placeholder = Model.Name "placeholder"++_Type_byName = Model.Name "byName"++_Type_repeated = Model.Name "repeated"++_Type_var = Model.Name "var"++_Type_typedParam = Model.Name "typedParam"++_Type_match = Model.Name "match"++data RefType =+  RefTypeName NameType |+  RefTypeSelect SelectType |+  RefTypeProject ProjectType |+  RefTypeSingleton SingletonType+  deriving (Eq, Ord, Read, Show)++_RefType = Model.Name "hydra.scala.syntax.RefType"++_RefType_name = Model.Name "name"++_RefType_select = Model.Name "select"++_RefType_project = Model.Name "project"++_RefType_singleton = Model.Name "singleton"++data NameType =+  NameType {+    nameTypeValue :: String}+  deriving (Eq, Ord, Read, Show)++_NameType = Model.Name "hydra.scala.syntax.NameType"++_NameType_value = Model.Name "value"++newtype AnonymousNameType =+  AnonymousNameType {+    unAnonymousNameType :: ()}+  deriving (Eq, Ord, Read, Show)++_AnonymousNameType = Model.Name "hydra.scala.syntax.AnonymousNameType"++data SelectType =+  SelectType {+    selectTypeQual :: RefData,+    selectTypeName :: NameType}+  deriving (Eq, Ord, Read, Show)++_SelectType = Model.Name "hydra.scala.syntax.SelectType"++_SelectType_qual = Model.Name "qual"++_SelectType_name = Model.Name "name"++data ProjectType =+  ProjectType {+    projectTypeQual :: Type,+    projectTypeName :: NameType}+  deriving (Eq, Ord, Read, Show)++_ProjectType = Model.Name "hydra.scala.syntax.ProjectType"++_ProjectType_qual = Model.Name "qual"++_ProjectType_name = Model.Name "name"++data SingletonType =+  SingletonType {+    singletonTypeRef :: RefData}+  deriving (Eq, Ord, Read, Show)++_SingletonType = Model.Name "hydra.scala.syntax.SingletonType"++_SingletonType_ref = Model.Name "ref"++data ApplyType =+  ApplyType {+    applyTypeTpe :: Type,+    applyTypeArgs :: [Type]}+  deriving (Eq, Ord, Read, Show)++_ApplyType = Model.Name "hydra.scala.syntax.ApplyType"++_ApplyType_tpe = Model.Name "tpe"++_ApplyType_args = Model.Name "args"++data ApplyInfixType =+  ApplyInfixType {+    applyInfixTypeLhs :: Type,+    applyInfixTypeOp :: NameType,+    applyInfixTypeRhs :: Type}+  deriving (Eq, Ord, Read, Show)++_ApplyInfixType = Model.Name "hydra.scala.syntax.ApplyInfixType"++_ApplyInfixType_lhs = Model.Name "lhs"++_ApplyInfixType_op = Model.Name "op"++_ApplyInfixType_rhs = Model.Name "rhs"++data FunctionType =+  FunctionType {+    functionTypeParams :: [Type],+    functionTypeRes :: Type}+  deriving (Eq, Ord, Read, Show)++_FunctionType = Model.Name "hydra.scala.syntax.FunctionType"++_FunctionType_params = Model.Name "params"++_FunctionType_res = Model.Name "res"++data PolyFunctionType =+  PolyFunctionType {+    polyFunctionTypeTparams :: [ParamType],+    polyFunctionTypeTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_PolyFunctionType = Model.Name "hydra.scala.syntax.PolyFunctionType"++_PolyFunctionType_tparams = Model.Name "tparams"++_PolyFunctionType_tpe = Model.Name "tpe"++data ContextFunctionType =+  ContextFunctionType {+    contextFunctionTypeParams :: [Type],+    contextFunctionTypeRes :: Type}+  deriving (Eq, Ord, Read, Show)++_ContextFunctionType = Model.Name "hydra.scala.syntax.ContextFunctionType"++_ContextFunctionType_params = Model.Name "params"++_ContextFunctionType_res = Model.Name "res"++data ImplicitFunctionType =+  ImplicitFunctionType {+    implicitFunctionTypeParams :: [Type],+    implicitFunctionTypeRes :: Type}+  deriving (Eq, Ord, Read, Show)++_ImplicitFunctionType = Model.Name "hydra.scala.syntax.ImplicitFunctionType"++_ImplicitFunctionType_params = Model.Name "params"++_ImplicitFunctionType_res = Model.Name "res"++data TupleType =+  TupleType {+    tupleTypeArgs :: [Type]}+  deriving (Eq, Ord, Read, Show)++_TupleType = Model.Name "hydra.scala.syntax.TupleType"++_TupleType_args = Model.Name "args"++data WithType =+  WithType {+    withTypeLhs :: Type,+    withTypeRhs :: Type}+  deriving (Eq, Ord, Read, Show)++_WithType = Model.Name "hydra.scala.syntax.WithType"++_WithType_lhs = Model.Name "lhs"++_WithType_rhs = Model.Name "rhs"++data AndType =+  AndType {+    andTypeLhs :: Type,+    andTypeRhs :: Type}+  deriving (Eq, Ord, Read, Show)++_AndType = Model.Name "hydra.scala.syntax.AndType"++_AndType_lhs = Model.Name "lhs"++_AndType_rhs = Model.Name "rhs"++data OrType =+  OrType {+    orTypeLhs :: Type,+    orTypeRhs :: Type}+  deriving (Eq, Ord, Read, Show)++_OrType = Model.Name "hydra.scala.syntax.OrType"++_OrType_lhs = Model.Name "lhs"++_OrType_rhs = Model.Name "rhs"++data RefineType =+  RefineType {+    refineTypeTpe :: (Maybe Type),+    refineTypeStats :: [Stat]}+  deriving (Eq, Ord, Read, Show)++_RefineType = Model.Name "hydra.scala.syntax.RefineType"++_RefineType_tpe = Model.Name "tpe"++_RefineType_stats = Model.Name "stats"++data ExistentialType =+  ExistentialType {+    existentialTypeTpe :: Type,+    existentialTypeStats :: [Stat]}+  deriving (Eq, Ord, Read, Show)++_ExistentialType = Model.Name "hydra.scala.syntax.ExistentialType"++_ExistentialType_tpe = Model.Name "tpe"++_ExistentialType_stats = Model.Name "stats"++data AnnotateType =+  AnnotateType {+    annotateTypeTpe :: Type,+    annotateTypeAnnots :: [AnnotMod]}+  deriving (Eq, Ord, Read, Show)++_AnnotateType = Model.Name "hydra.scala.syntax.AnnotateType"++_AnnotateType_tpe = Model.Name "tpe"++_AnnotateType_annots = Model.Name "annots"++data LambdaType =+  LambdaType {+    lambdaTypeTparams :: [ParamType],+    lambdaTypeTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_LambdaType = Model.Name "hydra.scala.syntax.LambdaType"++_LambdaType_tparams = Model.Name "tparams"++_LambdaType_tpe = Model.Name "tpe"++data MethodType =+  MethodType {+    methodTypeParamss :: [[ParamData]],+    methodTypeTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_MethodType = Model.Name "hydra.scala.syntax.MethodType"++_MethodType_paramss = Model.Name "paramss"++_MethodType_tpe = Model.Name "tpe"++data PlaceholderType =+  PlaceholderType {+    placeholderTypeBounds :: TypeBounds}+  deriving (Eq, Ord, Read, Show)++_PlaceholderType = Model.Name "hydra.scala.syntax.PlaceholderType"++_PlaceholderType_bounds = Model.Name "bounds"++data TypeBounds =+  TypeBounds {+    typeBoundsLo :: (Maybe Type),+    typeBoundsHi :: (Maybe Type)}+  deriving (Eq, Ord, Read, Show)++_TypeBounds = Model.Name "hydra.scala.syntax.TypeBounds"++_TypeBounds_lo = Model.Name "lo"++_TypeBounds_hi = Model.Name "hi"++data ByNameType =+  ByNameType {+    byNameTypeTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_ByNameType = Model.Name "hydra.scala.syntax.ByNameType"++_ByNameType_tpe = Model.Name "tpe"++data RepeatedType =+  RepeatedType {+    repeatedTypeTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_RepeatedType = Model.Name "hydra.scala.syntax.RepeatedType"++_RepeatedType_tpe = Model.Name "tpe"++data VarType =+  VarType {+    varTypeName :: NameType}+  deriving (Eq, Ord, Read, Show)++_VarType = Model.Name "hydra.scala.syntax.VarType"++_VarType_name = Model.Name "name"++data TypedParamType =+  TypedParamType {+    typedParamTypeName :: Name,+    typedParamTypeTyp :: Type}+  deriving (Eq, Ord, Read, Show)++_TypedParamType = Model.Name "hydra.scala.syntax.TypedParamType"++_TypedParamType_name = Model.Name "name"++_TypedParamType_typ = Model.Name "typ"++data ParamType =+  ParamType {+    paramTypeMods :: [Mod],+    paramTypeName :: Name,+    paramTypeTparams :: [ParamType],+    paramTypeTbounds :: [TypeBounds],+    paramTypeVbounds :: [Type],+    paramTypeCbounds :: [Type]}+  deriving (Eq, Ord, Read, Show)++_ParamType = Model.Name "hydra.scala.syntax.ParamType"++_ParamType_mods = Model.Name "mods"++_ParamType_name = Model.Name "name"++_ParamType_tparams = Model.Name "tparams"++_ParamType_tbounds = Model.Name "tbounds"++_ParamType_vbounds = Model.Name "vbounds"++_ParamType_cbounds = Model.Name "cbounds"++data MatchType =+  MatchType {+    matchTypeTpe :: Type,+    matchTypeCases :: [TypeCase]}+  deriving (Eq, Ord, Read, Show)++_MatchType = Model.Name "hydra.scala.syntax.MatchType"++_MatchType_tpe = Model.Name "tpe"++_MatchType_cases = Model.Name "cases"++data Pat =+  PatVar VarPat |+  PatWildcard |+  PatSeqWildcard |+  PatBind BindPat |+  PatAlternative AlternativePat |+  PatTuple TuplePat |+  PatRepeated RepeatedPat |+  PatExtract ExtractPat |+  PatExtractInfix ExtractInfixPat |+  PatInterpolate InterpolatePat |+  PatTyped TypedPat |+  PatGiven GivenPat+  deriving (Eq, Ord, Read, Show)++_Pat = Model.Name "hydra.scala.syntax.Pat"++_Pat_var = Model.Name "var"++_Pat_wildcard = Model.Name "wildcard"++_Pat_seqWildcard = Model.Name "seqWildcard"++_Pat_bind = Model.Name "bind"++_Pat_alternative = Model.Name "alternative"++_Pat_tuple = Model.Name "tuple"++_Pat_repeated = Model.Name "repeated"++_Pat_extract = Model.Name "extract"++_Pat_extractInfix = Model.Name "extractInfix"++_Pat_interpolate = Model.Name "interpolate"++_Pat_typed = Model.Name "typed"++_Pat_given = Model.Name "given"++data VarPat =+  VarPat {+    varPatName :: NameData}+  deriving (Eq, Ord, Read, Show)++_VarPat = Model.Name "hydra.scala.syntax.VarPat"++_VarPat_name = Model.Name "name"++data BindPat =+  BindPat {+    bindPatLhs :: Pat,+    bindPatRhs :: Pat}+  deriving (Eq, Ord, Read, Show)++_BindPat = Model.Name "hydra.scala.syntax.BindPat"++_BindPat_lhs = Model.Name "lhs"++_BindPat_rhs = Model.Name "rhs"++data AlternativePat =+  AlternativePat {+    alternativePatLhs :: Pat,+    alternativePatRhs :: Pat}+  deriving (Eq, Ord, Read, Show)++_AlternativePat = Model.Name "hydra.scala.syntax.AlternativePat"++_AlternativePat_lhs = Model.Name "lhs"++_AlternativePat_rhs = Model.Name "rhs"++data TuplePat =+  TuplePat {+    tuplePatArgs :: [Pat]}+  deriving (Eq, Ord, Read, Show)++_TuplePat = Model.Name "hydra.scala.syntax.TuplePat"++_TuplePat_args = Model.Name "args"++data RepeatedPat =+  RepeatedPat {+    repeatedPatName :: NameData}+  deriving (Eq, Ord, Read, Show)++_RepeatedPat = Model.Name "hydra.scala.syntax.RepeatedPat"++_RepeatedPat_name = Model.Name "name"++data ExtractPat =+  ExtractPat {+    extractPatFun :: Data,+    extractPatArgs :: [Pat],+    extractPatIsCall :: Bool}+  deriving (Eq, Ord, Read, Show)++_ExtractPat = Model.Name "hydra.scala.syntax.ExtractPat"++_ExtractPat_fun = Model.Name "fun"++_ExtractPat_args = Model.Name "args"++_ExtractPat_isCall = Model.Name "isCall"++data ExtractInfixPat =+  ExtractInfixPat {+    extractInfixPatLhs :: Pat,+    extractInfixPatOp :: NameData,+    extractInfixPatRhs :: [Pat]}+  deriving (Eq, Ord, Read, Show)++_ExtractInfixPat = Model.Name "hydra.scala.syntax.ExtractInfixPat"++_ExtractInfixPat_lhs = Model.Name "lhs"++_ExtractInfixPat_op = Model.Name "op"++_ExtractInfixPat_rhs = Model.Name "rhs"++data InterpolatePat =+  InterpolatePat {+    interpolatePatPrefix :: NameData,+    interpolatePatParts :: [Lit]}+  deriving (Eq, Ord, Read, Show)++_InterpolatePat = Model.Name "hydra.scala.syntax.InterpolatePat"++_InterpolatePat_prefix = Model.Name "prefix"++_InterpolatePat_parts = Model.Name "parts"++data TypedPat =+  TypedPat {+    typedPatLhs :: Pat,+    typedPatRhs :: Type}+  deriving (Eq, Ord, Read, Show)++_TypedPat = Model.Name "hydra.scala.syntax.TypedPat"++_TypedPat_lhs = Model.Name "lhs"++_TypedPat_rhs = Model.Name "rhs"++data GivenPat =+  GivenPat {+    givenPatTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_GivenPat = Model.Name "hydra.scala.syntax.GivenPat"++_GivenPat_tpe = Model.Name "tpe"++data Member =+  MemberTerm DataMember |+  MemberType TypeMember |+  MemberTermParam ParamData |+  MemberTypeParam ParamType |+  MemberSelf Self+  deriving (Eq, Ord, Read, Show)++_Member = Model.Name "hydra.scala.syntax.Member"++_Member_term = Model.Name "term"++_Member_type = Model.Name "type"++_Member_termParam = Model.Name "termParam"++_Member_typeParam = Model.Name "typeParam"++_Member_self = Model.Name "self"++data DataMember =+  DataMemberPkg Pkg |+  DataMemberObject ObjectPkg+  deriving (Eq, Ord, Read, Show)++_DataMember = Model.Name "hydra.scala.syntax.DataMember"++_DataMember_pkg = Model.Name "pkg"++_DataMember_object = Model.Name "object"++data TypeMember =+  TypeMember {+    typeMemberName :: NameType}+  deriving (Eq, Ord, Read, Show)++_TypeMember = Model.Name "hydra.scala.syntax.TypeMember"++_TypeMember_name = Model.Name "name"++data Decl =+  DeclVal ValDecl |+  DeclVar VarDecl |+  DeclDef DefDecl |+  DeclType TypeDecl |+  DeclGiven GivenDecl+  deriving (Eq, Ord, Read, Show)++_Decl = Model.Name "hydra.scala.syntax.Decl"++_Decl_val = Model.Name "val"++_Decl_var = Model.Name "var"++_Decl_def = Model.Name "def"++_Decl_type = Model.Name "type"++_Decl_given = Model.Name "given"++data ValDecl =+  ValDecl {+    valDeclMods :: [Mod],+    valDeclPats :: [Pat],+    valDeclDecltpe :: Type}+  deriving (Eq, Ord, Read, Show)++_ValDecl = Model.Name "hydra.scala.syntax.ValDecl"++_ValDecl_mods = Model.Name "mods"++_ValDecl_pats = Model.Name "pats"++_ValDecl_decltpe = Model.Name "decltpe"++data VarDecl =+  VarDecl {+    varDeclMods :: [Mod],+    varDeclPats :: [Pat],+    varDeclDecltpe :: Type}+  deriving (Eq, Ord, Read, Show)++_VarDecl = Model.Name "hydra.scala.syntax.VarDecl"++_VarDecl_mods = Model.Name "mods"++_VarDecl_pats = Model.Name "pats"++_VarDecl_decltpe = Model.Name "decltpe"++data DefDecl =+  DefDecl {+    defDeclMods :: [Mod],+    defDeclName :: NameData,+    defDeclTparams :: [ParamType],+    defDeclParamss :: [[ParamData]],+    defDeclDecltpe :: Type}+  deriving (Eq, Ord, Read, Show)++_DefDecl = Model.Name "hydra.scala.syntax.DefDecl"++_DefDecl_mods = Model.Name "mods"++_DefDecl_name = Model.Name "name"++_DefDecl_tparams = Model.Name "tparams"++_DefDecl_paramss = Model.Name "paramss"++_DefDecl_decltpe = Model.Name "decltpe"++data TypeDecl =+  TypeDecl {+    typeDeclMods :: [Mod],+    typeDeclName :: NameType,+    typeDeclTparams :: [ParamType],+    typeDeclBounds :: TypeBounds}+  deriving (Eq, Ord, Read, Show)++_TypeDecl = Model.Name "hydra.scala.syntax.TypeDecl"++_TypeDecl_mods = Model.Name "mods"++_TypeDecl_name = Model.Name "name"++_TypeDecl_tparams = Model.Name "tparams"++_TypeDecl_bounds = Model.Name "bounds"++data GivenDecl =+  GivenDecl {+    givenDeclMods :: [Mod],+    givenDeclName :: NameData,+    givenDeclTparams :: [ParamType],+    givenDeclSparams :: [[ParamData]],+    givenDeclDecltpe :: Type}+  deriving (Eq, Ord, Read, Show)++_GivenDecl = Model.Name "hydra.scala.syntax.GivenDecl"++_GivenDecl_mods = Model.Name "mods"++_GivenDecl_name = Model.Name "name"++_GivenDecl_tparams = Model.Name "tparams"++_GivenDecl_sparams = Model.Name "sparams"++_GivenDecl_decltpe = Model.Name "decltpe"++data Defn =+  DefnVal ValDefn |+  DefnVar VarDefn |+  DefnGiven GivenDefn |+  DefnEnum EnumDefn |+  DefnEnumCase EnumCaseDefn |+  DefnRepeatedEnumCase RepeatedEnumCaseDefn |+  DefnGivenAlias GivenAliasDefn |+  DefnExtensionGroup ExtensionGroupDefn |+  DefnDef DefDefn |+  DefnType TypeDefn |+  DefnClass ClassDefn |+  DefnTrait TraitDefn |+  DefnObject ObjectDefn+  deriving (Eq, Ord, Read, Show)++_Defn = Model.Name "hydra.scala.syntax.Defn"++_Defn_val = Model.Name "val"++_Defn_var = Model.Name "var"++_Defn_given = Model.Name "given"++_Defn_enum = Model.Name "enum"++_Defn_enumCase = Model.Name "enumCase"++_Defn_repeatedEnumCase = Model.Name "repeatedEnumCase"++_Defn_givenAlias = Model.Name "givenAlias"++_Defn_extensionGroup = Model.Name "extensionGroup"++_Defn_def = Model.Name "def"++_Defn_type = Model.Name "type"++_Defn_class = Model.Name "class"++_Defn_trait = Model.Name "trait"++_Defn_object = Model.Name "object"++data ValDefn =+  ValDefn {+    valDefnMods :: [Mod],+    valDefnPats :: [Pat],+    valDefnDecltpe :: (Maybe Type),+    valDefnRhs :: Data}+  deriving (Eq, Ord, Read, Show)++_ValDefn = Model.Name "hydra.scala.syntax.ValDefn"++_ValDefn_mods = Model.Name "mods"++_ValDefn_pats = Model.Name "pats"++_ValDefn_decltpe = Model.Name "decltpe"++_ValDefn_rhs = Model.Name "rhs"++data VarDefn =+  VarDefn {+    varDefnMods :: [Mod],+    varDefnPats :: [Pat],+    varDefnDecltpe :: Type,+    varDefnRhs :: (Maybe Data)}+  deriving (Eq, Ord, Read, Show)++_VarDefn = Model.Name "hydra.scala.syntax.VarDefn"++_VarDefn_mods = Model.Name "mods"++_VarDefn_pats = Model.Name "pats"++_VarDefn_decltpe = Model.Name "decltpe"++_VarDefn_rhs = Model.Name "rhs"++data GivenDefn =+  GivenDefn {+    givenDefnMods :: [Mod],+    givenDefnName :: Name,+    givenDefnTparams :: [[ParamType]],+    givenDefnSparams :: [[ParamData]],+    givenDefnTempl :: Template}+  deriving (Eq, Ord, Read, Show)++_GivenDefn = Model.Name "hydra.scala.syntax.GivenDefn"++_GivenDefn_mods = Model.Name "mods"++_GivenDefn_name = Model.Name "name"++_GivenDefn_tparams = Model.Name "tparams"++_GivenDefn_sparams = Model.Name "sparams"++_GivenDefn_templ = Model.Name "templ"++data EnumDefn =+  EnumDefn {+    enumDefnMods :: [Mod],+    enumDefnName :: NameType,+    enumDefnTparams :: [ParamType],+    enumDefnCtor :: PrimaryCtor,+    enumDefnTemplate :: Template}+  deriving (Eq, Ord, Read, Show)++_EnumDefn = Model.Name "hydra.scala.syntax.EnumDefn"++_EnumDefn_mods = Model.Name "mods"++_EnumDefn_name = Model.Name "name"++_EnumDefn_tparams = Model.Name "tparams"++_EnumDefn_ctor = Model.Name "ctor"++_EnumDefn_template = Model.Name "template"++data EnumCaseDefn =+  EnumCaseDefn {+    enumCaseDefnMods :: [Mod],+    enumCaseDefnName :: NameData,+    enumCaseDefnTparams :: [ParamType],+    enumCaseDefnCtor :: PrimaryCtor,+    enumCaseDefnInits :: [Init]}+  deriving (Eq, Ord, Read, Show)++_EnumCaseDefn = Model.Name "hydra.scala.syntax.EnumCaseDefn"++_EnumCaseDefn_mods = Model.Name "mods"++_EnumCaseDefn_name = Model.Name "name"++_EnumCaseDefn_tparams = Model.Name "tparams"++_EnumCaseDefn_ctor = Model.Name "ctor"++_EnumCaseDefn_inits = Model.Name "inits"++data RepeatedEnumCaseDefn =+  RepeatedEnumCaseDefn {+    repeatedEnumCaseDefnMods :: [Mod],+    repeatedEnumCaseDefnCases :: [NameData]}+  deriving (Eq, Ord, Read, Show)++_RepeatedEnumCaseDefn = Model.Name "hydra.scala.syntax.RepeatedEnumCaseDefn"++_RepeatedEnumCaseDefn_mods = Model.Name "mods"++_RepeatedEnumCaseDefn_cases = Model.Name "cases"++data GivenAliasDefn =+  GivenAliasDefn {+    givenAliasDefnMods :: [Mod],+    givenAliasDefnName :: Name,+    givenAliasDefnTparams :: [[ParamType]],+    givenAliasDefnSparams :: [[ParamData]],+    givenAliasDefnDecltpe :: Type,+    givenAliasDefnBody :: Data}+  deriving (Eq, Ord, Read, Show)++_GivenAliasDefn = Model.Name "hydra.scala.syntax.GivenAliasDefn"++_GivenAliasDefn_mods = Model.Name "mods"++_GivenAliasDefn_name = Model.Name "name"++_GivenAliasDefn_tparams = Model.Name "tparams"++_GivenAliasDefn_sparams = Model.Name "sparams"++_GivenAliasDefn_decltpe = Model.Name "decltpe"++_GivenAliasDefn_body = Model.Name "body"++data ExtensionGroupDefn =+  ExtensionGroupDefn {+    extensionGroupDefnTparams :: [ParamType],+    extensionGroupDefnParmss :: [[ParamData]],+    extensionGroupDefnBody :: Stat}+  deriving (Eq, Ord, Read, Show)++_ExtensionGroupDefn = Model.Name "hydra.scala.syntax.ExtensionGroupDefn"++_ExtensionGroupDefn_tparams = Model.Name "tparams"++_ExtensionGroupDefn_parmss = Model.Name "parmss"++_ExtensionGroupDefn_body = Model.Name "body"++data DefDefn =+  DefDefn {+    defDefnMods :: [Mod],+    defDefnName :: NameData,+    defDefnTparams :: [ParamType],+    defDefnParamss :: [[ParamData]],+    defDefnDecltpe :: (Maybe Type),+    defDefnBody :: Data}+  deriving (Eq, Ord, Read, Show)++_DefDefn = Model.Name "hydra.scala.syntax.DefDefn"++_DefDefn_mods = Model.Name "mods"++_DefDefn_name = Model.Name "name"++_DefDefn_tparams = Model.Name "tparams"++_DefDefn_paramss = Model.Name "paramss"++_DefDefn_decltpe = Model.Name "decltpe"++_DefDefn_body = Model.Name "body"++data TypeDefn =+  TypeDefn {+    typeDefnMods :: [Mod],+    typeDefnName :: NameType,+    typeDefnTparams :: [ParamType],+    typeDefnBody :: Type}+  deriving (Eq, Ord, Read, Show)++_TypeDefn = Model.Name "hydra.scala.syntax.TypeDefn"++_TypeDefn_mods = Model.Name "mods"++_TypeDefn_name = Model.Name "name"++_TypeDefn_tparams = Model.Name "tparams"++_TypeDefn_body = Model.Name "body"++data ClassDefn =+  ClassDefn {+    classDefnMods :: [Mod],+    classDefnName :: NameType,+    classDefnTparams :: [ParamType],+    classDefnCtor :: PrimaryCtor,+    classDefnTemplate :: Template}+  deriving (Eq, Ord, Read, Show)++_ClassDefn = Model.Name "hydra.scala.syntax.ClassDefn"++_ClassDefn_mods = Model.Name "mods"++_ClassDefn_name = Model.Name "name"++_ClassDefn_tparams = Model.Name "tparams"++_ClassDefn_ctor = Model.Name "ctor"++_ClassDefn_template = Model.Name "template"++data TraitDefn =+  TraitDefn {+    traitDefnMods :: [Mod],+    traitDefnName :: NameType,+    traitDefnTparams :: [ParamType],+    traitDefnCtor :: PrimaryCtor,+    traitDefnTemplate :: Template}+  deriving (Eq, Ord, Read, Show)++_TraitDefn = Model.Name "hydra.scala.syntax.TraitDefn"++_TraitDefn_mods = Model.Name "mods"++_TraitDefn_name = Model.Name "name"++_TraitDefn_tparams = Model.Name "tparams"++_TraitDefn_ctor = Model.Name "ctor"++_TraitDefn_template = Model.Name "template"++data ObjectDefn =+  ObjectDefn {+    objectDefnName :: NameData}+  deriving (Eq, Ord, Read, Show)++_ObjectDefn = Model.Name "hydra.scala.syntax.ObjectDefn"++_ObjectDefn_name = Model.Name "name"++data Pkg =+  Pkg {+    pkgName :: NameData,+    pkgRef :: RefData,+    pkgStats :: [Stat]}+  deriving (Eq, Ord, Read, Show)++_Pkg = Model.Name "hydra.scala.syntax.Pkg"++_Pkg_name = Model.Name "name"++_Pkg_ref = Model.Name "ref"++_Pkg_stats = Model.Name "stats"++data ObjectPkg =+  ObjectPkg {+    objectPkgMods :: [Mod],+    objectPkgName :: NameData,+    objectPkgTemplate :: Template}+  deriving (Eq, Ord, Read, Show)++_ObjectPkg = Model.Name "hydra.scala.syntax.ObjectPkg"++_ObjectPkg_mods = Model.Name "mods"++_ObjectPkg_name = Model.Name "name"++_ObjectPkg_template = Model.Name "template"++data Ctor =+  CtorPrimary PrimaryCtor |+  CtorSecondary SecondaryCtor+  deriving (Eq, Ord, Read, Show)++_Ctor = Model.Name "hydra.scala.syntax.Ctor"++_Ctor_primary = Model.Name "primary"++_Ctor_secondary = Model.Name "secondary"++data PrimaryCtor =+  PrimaryCtor {+    primaryCtorMods :: [Mod],+    primaryCtorName :: Name,+    primaryCtorParamss :: [[ParamData]]}+  deriving (Eq, Ord, Read, Show)++_PrimaryCtor = Model.Name "hydra.scala.syntax.PrimaryCtor"++_PrimaryCtor_mods = Model.Name "mods"++_PrimaryCtor_name = Model.Name "name"++_PrimaryCtor_paramss = Model.Name "paramss"++data SecondaryCtor =+  SecondaryCtor {+    secondaryCtorMods :: [Mod],+    secondaryCtorName :: Name,+    secondaryCtorParamss :: [[ParamData]],+    secondaryCtorInit :: Init,+    secondaryCtorStats :: [Stat]}+  deriving (Eq, Ord, Read, Show)++_SecondaryCtor = Model.Name "hydra.scala.syntax.SecondaryCtor"++_SecondaryCtor_mods = Model.Name "mods"++_SecondaryCtor_name = Model.Name "name"++_SecondaryCtor_paramss = Model.Name "paramss"++_SecondaryCtor_init = Model.Name "init"++_SecondaryCtor_stats = Model.Name "stats"++data Init =+  Init {+    initTpe :: Type,+    initName :: Name,+    initArgss :: [[Data]]}+  deriving (Eq, Ord, Read, Show)++_Init = Model.Name "hydra.scala.syntax.Init"++_Init_tpe = Model.Name "tpe"++_Init_name = Model.Name "name"++_Init_argss = Model.Name "argss"++newtype Self =+  Self {+    unSelf :: ()}+  deriving (Eq, Ord, Read, Show)++_Self = Model.Name "hydra.scala.syntax.Self"++data Template =+  Template {+    templateEarly :: [Stat],+    templateInits :: [Init],+    templateSelf :: Self,+    templateStats :: [Stat]}+  deriving (Eq, Ord, Read, Show)++_Template = Model.Name "hydra.scala.syntax.Template"++_Template_early = Model.Name "early"++_Template_inits = Model.Name "inits"++_Template_self = Model.Name "self"++_Template_stats = Model.Name "stats"++data Mod =+  ModAnnot AnnotMod |+  ModPrivate PrivateMod |+  ModProtected ProtectedMod |+  ModImplicit |+  ModFinal |+  ModSealed |+  ModOpen |+  ModSuper |+  ModOverride |+  ModCase |+  ModAbstract |+  ModCovariant |+  ModContravariant |+  ModLazy |+  ModValParam |+  ModVarParam |+  ModInfix |+  ModInline |+  ModUsing |+  ModOpaque |+  ModTransparent+  deriving (Eq, Ord, Read, Show)++_Mod = Model.Name "hydra.scala.syntax.Mod"++_Mod_annot = Model.Name "annot"++_Mod_private = Model.Name "private"++_Mod_protected = Model.Name "protected"++_Mod_implicit = Model.Name "implicit"++_Mod_final = Model.Name "final"++_Mod_sealed = Model.Name "sealed"++_Mod_open = Model.Name "open"++_Mod_super = Model.Name "super"++_Mod_override = Model.Name "override"++_Mod_case = Model.Name "case"++_Mod_abstract = Model.Name "abstract"++_Mod_covariant = Model.Name "covariant"++_Mod_contravariant = Model.Name "contravariant"++_Mod_lazy = Model.Name "lazy"++_Mod_valParam = Model.Name "valParam"++_Mod_varParam = Model.Name "varParam"++_Mod_infix = Model.Name "infix"++_Mod_inline = Model.Name "inline"++_Mod_using = Model.Name "using"++_Mod_opaque = Model.Name "opaque"++_Mod_transparent = Model.Name "transparent"++data AnnotMod =+  AnnotMod {+    annotModInit :: Init}+  deriving (Eq, Ord, Read, Show)++_AnnotMod = Model.Name "hydra.scala.syntax.AnnotMod"++_AnnotMod_init = Model.Name "init"++data PrivateMod =+  PrivateMod {+    privateModWithin :: Ref}+  deriving (Eq, Ord, Read, Show)++_PrivateMod = Model.Name "hydra.scala.syntax.PrivateMod"++_PrivateMod_within = Model.Name "within"++data ProtectedMod =+  ProtectedMod {+    protectedModWithin :: Ref}+  deriving (Eq, Ord, Read, Show)++_ProtectedMod = Model.Name "hydra.scala.syntax.ProtectedMod"++_ProtectedMod_within = Model.Name "within"++data Enumerator =+  EnumeratorGenerator GeneratorEnumerator |+  EnumeratorCaseGenerator CaseGeneratorEnumerator |+  EnumeratorVal ValEnumerator |+  EnumeratorGuard GuardEnumerator+  deriving (Eq, Ord, Read, Show)++_Enumerator = Model.Name "hydra.scala.syntax.Enumerator"++_Enumerator_generator = Model.Name "generator"++_Enumerator_caseGenerator = Model.Name "caseGenerator"++_Enumerator_val = Model.Name "val"++_Enumerator_guard = Model.Name "guard"++data GeneratorEnumerator =+  GeneratorEnumerator {+    generatorEnumeratorPat :: Pat,+    generatorEnumeratorRhs :: Data}+  deriving (Eq, Ord, Read, Show)++_GeneratorEnumerator = Model.Name "hydra.scala.syntax.GeneratorEnumerator"++_GeneratorEnumerator_pat = Model.Name "pat"++_GeneratorEnumerator_rhs = Model.Name "rhs"++data CaseGeneratorEnumerator =+  CaseGeneratorEnumerator {+    caseGeneratorEnumeratorPat :: Pat,+    caseGeneratorEnumeratorRhs :: Data}+  deriving (Eq, Ord, Read, Show)++_CaseGeneratorEnumerator = Model.Name "hydra.scala.syntax.CaseGeneratorEnumerator"++_CaseGeneratorEnumerator_pat = Model.Name "pat"++_CaseGeneratorEnumerator_rhs = Model.Name "rhs"++data ValEnumerator =+  ValEnumerator {+    valEnumeratorPat :: Pat,+    valEnumeratorRhs :: Data}+  deriving (Eq, Ord, Read, Show)++_ValEnumerator = Model.Name "hydra.scala.syntax.ValEnumerator"++_ValEnumerator_pat = Model.Name "pat"++_ValEnumerator_rhs = Model.Name "rhs"++data GuardEnumerator =+  GuardEnumerator {+    guardEnumeratorCond :: Data}+  deriving (Eq, Ord, Read, Show)++_GuardEnumerator = Model.Name "hydra.scala.syntax.GuardEnumerator"++_GuardEnumerator_cond = Model.Name "cond"++data ImportExportStat =+  ImportExportStatImport Import |+  ImportExportStatExport Export+  deriving (Eq, Ord, Read, Show)++_ImportExportStat = Model.Name "hydra.scala.syntax.ImportExportStat"++_ImportExportStat_import = Model.Name "import"++_ImportExportStat_export = Model.Name "export"++data Import =+  Import {+    importImporters :: [Importer]}+  deriving (Eq, Ord, Read, Show)++_Import = Model.Name "hydra.scala.syntax.Import"++_Import_importers = Model.Name "importers"++data Export =+  Export {+    exportImporters :: [Importer]}+  deriving (Eq, Ord, Read, Show)++_Export = Model.Name "hydra.scala.syntax.Export"++_Export_importers = Model.Name "importers"++data Importer =+  Importer {+    importerRef :: RefData,+    importerImportees :: [Importee]}+  deriving (Eq, Ord, Read, Show)++_Importer = Model.Name "hydra.scala.syntax.Importer"++_Importer_ref = Model.Name "ref"++_Importer_importees = Model.Name "importees"++data Importee =+  ImporteeWildcard |+  ImporteeGiven GivenImportee |+  ImporteeGivenAll |+  ImporteeName NameImportee |+  ImporteeRename RenameImportee |+  ImporteeUnimport UnimportImportee+  deriving (Eq, Ord, Read, Show)++_Importee = Model.Name "hydra.scala.syntax.Importee"++_Importee_wildcard = Model.Name "wildcard"++_Importee_given = Model.Name "given"++_Importee_givenAll = Model.Name "givenAll"++_Importee_name = Model.Name "name"++_Importee_rename = Model.Name "rename"++_Importee_unimport = Model.Name "unimport"++data GivenImportee =+  GivenImportee {+    givenImporteeTpe :: Type}+  deriving (Eq, Ord, Read, Show)++_GivenImportee = Model.Name "hydra.scala.syntax.GivenImportee"++_GivenImportee_tpe = Model.Name "tpe"++data NameImportee =+  NameImportee {+    nameImporteeName :: Name}+  deriving (Eq, Ord, Read, Show)++_NameImportee = Model.Name "hydra.scala.syntax.NameImportee"++_NameImportee_name = Model.Name "name"++data RenameImportee =+  RenameImportee {+    renameImporteeName :: Name,+    renameImporteeRename :: Name}+  deriving (Eq, Ord, Read, Show)++_RenameImportee = Model.Name "hydra.scala.syntax.RenameImportee"++_RenameImportee_name = Model.Name "name"++_RenameImportee_rename = Model.Name "rename"++data UnimportImportee =+  UnimportImportee {+    unimportImporteeName :: Name}+  deriving (Eq, Ord, Read, Show)++_UnimportImportee = Model.Name "hydra.scala.syntax.UnimportImportee"++_UnimportImportee_name = Model.Name "name"++data CaseTree =+  CaseTreeCase Case |+  CaseTreeTypeCase TypeCase+  deriving (Eq, Ord, Read, Show)++_CaseTree = Model.Name "hydra.scala.syntax.CaseTree"++_CaseTree_case = Model.Name "case"++_CaseTree_typeCase = Model.Name "typeCase"++data Case =+  Case {+    casePat :: Pat,+    caseCond :: (Maybe Data),+    caseBody :: Data}+  deriving (Eq, Ord, Read, Show)++_Case = Model.Name "hydra.scala.syntax.Case"++_Case_pat = Model.Name "pat"++_Case_cond = Model.Name "cond"++_Case_body = Model.Name "body"++data TypeCase =+  TypeCase {+    typeCasePat :: Type,+    typeCaseBody :: Type}+  deriving (Eq, Ord, Read, Show)++_TypeCase = Model.Name "hydra.scala.syntax.TypeCase"++_TypeCase_pat = Model.Name "pat"++_TypeCase_body = Model.Name "body"++data Source =+  Source {+    sourceStats :: [Stat]}+  deriving (Eq, Ord, Read, Show)++_Source = Model.Name "hydra.scala.syntax.Source"++_Source_stats = Model.Name "stats"
src/main/haskell/Hydra/Scala/Utils.hs view
@@ -4,64 +4,64 @@  module Hydra.Scala.Utils where -import qualified Hydra.Ast as Ast-import qualified Hydra.Coders as Coders-import qualified Hydra.Core as Core-import qualified Hydra.Docs as Docs-import qualified Hydra.Error.Checking as Checking-import qualified Hydra.Error.Core as ErrorCore-import qualified Hydra.Error.File as ErrorFile-import qualified Hydra.Error.Packaging as ErrorPackaging-import qualified Hydra.Error.System as ErrorSystem-import qualified Hydra.Errors as Errors-import qualified Hydra.File as File-import qualified Hydra.Formatting as Formatting-import qualified Hydra.Graph as Graph-import qualified Hydra.Json.Model as Model-import qualified Hydra.Overlay.Haskell.Lib.Equality as Equality-import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists-import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic-import qualified Hydra.Overlay.Haskell.Lib.Math as Math-import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals-import qualified Hydra.Overlay.Haskell.Lib.Ordering as Ordering-import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets-import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings-import qualified Hydra.Names as Names-import qualified Hydra.Packaging as Packaging-import qualified Hydra.Parsing as Parsing-import qualified Hydra.Paths as Paths-import qualified Hydra.Query as Query-import qualified Hydra.Relational as Relational+import qualified Hydra.Core.Ast as Ast+import qualified Hydra.Core.Coders as Coders+import qualified Hydra.Core.Docs as Docs+import qualified Hydra.Core.Error.Checking as Checking+import qualified Hydra.Core.Error.File as ErrorFile+import qualified Hydra.Core.Error.Model as ErrorModel+import qualified Hydra.Core.Error.Packaging as ErrorPackaging+import qualified Hydra.Core.Error.System as ErrorSystem+import qualified Hydra.Core.Errors as Errors+import qualified Hydra.Core.File as File+import qualified Hydra.Core.Formatting as Formatting+import qualified Hydra.Core.Graph as Graph+import qualified Hydra.Core.Json.Model as JsonModel+import qualified Hydra.Core.Overlay.Haskell.Lib.Equality as Equality+import qualified Hydra.Core.Overlay.Haskell.Lib.Lists as Lists+import qualified Hydra.Core.Overlay.Haskell.Lib.Logic as Logic+import qualified Hydra.Core.Overlay.Haskell.Lib.Math as Math+import qualified Hydra.Core.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Core.Overlay.Haskell.Lib.Ordering as Ordering+import qualified Hydra.Core.Overlay.Haskell.Lib.Sets as Sets+import qualified Hydra.Core.Overlay.Haskell.Lib.Strings as Strings+import qualified Hydra.Core.Model as Model+import qualified Hydra.Core.Names as Names+import qualified Hydra.Core.Packaging as Packaging+import qualified Hydra.Core.Parsing as Parsing+import qualified Hydra.Core.Paths as Paths+import qualified Hydra.Core.Query as Query+import qualified Hydra.Core.Relational as Relational+import qualified Hydra.Core.Strip as Strip+import qualified Hydra.Core.System as System+import qualified Hydra.Core.Tabular as Tabular+import qualified Hydra.Core.Testing as Testing+import qualified Hydra.Core.Time as Time+import qualified Hydra.Core.Topology as Topology+import qualified Hydra.Core.Typed as Typed+import qualified Hydra.Core.Typing as Typing+import qualified Hydra.Core.Util as Util+import qualified Hydra.Core.Validation as Validation+import qualified Hydra.Core.Variants as Variants import qualified Hydra.Scala.Language as Language import qualified Hydra.Scala.Syntax as Syntax-import qualified Hydra.Strip as Strip-import qualified Hydra.System as System-import qualified Hydra.Tabular as Tabular-import qualified Hydra.Testing as Testing-import qualified Hydra.Time as Time-import qualified Hydra.Topology as Topology-import qualified Hydra.Typed as Typed-import qualified Hydra.Typing as Typing-import qualified Hydra.Util as Util-import qualified Hydra.Validation as Validation-import qualified Hydra.Variants as Variants import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines) import qualified Data.Scientific as Sci import Data.Void import qualified Data.Set as S  -- | Extract the name from a type, if it is a named type-nameOfType :: t0 -> Core.Type -> Maybe Core.Name+nameOfType :: t0 -> Model.Type -> Maybe Model.Name nameOfType cx t =     case (Strip.deannotateType t) of-      Core.TypeVariable v0 -> Just v0-      Core.TypeForall v0 -> nameOfType cx (Core.forallTypeBody v0)+      Model.TypeVariable v0 -> Just v0+      Model.TypeForall v0 -> nameOfType cx (Model.forallTypeBody v0)       _ -> Nothing  -- | Qualify a union field name, optionally prefixing with the Scala type name-qualifyUnionFieldName :: String -> Maybe Core.Name -> Core.Name -> String+qualifyUnionFieldName :: String -> Maybe Model.Name -> Model.Name -> String qualifyUnionFieldName dlft sname fname =-    Strings.concat2 (Optionals.match sname dlft (\n -> Strings.concat2 (scalaTypeName True n) ".")) (scalaEscapeName (Core.unName fname))+    Strings.concat2 (Optionals.match sname dlft (\n -> Strings.concat2 (scalaTypeName True n) ".")) (scalaEscapeName (Model.unName fname))  -- | Apply a Scala data expression to a list of arguments sapply :: Syntax.Data -> [Syntax.Data] -> Syntax.Data@@ -132,9 +132,9 @@ scalaReservedWords = Language.scalaReservedWords  -- | Convert a Hydra name to a Scala type name-scalaTypeName :: Bool -> Core.Name -> String+scalaTypeName :: Bool -> Model.Name -> String scalaTypeName qualify name =-    Logic.ifElse (Logic.or qualify (Sets.member (Names.localNameOf name) scalaReservedWords)) (Core.unName name) (Names.localNameOf name)+    Logic.ifElse (Logic.or qualify (Sets.member (Names.localNameOf name) scalaReservedWords)) (Model.unName name) (Names.localNameOf name)  -- | Create a Scala lambda (function) expression slambda :: String -> Syntax.Data -> Maybe Syntax.Type -> Syntax.Data@@ -153,19 +153,20 @@ sname s = Syntax.DataRef (Syntax.RefDataName (Syntax.NameData {   Syntax.nameDataValue = (Syntax.PredefString s)})) --- | Create a Scala primitive reference from a Hydra name, redirecting hydra.lib.<sub>.<local> to hydra.overlay.scala.lib.<sub>.<local> when <sub> has an overlay implementation on this host (#630 -- the on-disk overlaySubs existence signal). Unlike toPrimImport (which redirects a bare hydra.lib.<sub> MODULE name, always exactly 3 segments), a primitive reference is hydra.lib.<sub>.<local> -- at least 4 segments, since it also carries the primitive's own local name -- so the sub to check against overlaySubs is parts[2] alone, not the whole post-prefix tail (#635).-sprim :: S.Set String -> Core.Name -> Syntax.Data+-- | Create a Scala primitive reference from a Hydra name, redirecting hydra.core.lib.<sub>.<local> to hydra.core.overlay.scala.lib.<sub>.<local> when <sub> has an overlay implementation on this host (#630 -- the on-disk overlaySubs existence signal). Unlike toPrimImport (which redirects a bare hydra.core.lib.<sub> MODULE name, always exactly 4 segments post-#729), a primitive reference is hydra.core.lib.<sub>.<local> -- at least 5 segments, since it also carries the primitive's own local name -- so the sub to check against overlaySubs is parts[3] alone, not the whole post-prefix tail (#635, #729).+sprim :: S.Set String -> Model.Name -> Syntax.Data sprim overlaySubs name = -      let raw = Core.unName name+      let raw = Model.unName name           parts = Strings.splitOn "." raw-          sub = Strings.join "." (Lists.drop 2 parts)-          subHead = Optionals.withDefault "" (Lists.at 2 parts)+          sub = Strings.join "." (Lists.drop 3 parts)+          subHead = Optionals.withDefault "" (Lists.at 3 parts)           redirectedRaw =-                  Logic.ifElse (Logic.and (Logic.and (Ordering.gte (Lists.length parts) 4) (Equality.equal (Lists.take 2 parts) [+                  Logic.ifElse (Logic.and (Logic.and (Ordering.gte (Lists.length parts) 5) (Equality.equal (Lists.take 3 parts) [                     "hydra",-                    "lib"])) (Sets.member subHead overlaySubs)) (Strings.concat2 "hydra.overlay.scala.lib." sub) raw-          redirectedName = Core.Name redirectedRaw+                    "core",+                    "lib"])) (Sets.member subHead overlaySubs)) (Strings.concat2 "hydra.core.overlay.scala.lib." sub) raw+          redirectedName = Model.Name redirectedRaw           qname = Names.qualifyName redirectedName           prefix = Packaging.unModuleName (Optionals.withDefault (Packaging.ModuleName "") (Util.qualifiedNameModuleName qname))           local = scalaEscapeName (Util.qualifiedNameLocal qname)@@ -191,10 +192,10 @@       t3]  -- | Create a Scala type parameter from a Hydra name, capitalizing to avoid collision with value params-stparam :: Core.Name -> Syntax.ParamType+stparam :: Model.Name -> Syntax.ParamType stparam name = -      let v = Formatting.capitalize (Core.unName name)+      let v = Formatting.capitalize (Model.unName name)       in Syntax.ParamType {         Syntax.paramTypeMods = [],         Syntax.paramTypeName = (Syntax.NameValue v),@@ -209,10 +210,10 @@   Syntax.nameTypeValue = s}))  -- | Create a Scala pattern variable-svar :: Core.Name -> Syntax.Pat+svar :: Model.Name -> Syntax.Pat svar name = -      let v = Core.unName name+      let v = Model.unName name       in (Syntax.PatVar (Syntax.VarPat {         Syntax.varPatName = Syntax.NameData {           Syntax.nameDataValue = (Syntax.PredefString v)}}))